├── .gitignore
├── .vscode
├── launch.json
└── settings.json
├── CMakeLists.txt
├── LICENSE
├── README.md
├── build.cmd
├── documentation.html
├── examples
├── CMakeLists.txt
└── physicsexample
│ ├── CMakeLists.txt
│ ├── VPEConstraintDemos.cpp
│ ├── VPEConstraintDemos.hpp
│ └── physicsexample.cpp
├── extern
└── glm
│ ├── CMakeLists.txt
│ ├── common.hpp
│ ├── detail
│ ├── _features.hpp
│ ├── _fixes.hpp
│ ├── _noise.hpp
│ ├── _swizzle.hpp
│ ├── _swizzle_func.hpp
│ ├── _vectorize.hpp
│ ├── compute_common.hpp
│ ├── compute_vector_relational.hpp
│ ├── func_common.inl
│ ├── func_common_simd.inl
│ ├── func_exponential.inl
│ ├── func_exponential_simd.inl
│ ├── func_geometric.inl
│ ├── func_geometric_simd.inl
│ ├── func_integer.inl
│ ├── func_integer_simd.inl
│ ├── func_matrix.inl
│ ├── func_matrix_simd.inl
│ ├── func_packing.inl
│ ├── func_packing_simd.inl
│ ├── func_trigonometric.inl
│ ├── func_trigonometric_simd.inl
│ ├── func_vector_relational.inl
│ ├── func_vector_relational_simd.inl
│ ├── glm.cpp
│ ├── qualifier.hpp
│ ├── setup.hpp
│ ├── type_float.hpp
│ ├── type_half.hpp
│ ├── type_half.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_mat4x4_simd.inl
│ ├── type_quat.hpp
│ ├── type_quat.inl
│ ├── type_quat_simd.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_simd.inl
│ ├── exponential.hpp
│ ├── ext.hpp
│ ├── ext
│ ├── _matrix_vectorize.hpp
│ ├── matrix_clip_space.hpp
│ ├── matrix_clip_space.inl
│ ├── matrix_common.hpp
│ ├── matrix_common.inl
│ ├── matrix_double2x2.hpp
│ ├── matrix_double2x2_precision.hpp
│ ├── matrix_double2x3.hpp
│ ├── matrix_double2x3_precision.hpp
│ ├── matrix_double2x4.hpp
│ ├── matrix_double2x4_precision.hpp
│ ├── matrix_double3x2.hpp
│ ├── matrix_double3x2_precision.hpp
│ ├── matrix_double3x3.hpp
│ ├── matrix_double3x3_precision.hpp
│ ├── matrix_double3x4.hpp
│ ├── matrix_double3x4_precision.hpp
│ ├── matrix_double4x2.hpp
│ ├── matrix_double4x2_precision.hpp
│ ├── matrix_double4x3.hpp
│ ├── matrix_double4x3_precision.hpp
│ ├── matrix_double4x4.hpp
│ ├── matrix_double4x4_precision.hpp
│ ├── matrix_float2x2.hpp
│ ├── matrix_float2x2_precision.hpp
│ ├── matrix_float2x3.hpp
│ ├── matrix_float2x3_precision.hpp
│ ├── matrix_float2x4.hpp
│ ├── matrix_float2x4_precision.hpp
│ ├── matrix_float3x2.hpp
│ ├── matrix_float3x2_precision.hpp
│ ├── matrix_float3x3.hpp
│ ├── matrix_float3x3_precision.hpp
│ ├── matrix_float3x4.hpp
│ ├── matrix_float3x4_precision.hpp
│ ├── matrix_float4x2.hpp
│ ├── matrix_float4x2_precision.hpp
│ ├── matrix_float4x3.hpp
│ ├── matrix_float4x3_precision.hpp
│ ├── matrix_float4x4.hpp
│ ├── matrix_float4x4_precision.hpp
│ ├── matrix_int2x2.hpp
│ ├── matrix_int2x2_sized.hpp
│ ├── matrix_int2x3.hpp
│ ├── matrix_int2x3_sized.hpp
│ ├── matrix_int2x4.hpp
│ ├── matrix_int2x4_sized.hpp
│ ├── matrix_int3x2.hpp
│ ├── matrix_int3x2_sized.hpp
│ ├── matrix_int3x3.hpp
│ ├── matrix_int3x3_sized.hpp
│ ├── matrix_int3x4.hpp
│ ├── matrix_int3x4_sized.hpp
│ ├── matrix_int4x2.hpp
│ ├── matrix_int4x2_sized.hpp
│ ├── matrix_int4x3.hpp
│ ├── matrix_int4x3_sized.hpp
│ ├── matrix_int4x4.hpp
│ ├── matrix_int4x4_sized.hpp
│ ├── matrix_integer.hpp
│ ├── matrix_integer.inl
│ ├── matrix_projection.hpp
│ ├── matrix_projection.inl
│ ├── matrix_relational.hpp
│ ├── matrix_relational.inl
│ ├── matrix_transform.hpp
│ ├── matrix_transform.inl
│ ├── matrix_uint2x2.hpp
│ ├── matrix_uint2x2_sized.hpp
│ ├── matrix_uint2x3.hpp
│ ├── matrix_uint2x3_sized.hpp
│ ├── matrix_uint2x4.hpp
│ ├── matrix_uint2x4_sized.hpp
│ ├── matrix_uint3x2.hpp
│ ├── matrix_uint3x2_sized.hpp
│ ├── matrix_uint3x3.hpp
│ ├── matrix_uint3x3_sized.hpp
│ ├── matrix_uint3x4.hpp
│ ├── matrix_uint3x4_sized.hpp
│ ├── matrix_uint4x2.hpp
│ ├── matrix_uint4x2_sized.hpp
│ ├── matrix_uint4x3.hpp
│ ├── matrix_uint4x3_sized.hpp
│ ├── matrix_uint4x4.hpp
│ ├── matrix_uint4x4_sized.hpp
│ ├── quaternion_common.hpp
│ ├── quaternion_common.inl
│ ├── quaternion_common_simd.inl
│ ├── quaternion_double.hpp
│ ├── quaternion_double_precision.hpp
│ ├── quaternion_exponential.hpp
│ ├── quaternion_exponential.inl
│ ├── quaternion_float.hpp
│ ├── quaternion_float_precision.hpp
│ ├── quaternion_geometric.hpp
│ ├── quaternion_geometric.inl
│ ├── quaternion_relational.hpp
│ ├── quaternion_relational.inl
│ ├── quaternion_transform.hpp
│ ├── quaternion_transform.inl
│ ├── quaternion_trigonometric.hpp
│ ├── quaternion_trigonometric.inl
│ ├── scalar_common.hpp
│ ├── scalar_common.inl
│ ├── scalar_constants.hpp
│ ├── scalar_constants.inl
│ ├── scalar_int_sized.hpp
│ ├── scalar_integer.hpp
│ ├── scalar_integer.inl
│ ├── scalar_packing.hpp
│ ├── scalar_packing.inl
│ ├── scalar_reciprocal.hpp
│ ├── scalar_reciprocal.inl
│ ├── scalar_relational.hpp
│ ├── scalar_relational.inl
│ ├── scalar_uint_sized.hpp
│ ├── scalar_ulp.hpp
│ ├── scalar_ulp.inl
│ ├── vector_bool1.hpp
│ ├── vector_bool1_precision.hpp
│ ├── vector_bool2.hpp
│ ├── vector_bool2_precision.hpp
│ ├── vector_bool3.hpp
│ ├── vector_bool3_precision.hpp
│ ├── vector_bool4.hpp
│ ├── vector_bool4_precision.hpp
│ ├── vector_common.hpp
│ ├── vector_common.inl
│ ├── vector_double1.hpp
│ ├── vector_double1_precision.hpp
│ ├── vector_double2.hpp
│ ├── vector_double2_precision.hpp
│ ├── vector_double3.hpp
│ ├── vector_double3_precision.hpp
│ ├── vector_double4.hpp
│ ├── vector_double4_precision.hpp
│ ├── vector_float1.hpp
│ ├── vector_float1_precision.hpp
│ ├── vector_float2.hpp
│ ├── vector_float2_precision.hpp
│ ├── vector_float3.hpp
│ ├── vector_float3_precision.hpp
│ ├── vector_float4.hpp
│ ├── vector_float4_precision.hpp
│ ├── vector_int1.hpp
│ ├── vector_int1_sized.hpp
│ ├── vector_int2.hpp
│ ├── vector_int2_sized.hpp
│ ├── vector_int3.hpp
│ ├── vector_int3_sized.hpp
│ ├── vector_int4.hpp
│ ├── vector_int4_sized.hpp
│ ├── vector_integer.hpp
│ ├── vector_integer.inl
│ ├── vector_packing.hpp
│ ├── vector_packing.inl
│ ├── vector_reciprocal.hpp
│ ├── vector_reciprocal.inl
│ ├── vector_relational.hpp
│ ├── vector_relational.inl
│ ├── vector_uint1.hpp
│ ├── vector_uint1_sized.hpp
│ ├── vector_uint2.hpp
│ ├── vector_uint2_sized.hpp
│ ├── vector_uint3.hpp
│ ├── vector_uint3_sized.hpp
│ ├── vector_uint4.hpp
│ ├── vector_uint4_sized.hpp
│ ├── vector_ulp.hpp
│ └── vector_ulp.inl
│ ├── fwd.hpp
│ ├── geometric.hpp
│ ├── glm.hpp
│ ├── gtc
│ ├── bitfield.hpp
│ ├── bitfield.inl
│ ├── color_space.hpp
│ ├── color_space.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
│ ├── quaternion_simd.inl
│ ├── random.hpp
│ ├── random.inl
│ ├── reciprocal.hpp
│ ├── round.hpp
│ ├── round.inl
│ ├── type_aligned.hpp
│ ├── type_precision.hpp
│ ├── type_precision.inl
│ ├── type_ptr.hpp
│ ├── type_ptr.inl
│ ├── ulp.hpp
│ ├── ulp.inl
│ └── vec1.hpp
│ ├── gtx
│ ├── associated_min_max.hpp
│ ├── associated_min_max.inl
│ ├── bit.hpp
│ ├── bit.inl
│ ├── closest_point.hpp
│ ├── closest_point.inl
│ ├── color_encoding.hpp
│ ├── color_encoding.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
│ ├── easing.hpp
│ ├── easing.inl
│ ├── euler_angles.hpp
│ ├── euler_angles.inl
│ ├── extend.hpp
│ ├── extend.inl
│ ├── extended_min_max.hpp
│ ├── extended_min_max.inl
│ ├── exterior_product.hpp
│ ├── exterior_product.inl
│ ├── fast_exponential.hpp
│ ├── fast_exponential.inl
│ ├── fast_square_root.hpp
│ ├── fast_square_root.inl
│ ├── fast_trigonometry.hpp
│ ├── fast_trigonometry.inl
│ ├── float_notmalize.inl
│ ├── functions.hpp
│ ├── functions.inl
│ ├── gradient_paint.hpp
│ ├── gradient_paint.inl
│ ├── handed_coordinate_space.hpp
│ ├── handed_coordinate_space.inl
│ ├── hash.hpp
│ ├── hash.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_factorisation.hpp
│ ├── matrix_factorisation.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
│ ├── norm.hpp
│ ├── norm.inl
│ ├── normal.hpp
│ ├── normal.inl
│ ├── normalize_dot.hpp
│ ├── normalize_dot.inl
│ ├── optimum_pow.hpp
│ ├── optimum_pow.inl
│ ├── orthonormalize.hpp
│ ├── orthonormalize.inl
│ ├── pca.hpp
│ ├── pca.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
│ ├── spline.hpp
│ ├── spline.inl
│ ├── std_based_type.hpp
│ ├── std_based_type.inl
│ ├── string_cast.hpp
│ ├── string_cast.inl
│ ├── texture.hpp
│ ├── texture.inl
│ ├── transform.hpp
│ ├── transform.inl
│ ├── transform2.hpp
│ ├── transform2.inl
│ ├── type_aligned.hpp
│ ├── type_aligned.inl
│ ├── type_trait.hpp
│ ├── type_trait.inl
│ ├── vec_swizzle.hpp
│ ├── 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
│ ├── simd
│ ├── common.h
│ ├── exponential.h
│ ├── geometric.h
│ ├── integer.h
│ ├── matrix.h
│ ├── neon.h
│ ├── packing.h
│ ├── platform.h
│ ├── trigonometric.h
│ └── vector_relational.h
│ ├── trigonometric.hpp
│ ├── vec2.hpp
│ ├── vec3.hpp
│ ├── vec4.hpp
│ └── vector_relational.hpp
├── include
└── VPE.hpp
├── papers
├── A Unified Framework for Rigid Body Dynamics.pdf
├── Adding_constraints_to_the_Vienna_Physics_Engine.pdf
└── BSc-Thesis - Felix Neumann - Cloth Simulation for the Vienna Physics Engine.pdf
├── screenshot1.png
├── screenshot2.png
├── screenshot3.png
├── screenshot4.png
└── tests
├── CMakeLists.txt
└── testlib.cpp
/.gitignore:
--------------------------------------------------------------------------------
1 | /bin
2 | /.vs
3 | build/*
4 | git_config.txt
5 | renderdoc.cap
6 | */MakeFile
7 | */.idea/
8 | */CMakeCache.txt
9 | */CMakeFiles/*
10 | */cmake_install.cmake
11 | */Makefile
12 | */vulkanengine.dir
13 | CMakeFiles/*
14 | */simplegame.dir
15 | *.vcxproj
16 | *.filters
17 | *.user
18 | ZERO_CHECK.vcxproj
19 | ALL_BUILD.vcxproj
20 | x64/*
21 | bin/Debug/*
22 | bin/Release/*
23 | examples/CMakeFiles/*
24 | examples/physicsexample/CMakeFiles/*
25 | examples/physicsexample/physicsexample.dir/*
26 | ViennaPhysicsEngine.sln
27 | CMakeCache.txt
28 | cmake_install.cmake
29 | examples/physicsexample/cmake_install.cmake
30 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "(Windows) Debug",
9 | "type": "cppvsdbg",
10 | "request": "launch",
11 | "program": "${workspaceFolder}/../ViennaVulkanEngine/bin/Debug/physicsexample.exe",
12 | "args": [],
13 | "stopAtEntry": false,
14 | "cwd": "${workspaceFolder}/../ViennaVulkanEngine/bin/Debug/",
15 | "environment": [],
16 | "externalConsole": true
17 | },
18 | {
19 | "name": "(Windows) Run without Debugging",
20 | "type": "cppvsdbg",
21 | "request": "launch",
22 | "program": "${workspaceFolder}/../ViennaVulkanEngine/bin/Release/physicsexample.exe",
23 | "args": [],
24 | "stopAtEntry": false,
25 | "cwd": "${workspaceFolder}/../ViennaVulkanEngine/bin/Release/",
26 | "environment": [],
27 | "externalConsole": true
28 | }
29 | ]
30 | }
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "files.associations": {
3 | "vector": "cpp"
4 | }
5 | }
--------------------------------------------------------------------------------
/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required (VERSION 3.5.0)
2 | project (
3 | "ViennaPhysicsEngine"
4 | VERSION 1.0
5 | DESCRIPTION "A C++20 physics engine for video games."
6 | LANGUAGES CXX
7 | )
8 |
9 | # enforce C++20 standard
10 | set(CMAKE_CXX_STANDARD 20)
11 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
12 | set(CMAKE_CONFIGURATION_TYPES "Debug;Release")
13 |
14 | # enable clang-tidy. disable to speed up compilation
15 | #set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
16 | #set(CMAKE_CXX_CLANG_TIDY clang-tidy -checks=readability-*;cppcoreguidelines-*;-header-filter=.*; -p build)
17 |
18 | add_subdirectory(examples)
19 |
20 | if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
21 | #include(CTest)
22 | #add_subdirectory(tests)
23 | endif ()
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 hlavacs
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 |
--------------------------------------------------------------------------------
/build.cmd:
--------------------------------------------------------------------------------
1 | rem cmake -S . -Bbuild -G "Visual Studio 17 2022" -T ClangCL -A x64
2 | cmake -S . -Bbuild -A x64
3 | cd build
4 | cmake --build . --config Release
5 | ctest -C Release
6 | cmake --build . --config Debug
7 | ctest -C Debug
8 | cd ..
9 |
--------------------------------------------------------------------------------
/documentation.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | HTML Meta Tag
5 |
6 |
7 |
8 | -
9 |
10 |
11 |
--------------------------------------------------------------------------------
/examples/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | add_subdirectory(physicsexample)
2 |
--------------------------------------------------------------------------------
/extern/glm/detail/_fixes.hpp:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | //! Workaround for compatibility with other libraries
4 | #ifdef max
5 | #undef max
6 | #endif
7 |
8 | //! Workaround for compatibility with other libraries
9 | #ifdef min
10 | #undef min
11 | #endif
12 |
13 | //! Workaround for Android
14 | #ifdef isnan
15 | #undef isnan
16 | #endif
17 |
18 | //! Workaround for Android
19 | #ifdef isinf
20 | #undef isinf
21 | #endif
22 |
23 | //! Workaround for Chrone Native Client
24 | #ifdef log2
25 | #undef log2
26 | #endif
27 |
28 |
--------------------------------------------------------------------------------
/extern/glm/detail/compute_common.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "setup.hpp"
4 | #include
5 |
6 | namespace glm{
7 | namespace detail
8 | {
9 | template
10 | struct compute_abs
11 | {};
12 |
13 | template
14 | struct compute_abs
15 | {
16 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genFIType call(genFIType x)
17 | {
18 | GLM_STATIC_ASSERT(
19 | std::numeric_limits::is_iec559 || GLM_CONFIG_UNRESTRICTED_FLOAT || std::numeric_limits::is_signed,
20 | "'abs' only accept floating-point and integer scalar or vector inputs");
21 |
22 | return x >= genFIType(0) ? x : -x;
23 | // TODO, perf comp with: *(((int *) &x) + 1) &= 0x7fffffff;
24 | }
25 | };
26 |
27 | #if (GLM_COMPILER & GLM_COMPILER_CUDA) || (GLM_COMPILER & GLM_COMPILER_HIP)
28 | template<>
29 | struct compute_abs
30 | {
31 | GLM_FUNC_QUALIFIER static float call(float x)
32 | {
33 | return fabsf(x);
34 | }
35 | };
36 | #endif
37 |
38 | template
39 | struct compute_abs
40 | {
41 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static genFIType call(genFIType x)
42 | {
43 | GLM_STATIC_ASSERT(
44 | (!std::numeric_limits::is_signed && std::numeric_limits::is_integer),
45 | "'abs' only accept floating-point and integer scalar or vector inputs");
46 | return x;
47 | }
48 | };
49 | }//namespace detail
50 | }//namespace glm
51 |
--------------------------------------------------------------------------------
/extern/glm/detail/compute_vector_relational.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | //#include "compute_common.hpp"
4 | #include "setup.hpp"
5 | #include
6 |
7 | namespace glm{
8 | namespace detail
9 | {
10 | template
11 | struct compute_equal
12 | {
13 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)
14 | {
15 | return a == b;
16 | }
17 | };
18 | /*
19 | template
20 | struct compute_equal
21 | {
22 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b)
23 | {
24 | return detail::compute_abs::is_signed>::call(b - a) <= static_cast(0);
25 | //return std::memcmp(&a, &b, sizeof(T)) == 0;
26 | }
27 | };
28 | */
29 | }//namespace detail
30 | }//namespace glm
31 |
--------------------------------------------------------------------------------
/extern/glm/detail/func_exponential_simd.inl:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/detail/func_exponential_simd.inl
3 |
4 | #include "../simd/exponential.h"
5 |
6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT
7 |
8 | namespace glm{
9 | namespace detail
10 | {
11 | template
12 | struct compute_sqrt<4, float, Q, true>
13 | {
14 | GLM_FUNC_QUALIFIER static vec<4, float, Q> call(vec<4, float, Q> const& v)
15 | {
16 | vec<4, float, Q> Result;
17 | Result.data = _mm_sqrt_ps(v.data);
18 | return Result;
19 | }
20 | };
21 |
22 | # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE
23 | template<>
24 | struct compute_sqrt<4, float, aligned_lowp, true>
25 | {
26 | GLM_FUNC_QUALIFIER static vec<4, float, aligned_lowp> call(vec<4, float, aligned_lowp> const& v)
27 | {
28 | vec<4, float, aligned_lowp> Result;
29 | Result.data = glm_vec4_sqrt_lowp(v.data);
30 | return Result;
31 | }
32 | };
33 | # endif
34 | }//namespace detail
35 | }//namespace glm
36 |
37 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
38 |
--------------------------------------------------------------------------------
/extern/glm/detail/func_packing_simd.inl:
--------------------------------------------------------------------------------
1 | namespace glm{
2 | namespace detail
3 | {
4 |
5 | }//namespace detail
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/extern/glm/detail/func_trigonometric_simd.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hlavacs/ViennaPhysicsEngine/8e3b32fb6d064d8d72ba35bd4e6eef54c18d477e/extern/glm/detail/func_trigonometric_simd.inl
--------------------------------------------------------------------------------
/extern/glm/detail/func_vector_relational_simd.inl:
--------------------------------------------------------------------------------
1 | namespace glm{
2 | namespace detail
3 | {
4 |
5 | }//namespace detail
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/extern/glm/detail/type_half.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | #include "setup.hpp"
4 |
5 | namespace glm{
6 | namespace detail
7 | {
8 | typedef short hdata;
9 |
10 | GLM_FUNC_DECL float toFloat32(hdata value);
11 | GLM_FUNC_DECL hdata toFloat16(float const& value);
12 |
13 | }//namespace detail
14 | }//namespace glm
15 |
16 | #include "type_half.inl"
17 |
--------------------------------------------------------------------------------
/extern/glm/detail/type_mat4x4_simd.inl:
--------------------------------------------------------------------------------
1 | /// @ref core
2 |
3 | namespace glm
4 | {
5 |
6 | }//namespace glm
7 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_common.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_common
2 | /// @file glm/ext/matrix_common.hpp
3 | ///
4 | /// @defgroup ext_matrix_common GLM_EXT_matrix_common
5 | /// @ingroup ext
6 | ///
7 | /// Defines functions for common matrix operations.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_matrix_common
12 |
13 | #pragma once
14 |
15 | #include "../detail/qualifier.hpp"
16 | #include "../detail/_fixes.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_common extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_common
25 | /// @{
26 |
27 | template
28 | GLM_FUNC_DECL mat mix(mat const& x, mat const& y, mat const& a);
29 |
30 | template
31 | GLM_FUNC_DECL mat mix(mat const& x, mat const& y, U a);
32 |
33 | template
34 | GLM_FUNC_DECL GLM_CONSTEXPR mat abs(mat const& x);
35 |
36 | /// @}
37 | }//namespace glm
38 |
39 | #include "matrix_common.inl"
40 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_common.inl:
--------------------------------------------------------------------------------
1 | #include "../matrix.hpp"
2 |
3 | #include "_matrix_vectorize.hpp"
4 |
5 | namespace glm
6 | {
7 | template
8 | GLM_FUNC_QUALIFIER mat mix(mat const& x, mat const& y, U a)
9 | {
10 | return mat(x) * (static_cast(1) - a) + mat(y) * a;
11 | }
12 |
13 | template
14 | GLM_FUNC_QUALIFIER mat mix(mat const& x, mat const& y, mat const& a)
15 | {
16 | return matrixCompMult(mat(x), static_cast(1) - a) + matrixCompMult(mat(y), a);
17 | }
18 |
19 | template
20 | struct compute_abs_matrix
21 | {
22 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static mat call(mat const& x)
23 | {
24 | return detail::matrix_functor_1::call(abs, x);
25 | }
26 | };
27 |
28 | template
29 | GLM_FUNC_DECL GLM_CONSTEXPR mat abs(mat const& x)
30 | {
31 | return compute_abs_matrix::value>::call(x);
32 | }
33 |
34 | }//namespace glm
35 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double2x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 2 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 2, double, defaultp> dmat2x2;
16 |
17 | /// 2 columns of 2 components matrix of double-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<2, 2, double, defaultp> dmat2;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double2x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 3 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 3, double, defaultp> dmat2x3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double2x3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 2 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<2, 3, double, lowp> lowp_dmat2x3;
17 |
18 | /// 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<2, 3, double, mediump> mediump_dmat2x3;
23 |
24 | /// 2 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<2, 3, double, highp> highp_dmat2x3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double2x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 4 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 4, double, defaultp> dmat2x4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double2x4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double2x4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 2 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<2, 4, double, lowp> lowp_dmat2x4;
17 |
18 | /// 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<2, 4, double, mediump> mediump_dmat2x4;
23 |
24 | /// 2 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<2, 4, double, highp> highp_dmat2x4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double3x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 2 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 2, double, defaultp> dmat3x2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double3x2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 3 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<3, 2, double, lowp> lowp_dmat3x2;
17 |
18 | /// 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<3, 2, double, mediump> mediump_dmat3x2;
23 |
24 | /// 3 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<3, 2, double, highp> highp_dmat3x2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double3x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 3 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 3, double, defaultp> dmat3x3;
16 |
17 | /// 3 columns of 3 components matrix of double-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<3, 3, double, defaultp> dmat3;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double3x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 4 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 4, double, defaultp> dmat3x4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double3x4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double3x4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 3 columns of 4 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<3, 4, double, lowp> lowp_dmat3x4;
17 |
18 | /// 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<3, 4, double, mediump> mediump_dmat3x4;
23 |
24 | /// 3 columns of 4 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<3, 4, double, highp> highp_dmat3x4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double4x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 2 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 2, double, defaultp> dmat4x2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double4x2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 4 columns of 2 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<4, 2, double, lowp> lowp_dmat4x2;
17 |
18 | /// 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<4, 2, double, mediump> mediump_dmat4x2;
23 |
24 | /// 4 columns of 2 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<4, 2, double, highp> highp_dmat4x2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double4x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 3 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 3, double, defaultp> dmat4x3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double4x3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 4 columns of 3 components matrix of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<4, 3, double, lowp> lowp_dmat4x3;
17 |
18 | /// 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<4, 3, double, mediump> mediump_dmat4x3;
23 |
24 | /// 4 columns of 3 components matrix of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<4, 3, double, highp> highp_dmat4x3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_double4x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_double4x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 4 components matrix of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 4, double, defaultp> dmat4x4;
16 |
17 | /// 4 columns of 4 components matrix of double-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<4, 4, double, defaultp> dmat4;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float2x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 2 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 2, float, defaultp> mat2x2;
16 |
17 | /// 2 columns of 2 components matrix of single-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<2, 2, float, defaultp> mat2;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float2x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 3 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 3, float, defaultp> mat2x3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float2x3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 2 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<2, 3, float, lowp> lowp_mat2x3;
17 |
18 | /// 2 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<2, 3, float, mediump> mediump_mat2x3;
23 |
24 | /// 2 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<2, 3, float, highp> highp_mat2x3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float2x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 2 columns of 4 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<2, 4, float, defaultp> mat2x4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float2x4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 2 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<2, 4, float, lowp> lowp_mat2x4;
17 |
18 | /// 2 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<2, 4, float, mediump> mediump_mat2x4;
23 |
24 | /// 2 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<2, 4, float, highp> highp_mat2x4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float3x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 2 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 2, float, defaultp> mat3x2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float3x2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 3 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<3, 2, float, lowp> lowp_mat3x2;
17 |
18 | /// 3 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<3, 2, float, mediump> mediump_mat3x2;
23 |
24 | /// 3 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<3, 2, float, highp> highp_mat3x2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float3x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 3 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 3, float, defaultp> mat3x3;
16 |
17 | /// 3 columns of 3 components matrix of single-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<3, 3, float, defaultp> mat3;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float3x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 3 columns of 4 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<3, 4, float, defaultp> mat3x4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float3x4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float3x4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat3x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 3 columns of 4 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<3, 4, float, lowp> lowp_mat3x4;
17 |
18 | /// 3 columns of 4 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<3, 4, float, mediump> mediump_mat3x4;
23 |
24 | /// 3 columns of 4 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<3, 4, float, highp> highp_mat3x4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float4x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float4x2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 2 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 2, float, defaultp> mat4x2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float4x2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float2x2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat2x2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 4 columns of 2 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<4, 2, float, lowp> lowp_mat4x2;
17 |
18 | /// 4 columns of 2 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<4, 2, float, mediump> mediump_mat4x2;
23 |
24 | /// 4 columns of 2 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<4, 2, float, highp> highp_mat4x2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float4x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float4x3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 3 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 3, float, defaultp> mat4x3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float4x3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float4x3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_matrix_precision
10 | /// @{
11 |
12 | /// 4 columns of 3 components matrix of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef mat<4, 3, float, lowp> lowp_mat4x3;
17 |
18 | /// 4 columns of 3 components matrix of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef mat<4, 3, float, mediump> mediump_mat4x3;
23 |
24 | /// 4 columns of 3 components matrix of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef mat<4, 3, float, highp> highp_mat4x3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_float4x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/matrix_float4x4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_mat4x4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @ingroup core_matrix
10 | /// @{
11 |
12 | /// 4 columns of 4 components matrix of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
15 | typedef mat<4, 4, float, defaultp> mat4x4;
16 |
17 | /// 4 columns of 4 components matrix of single-precision floating-point numbers.
18 | ///
19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices
20 | typedef mat<4, 4, float, defaultp> mat4;
21 |
22 | /// @}
23 | }//namespace glm
24 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int2x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int2x2
2 | /// @file glm/ext/matrix_int2x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int2x2 GLM_EXT_matrix_int2x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int2x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int2x2
25 | /// @{
26 |
27 | /// Signed integer 2x2 matrix.
28 | ///
29 | /// @see ext_matrix_int2x2
30 | typedef mat<2, 2, int, defaultp> imat2x2;
31 |
32 | /// Signed integer 2x2 matrix.
33 | ///
34 | /// @see ext_matrix_int2x2
35 | typedef mat<2, 2, int, defaultp> imat2;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int2x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int2x3
2 | /// @file glm/ext/matrix_int2x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int2x3 GLM_EXT_matrix_int2x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int2x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int2x3
25 | /// @{
26 |
27 | /// Signed integer 2x3 matrix.
28 | ///
29 | /// @see ext_matrix_int2x3
30 | typedef mat<2, 3, int, defaultp> imat2x3;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int2x3_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int2x3_sized
2 | /// @file glm/ext/matrix_int2x3_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int2x3_sized GLM_EXT_matrix_int2x3_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x3.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_int2x3_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_int2x3_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer 2x3 matrix.
29 | ///
30 | /// @see ext_matrix_int2x3_sized
31 | typedef mat<2, 3, int8, defaultp> i8mat2x3;
32 |
33 | /// 16 bit signed integer 2x3 matrix.
34 | ///
35 | /// @see ext_matrix_int2x3_sized
36 | typedef mat<2, 3, int16, defaultp> i16mat2x3;
37 |
38 | /// 32 bit signed integer 2x3 matrix.
39 | ///
40 | /// @see ext_matrix_int2x3_sized
41 | typedef mat<2, 3, int32, defaultp> i32mat2x3;
42 |
43 | /// 64 bit signed integer 2x3 matrix.
44 | ///
45 | /// @see ext_matrix_int2x3_sized
46 | typedef mat<2, 3, int64, defaultp> i64mat2x3;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int2x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int2x4
2 | /// @file glm/ext/matrix_int2x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int2x4 GLM_EXT_matrix_int2x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int2x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int2x4
25 | /// @{
26 |
27 | /// Signed integer 2x4 matrix.
28 | ///
29 | /// @see ext_matrix_int2x4
30 | typedef mat<2, 4, int, defaultp> imat2x4;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int2x4_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int2x4_sized
2 | /// @file glm/ext/matrix_int2x4_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int2x4_sized GLM_EXT_matrix_int2x4_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x4.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_int2x4_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_int2x4_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer 2x4 matrix.
29 | ///
30 | /// @see ext_matrix_int2x4_sized
31 | typedef mat<2, 4, int8, defaultp> i8mat2x4;
32 |
33 | /// 16 bit signed integer 2x4 matrix.
34 | ///
35 | /// @see ext_matrix_int2x4_sized
36 | typedef mat<2, 4, int16, defaultp> i16mat2x4;
37 |
38 | /// 32 bit signed integer 2x4 matrix.
39 | ///
40 | /// @see ext_matrix_int2x4_sized
41 | typedef mat<2, 4, int32, defaultp> i32mat2x4;
42 |
43 | /// 64 bit signed integer 2x4 matrix.
44 | ///
45 | /// @see ext_matrix_int2x4_sized
46 | typedef mat<2, 4, int64, defaultp> i64mat2x4;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int3x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int3x2
2 | /// @file glm/ext/matrix_int3x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int3x2 GLM_EXT_matrix_int3x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int3x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int3x2
25 | /// @{
26 |
27 | /// Signed integer 3x2 matrix.
28 | ///
29 | /// @see ext_matrix_int3x2
30 | typedef mat<3, 2, int, defaultp> imat3x2;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int3x2_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int3x2_sized
2 | /// @file glm/ext/matrix_int3x2_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int3x2_sized GLM_EXT_matrix_int3x2_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x2.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_int3x2_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_int3x2_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer 3x2 matrix.
29 | ///
30 | /// @see ext_matrix_int3x2_sized
31 | typedef mat<3, 2, int8, defaultp> i8mat3x2;
32 |
33 | /// 16 bit signed integer 3x2 matrix.
34 | ///
35 | /// @see ext_matrix_int3x2_sized
36 | typedef mat<3, 2, int16, defaultp> i16mat3x2;
37 |
38 | /// 32 bit signed integer 3x2 matrix.
39 | ///
40 | /// @see ext_matrix_int3x2_sized
41 | typedef mat<3, 2, int32, defaultp> i32mat3x2;
42 |
43 | /// 64 bit signed integer 3x2 matrix.
44 | ///
45 | /// @see ext_matrix_int3x2_sized
46 | typedef mat<3, 2, int64, defaultp> i64mat3x2;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int3x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int3x3
2 | /// @file glm/ext/matrix_int3x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int3x3 GLM_EXT_matrix_int3x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int3x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int3x3
25 | /// @{
26 |
27 | /// Signed integer 3x3 matrix.
28 | ///
29 | /// @see ext_matrix_int3x3
30 | typedef mat<3, 3, int, defaultp> imat3x3;
31 |
32 | /// Signed integer 3x3 matrix.
33 | ///
34 | /// @see ext_matrix_int3x3
35 | typedef mat<3, 3, int, defaultp> imat3;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int3x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int3x4
2 | /// @file glm/ext/matrix_int3x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int3x4 GLM_EXT_matrix_int3x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int3x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int3x4
25 | /// @{
26 |
27 | /// Signed integer 3x4 matrix.
28 | ///
29 | /// @see ext_matrix_int3x4
30 | typedef mat<3, 4, int, defaultp> imat3x4;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int3x4_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int3x4_sized
2 | /// @file glm/ext/matrix_int3x2_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int3x4_sized GLM_EXT_matrix_int3x4_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x4.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_int3x4_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_int3x4_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer 3x4 matrix.
29 | ///
30 | /// @see ext_matrix_int3x4_sized
31 | typedef mat<3, 4, int8, defaultp> i8mat3x4;
32 |
33 | /// 16 bit signed integer 3x4 matrix.
34 | ///
35 | /// @see ext_matrix_int3x4_sized
36 | typedef mat<3, 4, int16, defaultp> i16mat3x4;
37 |
38 | /// 32 bit signed integer 3x4 matrix.
39 | ///
40 | /// @see ext_matrix_int3x4_sized
41 | typedef mat<3, 4, int32, defaultp> i32mat3x4;
42 |
43 | /// 64 bit signed integer 3x4 matrix.
44 | ///
45 | /// @see ext_matrix_int3x4_sized
46 | typedef mat<3, 4, int64, defaultp> i64mat3x4;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int4x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int4x2
2 | /// @file glm/ext/matrix_int4x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int4x2 GLM_EXT_matrix_int4x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int4x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int4x2
25 | /// @{
26 |
27 | /// Signed integer 4x2 matrix.
28 | ///
29 | /// @see ext_matrix_int4x2
30 | typedef mat<4, 2, int, defaultp> imat4x2;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int4x2_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int4x2_sized
2 | /// @file glm/ext/matrix_int4x2_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int4x2_sized GLM_EXT_matrix_int4x2_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x2.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_int4x2_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_int4x2_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer 4x2 matrix.
29 | ///
30 | /// @see ext_matrix_int4x2_sized
31 | typedef mat<4, 2, int8, defaultp> i8mat4x2;
32 |
33 | /// 16 bit signed integer 4x2 matrix.
34 | ///
35 | /// @see ext_matrix_int4x2_sized
36 | typedef mat<4, 2, int16, defaultp> i16mat4x2;
37 |
38 | /// 32 bit signed integer 4x2 matrix.
39 | ///
40 | /// @see ext_matrix_int4x2_sized
41 | typedef mat<4, 2, int32, defaultp> i32mat4x2;
42 |
43 | /// 64 bit signed integer 4x2 matrix.
44 | ///
45 | /// @see ext_matrix_int4x2_sized
46 | typedef mat<4, 2, int64, defaultp> i64mat4x2;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int4x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int4x3
2 | /// @file glm/ext/matrix_int4x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int4x3 GLM_EXT_matrix_int4x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int4x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int4x3
25 | /// @{
26 |
27 | /// Signed integer 4x3 matrix.
28 | ///
29 | /// @see ext_matrix_int4x3
30 | typedef mat<4, 3, int, defaultp> imat4x3;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int4x3_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int4x3_sized
2 | /// @file glm/ext/matrix_int4x3_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int4x3_sized GLM_EXT_matrix_int4x3_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x3.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_int4x3_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_int4x3_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer 4x3 matrix.
29 | ///
30 | /// @see ext_matrix_int4x3_sized
31 | typedef mat<4, 3, int8, defaultp> i8mat4x3;
32 |
33 | /// 16 bit signed integer 4x3 matrix.
34 | ///
35 | /// @see ext_matrix_int4x3_sized
36 | typedef mat<4, 3, int16, defaultp> i16mat4x3;
37 |
38 | /// 32 bit signed integer 4x3 matrix.
39 | ///
40 | /// @see ext_matrix_int4x3_sized
41 | typedef mat<4, 3, int32, defaultp> i32mat4x3;
42 |
43 | /// 64 bit signed integer 4x3 matrix.
44 | ///
45 | /// @see ext_matrix_int4x3_sized
46 | typedef mat<4, 3, int64, defaultp> i64mat4x3;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_int4x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_int4x4
2 | /// @file glm/ext/matrix_int4x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_int4x4 GLM_EXT_matrix_int4x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_int4x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_int4x4
25 | /// @{
26 |
27 | /// Signed integer 4x4 matrix.
28 | ///
29 | /// @see ext_matrix_int4x4
30 | typedef mat<4, 4, int, defaultp> imat4x4;
31 |
32 | /// Signed integer 4x4 matrix.
33 | ///
34 | /// @see ext_matrix_int4x4
35 | typedef mat<4, 4, int, defaultp> imat4;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_integer.inl:
--------------------------------------------------------------------------------
1 | namespace glm{
2 | namespace detail
3 | {
4 | template
5 | struct compute_matrixCompMult_type {
6 | GLM_FUNC_QUALIFIER static mat call(mat const& x, mat const& y)
7 | {
8 | return detail::compute_matrixCompMult::value>::call(x, y);
9 | }
10 | };
11 |
12 | template
13 | struct compute_outerProduct_type {
14 | GLM_FUNC_QUALIFIER static typename detail::outerProduct_trait::type call(vec const& c, vec const& r)
15 | {
16 | return detail::compute_outerProduct::call(c, r);
17 | }
18 | };
19 |
20 | template
21 | struct compute_transpose_type
22 | {
23 | GLM_FUNC_QUALIFIER static mat call(mat const& m)
24 | {
25 | return detail::compute_transpose::value>::call(m);
26 | }
27 | };
28 |
29 | template
30 | struct compute_determinant_type{
31 |
32 | GLM_FUNC_QUALIFIER static T call(mat const& m)
33 | {
34 | return detail::compute_determinant::value>::call(m);
35 | }
36 | };
37 | }//namespace detail
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint2x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint2x2
2 | /// @file glm/ext/matrix_uint2x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint2x2 GLM_EXT_matrix_uint2x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint2x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint2x2
25 | /// @{
26 |
27 | /// Unsigned integer 2x2 matrix.
28 | ///
29 | /// @see ext_matrix_uint2x2
30 | typedef mat<2, 2, uint, defaultp> umat2x2;
31 |
32 | /// Unsigned integer 2x2 matrix.
33 | ///
34 | /// @see ext_matrix_uint2x2
35 | typedef mat<2, 2, uint, defaultp> umat2;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint2x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint2x3
2 | /// @file glm/ext/matrix_uint2x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint2x3 GLM_EXT_matrix_uint2x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint2x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint2x3
25 | /// @{
26 |
27 | /// Unsigned integer 2x3 matrix.
28 | ///
29 | /// @see ext_matrix_uint2x3
30 | typedef mat<2, 3, uint, defaultp> umat2x3;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint2x3_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint2x3_sized
2 | /// @file glm/ext/matrix_uint2x3_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint2x3_sized GLM_EXT_matrix_uint2x3_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x3.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_uint2x3_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_uint2x3_sized
26 | /// @{
27 |
28 | /// 8 bit unsigned integer 2x3 matrix.
29 | ///
30 | /// @see ext_matrix_uint2x3_sized
31 | typedef mat<2, 3, uint8, defaultp> u8mat2x3;
32 |
33 | /// 16 bit unsigned integer 2x3 matrix.
34 | ///
35 | /// @see ext_matrix_uint2x3_sized
36 | typedef mat<2, 3, uint16, defaultp> u16mat2x3;
37 |
38 | /// 32 bit unsigned integer 2x3 matrix.
39 | ///
40 | /// @see ext_matrix_uint2x3_sized
41 | typedef mat<2, 3, uint32, defaultp> u32mat2x3;
42 |
43 | /// 64 bit unsigned integer 2x3 matrix.
44 | ///
45 | /// @see ext_matrix_uint2x3_sized
46 | typedef mat<2, 3, uint64, defaultp> u64mat2x3;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint2x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint2x4
2 | /// @file glm/ext/matrix_uint2x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint2x4 GLM_EXT_matrix_int2x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint2x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint2x4
25 | /// @{
26 |
27 | /// Unsigned integer 2x4 matrix.
28 | ///
29 | /// @see ext_matrix_uint2x4
30 | typedef mat<2, 4, uint, defaultp> umat2x4;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint2x4_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint2x4_sized
2 | /// @file glm/ext/matrix_uint2x4_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint2x4_sized GLM_EXT_matrix_uint2x4_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat2x4.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_uint2x4_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_uint2x4_sized
26 | /// @{
27 |
28 | /// 8 bit unsigned integer 2x4 matrix.
29 | ///
30 | /// @see ext_matrix_uint2x4_sized
31 | typedef mat<2, 4, uint8, defaultp> u8mat2x4;
32 |
33 | /// 16 bit unsigned integer 2x4 matrix.
34 | ///
35 | /// @see ext_matrix_uint2x4_sized
36 | typedef mat<2, 4, uint16, defaultp> u16mat2x4;
37 |
38 | /// 32 bit unsigned integer 2x4 matrix.
39 | ///
40 | /// @see ext_matrix_uint2x4_sized
41 | typedef mat<2, 4, uint32, defaultp> u32mat2x4;
42 |
43 | /// 64 bit unsigned integer 2x4 matrix.
44 | ///
45 | /// @see ext_matrix_uint2x4_sized
46 | typedef mat<2, 4, uint64, defaultp> u64mat2x4;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint3x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint3x2
2 | /// @file glm/ext/matrix_uint3x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint3x2 GLM_EXT_matrix_uint3x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint3x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint3x2
25 | /// @{
26 |
27 | /// Unsigned integer 3x2 matrix.
28 | ///
29 | /// @see ext_matrix_uint3x2
30 | typedef mat<3, 2, uint, defaultp> umat3x2;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint3x2_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint3x2_sized
2 | /// @file glm/ext/matrix_uint3x2_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint3x2_sized GLM_EXT_matrix_uint3x2_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x2.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_uint3x2_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_uint3x2_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer 3x2 matrix.
29 | ///
30 | /// @see ext_matrix_uint3x2_sized
31 | typedef mat<3, 2, uint8, defaultp> u8mat3x2;
32 |
33 | /// 16 bit signed integer 3x2 matrix.
34 | ///
35 | /// @see ext_matrix_uint3x2_sized
36 | typedef mat<3, 2, uint16, defaultp> u16mat3x2;
37 |
38 | /// 32 bit signed integer 3x2 matrix.
39 | ///
40 | /// @see ext_matrix_uint3x2_sized
41 | typedef mat<3, 2, uint32, defaultp> u32mat3x2;
42 |
43 | /// 64 bit signed integer 3x2 matrix.
44 | ///
45 | /// @see ext_matrix_uint3x2_sized
46 | typedef mat<3, 2, uint64, defaultp> u64mat3x2;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint3x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint3x3
2 | /// @file glm/ext/matrix_uint3x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint3x3 GLM_EXT_matrix_uint3x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint3x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint3x3
25 | /// @{
26 |
27 | /// Unsigned integer 3x3 matrix.
28 | ///
29 | /// @see ext_matrix_uint3x3
30 | typedef mat<3, 3, uint, defaultp> umat3x3;
31 |
32 | /// Unsigned integer 3x3 matrix.
33 | ///
34 | /// @see ext_matrix_uint3x3
35 | typedef mat<3, 3, uint, defaultp> umat3;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint3x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint3x4
2 | /// @file glm/ext/matrix_uint3x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint3x4 GLM_EXT_matrix_uint3x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint3x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint3x4
25 | /// @{
26 |
27 | /// Signed integer 3x4 matrix.
28 | ///
29 | /// @see ext_matrix_uint3x4
30 | typedef mat<3, 4, uint, defaultp> umat3x4;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint3x4_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint3x4_sized
2 | /// @file glm/ext/matrix_uint3x2_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint3x4_sized GLM_EXT_matrix_uint3x4_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat3x4.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_uint3x4_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_uint3x4_sized
26 | /// @{
27 |
28 | /// 8 bit unsigned integer 3x4 matrix.
29 | ///
30 | /// @see ext_matrix_uint3x4_sized
31 | typedef mat<3, 4, uint8, defaultp> u8mat3x4;
32 |
33 | /// 16 bit unsigned integer 3x4 matrix.
34 | ///
35 | /// @see ext_matrix_uint3x4_sized
36 | typedef mat<3, 4, uint16, defaultp> u16mat3x4;
37 |
38 | /// 32 bit unsigned integer 3x4 matrix.
39 | ///
40 | /// @see ext_matrix_uint3x4_sized
41 | typedef mat<3, 4, uint32, defaultp> u32mat3x4;
42 |
43 | /// 64 bit unsigned integer 3x4 matrix.
44 | ///
45 | /// @see ext_matrix_uint3x4_sized
46 | typedef mat<3, 4, uint64, defaultp> u64mat3x4;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint4x2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint4x2
2 | /// @file glm/ext/matrix_uint4x2.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint4x2 GLM_EXT_matrix_uint4x2
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x2.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint4x2 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint4x2
25 | /// @{
26 |
27 | /// Unsigned integer 4x2 matrix.
28 | ///
29 | /// @see ext_matrix_uint4x2
30 | typedef mat<4, 2, uint, defaultp> umat4x2;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint4x2_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint4x2_sized
2 | /// @file glm/ext/matrix_uint4x2_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint4x2_sized GLM_EXT_matrix_uint4x2_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x2.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_uint4x2_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_uint4x2_sized
26 | /// @{
27 |
28 | /// 8 bit unsigned integer 4x2 matrix.
29 | ///
30 | /// @see ext_matrix_uint4x2_sized
31 | typedef mat<4, 2, uint8, defaultp> u8mat4x2;
32 |
33 | /// 16 bit unsigned integer 4x2 matrix.
34 | ///
35 | /// @see ext_matrix_uint4x2_sized
36 | typedef mat<4, 2, uint16, defaultp> u16mat4x2;
37 |
38 | /// 32 bit unsigned integer 4x2 matrix.
39 | ///
40 | /// @see ext_matrix_uint4x2_sized
41 | typedef mat<4, 2, uint32, defaultp> u32mat4x2;
42 |
43 | /// 64 bit unsigned integer 4x2 matrix.
44 | ///
45 | /// @see ext_matrix_uint4x2_sized
46 | typedef mat<4, 2, uint64, defaultp> u64mat4x2;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint4x3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint4x3
2 | /// @file glm/ext/matrix_uint4x3.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint4x3 GLM_EXT_matrix_uint4x3
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x3.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint4x3 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint4x3
25 | /// @{
26 |
27 | /// Unsigned integer 4x3 matrix.
28 | ///
29 | /// @see ext_matrix_uint4x3
30 | typedef mat<4, 3, uint, defaultp> umat4x3;
31 |
32 | /// @}
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint4x3_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint4x3_sized
2 | /// @file glm/ext/matrix_uint4x3_sized.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint4x3_sized GLM_EXT_matrix_uint4x3_sized
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x3.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_matrix_uint4x3_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_matrix_uint4x3_sized
26 | /// @{
27 |
28 | /// 8 bit unsigned integer 4x3 matrix.
29 | ///
30 | /// @see ext_matrix_uint4x3_sized
31 | typedef mat<4, 3, uint8, defaultp> u8mat4x3;
32 |
33 | /// 16 bit unsigned integer 4x3 matrix.
34 | ///
35 | /// @see ext_matrix_uint4x3_sized
36 | typedef mat<4, 3, uint16, defaultp> u16mat4x3;
37 |
38 | /// 32 bit unsigned integer 4x3 matrix.
39 | ///
40 | /// @see ext_matrix_uint4x3_sized
41 | typedef mat<4, 3, uint32, defaultp> u32mat4x3;
42 |
43 | /// 64 bit unsigned integer 4x3 matrix.
44 | ///
45 | /// @see ext_matrix_uint4x3_sized
46 | typedef mat<4, 3, uint64, defaultp> u64mat4x3;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/matrix_uint4x4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_matrix_uint4x4
2 | /// @file glm/ext/matrix_uint4x4.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_matrix_uint4x4 GLM_EXT_matrix_uint4x4
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines a number of matrices with integer types.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../mat4x4.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_matrix_uint4x4 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_matrix_uint4x4
25 | /// @{
26 |
27 | /// Unsigned integer 4x4 matrix.
28 | ///
29 | /// @see ext_matrix_uint4x4
30 | typedef mat<4, 4, uint, defaultp> umat4x4;
31 |
32 | /// Unsigned integer 4x4 matrix.
33 | ///
34 | /// @see ext_matrix_uint4x4
35 | typedef mat<4, 4, uint, defaultp> umat4;
36 |
37 | /// @}
38 | }//namespace glm
39 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_common_simd.inl:
--------------------------------------------------------------------------------
1 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT
2 |
3 | namespace glm{
4 | namespace detail
5 | {
6 | template
7 | struct compute_dot, float, true>
8 | {
9 | static GLM_FUNC_QUALIFIER float call(qua const& x, qua const& y)
10 | {
11 | return _mm_cvtss_f32(glm_vec1_dot(x.data, y.data));
12 | }
13 | };
14 | }//namespace detail
15 | }//namespace glm
16 |
17 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT
18 |
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_double.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_double
2 | /// @file glm/ext/quaternion_double.hpp
3 | ///
4 | /// @defgroup ext_quaternion_double GLM_EXT_quaternion_double
5 | /// @ingroup ext
6 | ///
7 | /// Exposes double-precision floating point quaternion type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_quaternion_float
12 | /// @see ext_quaternion_double_precision
13 | /// @see ext_quaternion_common
14 | /// @see ext_quaternion_exponential
15 | /// @see ext_quaternion_geometric
16 | /// @see ext_quaternion_relational
17 | /// @see ext_quaternion_transform
18 | /// @see ext_quaternion_trigonometric
19 |
20 | #pragma once
21 |
22 | // Dependency:
23 | #include "../detail/type_quat.hpp"
24 |
25 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
26 | # pragma message("GLM: GLM_EXT_quaternion_double extension included")
27 | #endif
28 |
29 | namespace glm
30 | {
31 | /// @addtogroup ext_quaternion_double
32 | /// @{
33 |
34 | /// Quaternion of double-precision floating-point numbers.
35 | typedef qua dquat;
36 |
37 | /// @}
38 | } //namespace glm
39 |
40 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_double_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_double_precision
2 | /// @file glm/ext/quaternion_double_precision.hpp
3 | ///
4 | /// @defgroup ext_quaternion_double_precision GLM_EXT_quaternion_double_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes double-precision floating point quaternion type with various precision in term of ULPs.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | // Dependency:
14 | #include "../detail/type_quat.hpp"
15 |
16 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
17 | # pragma message("GLM: GLM_EXT_quaternion_double_precision extension included")
18 | #endif
19 |
20 | namespace glm
21 | {
22 | /// @addtogroup ext_quaternion_double_precision
23 | /// @{
24 |
25 | /// Quaternion of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
26 | ///
27 | /// @see ext_quaternion_double_precision
28 | typedef qua lowp_dquat;
29 |
30 | /// Quaternion of medium double-qualifier floating-point numbers using high precision arithmetic in term of ULPs.
31 | ///
32 | /// @see ext_quaternion_double_precision
33 | typedef qua mediump_dquat;
34 |
35 | /// Quaternion of high double-qualifier floating-point numbers using high precision arithmetic in term of ULPs.
36 | ///
37 | /// @see ext_quaternion_double_precision
38 | typedef qua highp_dquat;
39 |
40 | /// @}
41 | } //namespace glm
42 |
43 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_float.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_float
2 | /// @file glm/ext/quaternion_float.hpp
3 | ///
4 | /// @defgroup ext_quaternion_float GLM_EXT_quaternion_float
5 | /// @ingroup ext
6 | ///
7 | /// Exposes single-precision floating point quaternion type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_quaternion_double
12 | /// @see ext_quaternion_float_precision
13 | /// @see ext_quaternion_common
14 | /// @see ext_quaternion_exponential
15 | /// @see ext_quaternion_geometric
16 | /// @see ext_quaternion_relational
17 | /// @see ext_quaternion_transform
18 | /// @see ext_quaternion_trigonometric
19 |
20 | #pragma once
21 |
22 | // Dependency:
23 | #include "../detail/type_quat.hpp"
24 |
25 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
26 | # pragma message("GLM: GLM_EXT_quaternion_float extension included")
27 | #endif
28 |
29 | namespace glm
30 | {
31 | /// @addtogroup ext_quaternion_float
32 | /// @{
33 |
34 | /// Quaternion of single-precision floating-point numbers.
35 | typedef qua quat;
36 |
37 | /// @}
38 | } //namespace glm
39 |
40 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_float_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_float_precision
2 | /// @file glm/ext/quaternion_float_precision.hpp
3 | ///
4 | /// @defgroup ext_quaternion_float_precision GLM_EXT_quaternion_float_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes single-precision floating point quaternion type with various precision in term of ULPs.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | // Dependency:
14 | #include "../detail/type_quat.hpp"
15 |
16 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
17 | # pragma message("GLM: GLM_EXT_quaternion_float_precision extension included")
18 | #endif
19 |
20 | namespace glm
21 | {
22 | /// @addtogroup ext_quaternion_float_precision
23 | /// @{
24 |
25 | /// Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
26 | typedef qua lowp_quat;
27 |
28 | /// Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
29 | typedef qua mediump_quat;
30 |
31 | /// Quaternion of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
32 | typedef qua highp_quat;
33 |
34 | /// @}
35 | } //namespace glm
36 |
37 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_geometric.inl:
--------------------------------------------------------------------------------
1 | namespace glm
2 | {
3 | template
4 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR T dot(qua const& x, qua const& y)
5 | {
6 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || GLM_CONFIG_UNRESTRICTED_FLOAT, "'dot' accepts only floating-point inputs");
7 | return detail::compute_dot, T, detail::is_aligned::value>::call(x, y);
8 | }
9 |
10 | template
11 | GLM_FUNC_QUALIFIER T length(qua const& q)
12 | {
13 | return glm::sqrt(dot(q, q));
14 | }
15 |
16 | template
17 | GLM_FUNC_QUALIFIER qua normalize(qua const& q)
18 | {
19 | T len = length(q);
20 | if(len <= static_cast(0)) // Problem
21 | return qua::wxyz(static_cast(1), static_cast(0), static_cast(0), static_cast(0));
22 | T oneOverLen = static_cast(1) / len;
23 | return qua::wxyz(q.w * oneOverLen, q.x * oneOverLen, q.y * oneOverLen, q.z * oneOverLen);
24 | }
25 |
26 | template
27 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR qua cross(qua const& q1, qua const& q2)
28 | {
29 | return qua::wxyz(
30 | q1.w * q2.w - q1.x * q2.x - q1.y * q2.y - q1.z * q2.z,
31 | q1.w * q2.x + q1.x * q2.w + q1.y * q2.z - q1.z * q2.y,
32 | q1.w * q2.y + q1.y * q2.w + q1.z * q2.x - q1.x * q2.z,
33 | q1.w * q2.z + q1.z * q2.w + q1.x * q2.y - q1.y * q2.x);
34 | }
35 | }//namespace glm
36 |
37 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_relational.inl:
--------------------------------------------------------------------------------
1 | namespace glm
2 | {
3 | template
4 | GLM_FUNC_QUALIFIER vec<4, bool, Q> equal(qua const& x, qua const& y)
5 | {
6 | vec<4, bool, Q> Result;
7 | for(length_t i = 0; i < x.length(); ++i)
8 | Result[i] = x[i] == y[i];
9 | return Result;
10 | }
11 |
12 | template
13 | GLM_FUNC_QUALIFIER vec<4, bool, Q> equal(qua const& x, qua const& y, T epsilon)
14 | {
15 | vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
16 | return lessThan(abs(v), vec<4, T, Q>(epsilon));
17 | }
18 |
19 | template
20 | GLM_FUNC_QUALIFIER vec<4, bool, Q> notEqual(qua const& x, qua const& y)
21 | {
22 | vec<4, bool, Q> Result;
23 | for(length_t i = 0; i < x.length(); ++i)
24 | Result[i] = x[i] != y[i];
25 | return Result;
26 | }
27 |
28 | template
29 | GLM_FUNC_QUALIFIER vec<4, bool, Q> notEqual(qua const& x, qua const& y, T epsilon)
30 | {
31 | vec<4, T, Q> v(x.x - y.x, x.y - y.y, x.z - y.z, x.w - y.w);
32 | return greaterThanEqual(abs(v), vec<4, T, Q>(epsilon));
33 | }
34 | }//namespace glm
35 |
36 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_transform.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_quaternion_transform
2 | /// @file glm/ext/quaternion_transform.hpp
3 | ///
4 | /// @defgroup ext_quaternion_transform GLM_EXT_quaternion_transform
5 | /// @ingroup ext
6 | ///
7 | /// Provides transformation functions for quaternion types
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_quaternion_float
12 | /// @see ext_quaternion_double
13 | /// @see ext_quaternion_exponential
14 | /// @see ext_quaternion_geometric
15 | /// @see ext_quaternion_relational
16 | /// @see ext_quaternion_trigonometric
17 |
18 | #pragma once
19 |
20 | // Dependency:
21 | #include "../common.hpp"
22 | #include "../trigonometric.hpp"
23 | #include "../geometric.hpp"
24 |
25 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
26 | # pragma message("GLM: GLM_EXT_quaternion_transform extension included")
27 | #endif
28 |
29 | namespace glm
30 | {
31 | /// @addtogroup ext_quaternion_transform
32 | /// @{
33 |
34 | /// Rotates a quaternion from a vector of 3 components axis and an angle.
35 | ///
36 | /// @param q Source orientation
37 | /// @param angle Angle expressed in radians.
38 | /// @param axis Axis of the rotation
39 | ///
40 | /// @tparam T Floating-point scalar types
41 | /// @tparam Q Value from qualifier enum
42 | template
43 | GLM_FUNC_DECL qua rotate(qua const& q, T const& angle, vec<3, T, Q> const& axis);
44 | /// @}
45 | } //namespace glm
46 |
47 | #include "quaternion_transform.inl"
48 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_transform.inl:
--------------------------------------------------------------------------------
1 | namespace glm
2 | {
3 | template
4 | GLM_FUNC_QUALIFIER qua rotate(qua const& q, T const& angle, vec<3, T, Q> const& v)
5 | {
6 | vec<3, T, Q> Tmp = v;
7 |
8 | // Axis of rotation must be normalised
9 | T len = glm::length(Tmp);
10 | if(abs(len - static_cast(1)) > static_cast(0.001))
11 | {
12 | T oneOverLen = static_cast(1) / len;
13 | Tmp.x *= oneOverLen;
14 | Tmp.y *= oneOverLen;
15 | Tmp.z *= oneOverLen;
16 | }
17 |
18 | T const AngleRad(angle);
19 | T const Sin = sin(AngleRad * static_cast(0.5));
20 |
21 | return q * qua::wxyz(cos(AngleRad * static_cast(0.5)), Tmp.x * Sin, Tmp.y * Sin, Tmp.z * Sin);
22 | }
23 | }//namespace glm
24 |
25 |
--------------------------------------------------------------------------------
/extern/glm/ext/quaternion_trigonometric.inl:
--------------------------------------------------------------------------------
1 | #include "scalar_constants.hpp"
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER T angle(qua const& x)
7 | {
8 | if (abs(x.w) > cos_one_over_two())
9 | {
10 | T const a = asin(sqrt(x.x * x.x + x.y * x.y + x.z * x.z)) * static_cast(2);
11 | if(x.w < static_cast(0))
12 | return pi() * static_cast(2) - a;
13 | return a;
14 | }
15 |
16 | return acos(x.w) * static_cast(2);
17 | }
18 |
19 | template
20 | GLM_FUNC_QUALIFIER vec<3, T, Q> axis(qua const& x)
21 | {
22 | T const tmp1 = static_cast(1) - x.w * x.w;
23 | if(tmp1 <= static_cast(0))
24 | return vec<3, T, Q>(0, 0, 1);
25 | T const tmp2 = static_cast(1) / sqrt(tmp1);
26 | return vec<3, T, Q>(x.x * tmp2, x.y * tmp2, x.z * tmp2);
27 | }
28 |
29 | template
30 | GLM_FUNC_QUALIFIER qua angleAxis(T const& angle, vec<3, T, Q> const& v)
31 | {
32 | T const a(angle);
33 | T const s = glm::sin(a * static_cast(0.5));
34 |
35 | return qua(glm::cos(a * static_cast(0.5)), v * s);
36 | }
37 | }//namespace glm
38 |
--------------------------------------------------------------------------------
/extern/glm/ext/scalar_constants.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_scalar_constants
2 | /// @file glm/ext/scalar_constants.hpp
3 | ///
4 | /// @defgroup ext_scalar_constants GLM_EXT_scalar_constants
5 | /// @ingroup ext
6 | ///
7 | /// Provides a list of constants and precomputed useful values.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | // Dependencies
14 | #include "../detail/setup.hpp"
15 |
16 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
17 | # pragma message("GLM: GLM_EXT_scalar_constants extension included")
18 | #endif
19 |
20 | namespace glm
21 | {
22 | /// @addtogroup ext_scalar_constants
23 | /// @{
24 |
25 | /// Return the epsilon constant for floating point types.
26 | template
27 | GLM_FUNC_DECL GLM_CONSTEXPR genType epsilon();
28 |
29 | /// Return the pi constant for floating point types.
30 | template
31 | GLM_FUNC_DECL GLM_CONSTEXPR genType pi();
32 |
33 | /// Return the value of cos(1 / 2) for floating point types.
34 | template
35 | GLM_FUNC_DECL GLM_CONSTEXPR genType cos_one_over_two();
36 |
37 | /// @}
38 | } //namespace glm
39 |
40 | #include "scalar_constants.inl"
41 |
--------------------------------------------------------------------------------
/extern/glm/ext/scalar_constants.inl:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType epsilon()
7 | {
8 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || GLM_CONFIG_UNRESTRICTED_FLOAT, "'epsilon' only accepts floating-point inputs");
9 | return std::numeric_limits::epsilon();
10 | }
11 |
12 | template
13 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType pi()
14 | {
15 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559 || GLM_CONFIG_UNRESTRICTED_FLOAT, "'pi' only accepts floating-point inputs");
16 | return static_cast(3.14159265358979323846264338327950288);
17 | }
18 |
19 | template
20 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType cos_one_over_two()
21 | {
22 | return genType(0.877582561890372716130286068203503191);
23 | }
24 | } //namespace glm
25 |
--------------------------------------------------------------------------------
/extern/glm/ext/scalar_int_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_scalar_int_sized
2 | /// @file glm/ext/scalar_int_sized.hpp
3 | ///
4 | /// @defgroup ext_scalar_int_sized GLM_EXT_scalar_int_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized signed integer scalar types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_uint_sized
12 |
13 | #pragma once
14 |
15 | #include "../detail/setup.hpp"
16 |
17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
18 | # pragma message("GLM: GLM_EXT_scalar_int_sized extension included")
19 | #endif
20 |
21 | namespace glm{
22 | namespace detail
23 | {
24 | # if GLM_HAS_EXTENDED_INTEGER_TYPE
25 | typedef std::int8_t int8;
26 | typedef std::int16_t int16;
27 | typedef std::int32_t int32;
28 | # else
29 | typedef signed char int8;
30 | typedef signed short int16;
31 | typedef signed int int32;
32 | #endif//
33 |
34 | template<>
35 | struct is_int
36 | {
37 | enum test {value = ~0};
38 | };
39 |
40 | template<>
41 | struct is_int
42 | {
43 | enum test {value = ~0};
44 | };
45 |
46 | template<>
47 | struct is_int
48 | {
49 | enum test {value = ~0};
50 | };
51 | }//namespace detail
52 |
53 |
54 | /// @addtogroup ext_scalar_int_sized
55 | /// @{
56 |
57 | /// 8 bit signed integer type.
58 | typedef detail::int8 int8;
59 |
60 | /// 16 bit signed integer type.
61 | typedef detail::int16 int16;
62 |
63 | /// 32 bit signed integer type.
64 | typedef detail::int32 int32;
65 |
66 | /// 64 bit signed integer type.
67 | typedef detail::int64 int64;
68 |
69 | /// @}
70 | }//namespace glm
71 |
--------------------------------------------------------------------------------
/extern/glm/ext/scalar_packing.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_scalar_packing
2 | /// @file glm/ext/scalar_packing.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_scalar_packing GLM_EXT_scalar_packing
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// This extension provides a set of function to convert scalar values to packed
12 | /// formats.
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../detail/qualifier.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_scalar_packing extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_scalar_packing
26 | /// @{
27 |
28 |
29 | /// @}
30 | }// namespace glm
31 |
32 | #include "scalar_packing.inl"
33 |
--------------------------------------------------------------------------------
/extern/glm/ext/scalar_packing.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hlavacs/ViennaPhysicsEngine/8e3b32fb6d064d8d72ba35bd4e6eef54c18d477e/extern/glm/ext/scalar_packing.inl
--------------------------------------------------------------------------------
/extern/glm/ext/scalar_relational.inl:
--------------------------------------------------------------------------------
1 | #include "../common.hpp"
2 | #include "../ext/scalar_int_sized.hpp"
3 | #include "../ext/scalar_uint_sized.hpp"
4 | #include "../detail/type_float.hpp"
5 |
6 | namespace glm
7 | {
8 | template
9 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool equal(genType const& x, genType const& y, genType const& epsilon)
10 | {
11 | return abs(x - y) <= epsilon;
12 | }
13 |
14 | template
15 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, genType const& epsilon)
16 | {
17 | return abs(x - y) > epsilon;
18 | }
19 |
20 | template
21 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool equal(genType const& x, genType const& y, int MaxULPs)
22 | {
23 | detail::float_t const a(x);
24 | detail::float_t const b(y);
25 |
26 | // Different signs means they do not match.
27 | if(a.negative() != b.negative())
28 | return false;
29 |
30 | // Find the difference in ULPs.
31 | typename detail::float_t::int_type const DiffULPs = abs(a.i - b.i);
32 | return DiffULPs <= MaxULPs;
33 | }
34 |
35 | template
36 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR bool notEqual(genType const& x, genType const& y, int ULPs)
37 | {
38 | return !equal(x, y, ULPs);
39 | }
40 | }//namespace glm
41 |
--------------------------------------------------------------------------------
/extern/glm/ext/scalar_uint_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_scalar_uint_sized
2 | /// @file glm/ext/scalar_uint_sized.hpp
3 | ///
4 | /// @defgroup ext_scalar_uint_sized GLM_EXT_scalar_uint_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized unsigned integer scalar types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_int_sized
12 |
13 | #pragma once
14 |
15 | #include "../detail/setup.hpp"
16 |
17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
18 | # pragma message("GLM: GLM_EXT_scalar_uint_sized extension included")
19 | #endif
20 |
21 | namespace glm{
22 | namespace detail
23 | {
24 | # if GLM_HAS_EXTENDED_INTEGER_TYPE
25 | typedef std::uint8_t uint8;
26 | typedef std::uint16_t uint16;
27 | typedef std::uint32_t uint32;
28 | # else
29 | typedef unsigned char uint8;
30 | typedef unsigned short uint16;
31 | typedef unsigned int uint32;
32 | #endif
33 |
34 | template<>
35 | struct is_int
36 | {
37 | enum test {value = ~0};
38 | };
39 |
40 | template<>
41 | struct is_int
42 | {
43 | enum test {value = ~0};
44 | };
45 |
46 | template<>
47 | struct is_int
48 | {
49 | enum test {value = ~0};
50 | };
51 | }//namespace detail
52 |
53 |
54 | /// @addtogroup ext_scalar_uint_sized
55 | /// @{
56 |
57 | /// 8 bit unsigned integer type.
58 | typedef detail::uint8 uint8;
59 |
60 | /// 16 bit unsigned integer type.
61 | typedef detail::uint16 uint16;
62 |
63 | /// 32 bit unsigned integer type.
64 | typedef detail::uint32 uint32;
65 |
66 | /// 64 bit unsigned integer type.
67 | typedef detail::uint64 uint64;
68 |
69 | /// @}
70 | }//namespace glm
71 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_bool1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_bool1
2 | /// @file glm/ext/vector_bool1.hpp
3 | ///
4 | /// @defgroup ext_vector_bool1 GLM_EXT_vector_bool1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes bvec1 vector type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_bool1_precision extension.
12 |
13 | #pragma once
14 |
15 | #include "../detail/type_vec1.hpp"
16 |
17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
18 | # pragma message("GLM: GLM_EXT_vector_bool1 extension included")
19 | #endif
20 |
21 | namespace glm
22 | {
23 | /// @addtogroup ext_vector_bool1
24 | /// @{
25 |
26 | /// 1 components vector of boolean.
27 | typedef vec<1, bool, defaultp> bvec1;
28 |
29 | /// @}
30 | }//namespace glm
31 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_bool1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_bool1_precision
2 | /// @file glm/ext/vector_bool1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_bool1_precision GLM_EXT_vector_bool1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 |
11 | #pragma once
12 |
13 | #include "../detail/type_vec1.hpp"
14 |
15 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
16 | # pragma message("GLM: GLM_EXT_vector_bool1_precision extension included")
17 | #endif
18 |
19 | namespace glm
20 | {
21 | /// @addtogroup ext_vector_bool1_precision
22 | /// @{
23 |
24 | /// 1 component vector of bool values.
25 | typedef vec<1, bool, highp> highp_bvec1;
26 |
27 | /// 1 component vector of bool values.
28 | typedef vec<1, bool, mediump> mediump_bvec1;
29 |
30 | /// 1 component vector of bool values.
31 | typedef vec<1, bool, lowp> lowp_bvec1;
32 |
33 | /// @}
34 | }//namespace glm
35 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_bool2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of boolean.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, bool, defaultp> bvec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_bool2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 2 components vector of high qualifier bool numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<2, bool, highp> highp_bvec2;
17 |
18 | /// 2 components vector of medium qualifier bool numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<2, bool, mediump> mediump_bvec2;
23 |
24 | /// 2 components vector of low qualifier bool numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<2, bool, lowp> lowp_bvec2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_bool3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of boolean.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, bool, defaultp> bvec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_bool3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 3 components vector of high qualifier bool numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<3, bool, highp> highp_bvec3;
17 |
18 | /// 3 components vector of medium qualifier bool numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<3, bool, mediump> mediump_bvec3;
23 |
24 | /// 3 components vector of low qualifier bool numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<3, bool, lowp> lowp_bvec3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_bool4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of boolean.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, bool, defaultp> bvec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_bool4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_bool4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 4 components vector of high qualifier bool numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<4, bool, highp> highp_bvec4;
17 |
18 | /// 4 components vector of medium qualifier bool numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<4, bool, mediump> mediump_bvec4;
23 |
24 | /// 4 components vector of low qualifier bool numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<4, bool, lowp> lowp_bvec4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_double1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_double1
2 | /// @file glm/ext/vector_double1.hpp
3 | ///
4 | /// @defgroup ext_vector_double1 GLM_EXT_vector_double1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes double-precision floating point vector type with one component.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_double1_precision extension.
12 | /// @see ext_vector_float1 extension.
13 |
14 | #pragma once
15 |
16 | #include "../detail/type_vec1.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_vector_double1 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_vector_double1
25 | /// @{
26 |
27 | /// 1 components vector of double-precision floating-point numbers.
28 | typedef vec<1, double, defaultp> dvec1;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_double1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_double1_precision
2 | /// @file glm/ext/vector_double1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_double1_precision GLM_EXT_vector_double1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_dvec1, mediump_dvec1 and lowp_dvec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_double1
12 |
13 | #pragma once
14 |
15 | #include "../detail/type_vec1.hpp"
16 |
17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
18 | # pragma message("GLM: GLM_EXT_vector_double1_precision extension included")
19 | #endif
20 |
21 | namespace glm
22 | {
23 | /// @addtogroup ext_vector_double1_precision
24 | /// @{
25 |
26 | /// 1 component vector of double-precision floating-point numbers using high precision arithmetic in term of ULPs.
27 | typedef vec<1, double, highp> highp_dvec1;
28 |
29 | /// 1 component vector of double-precision floating-point numbers using medium precision arithmetic in term of ULPs.
30 | typedef vec<1, double, mediump> mediump_dvec1;
31 |
32 | /// 1 component vector of double-precision floating-point numbers using low precision arithmetic in term of ULPs.
33 | typedef vec<1, double, lowp> lowp_dvec1;
34 |
35 | /// @}
36 | }//namespace glm
37 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_double2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, double, defaultp> dvec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_double2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 2 components vector of high double-qualifier floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<2, double, highp> highp_dvec2;
17 |
18 | /// 2 components vector of medium double-qualifier floating-point numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<2, double, mediump> mediump_dvec2;
23 |
24 | /// 2 components vector of low double-qualifier floating-point numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<2, double, lowp> lowp_dvec2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_double3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, double, defaultp> dvec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_double3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 3 components vector of high double-qualifier floating-point numbers.
13 | /// There is no guarantee on the actual qualifier.
14 | ///
15 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
16 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
17 | typedef vec<3, double, highp> highp_dvec3;
18 |
19 | /// 3 components vector of medium double-qualifier floating-point numbers.
20 | /// There is no guarantee on the actual qualifier.
21 | ///
22 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
23 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
24 | typedef vec<3, double, mediump> mediump_dvec3;
25 |
26 | /// 3 components vector of low double-qualifier floating-point numbers.
27 | /// There is no guarantee on the actual qualifier.
28 | ///
29 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
30 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
31 | typedef vec<3, double, lowp> lowp_dvec3;
32 |
33 | /// @}
34 | }//namespace glm
35 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_double4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of double-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, double, defaultp> dvec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_double4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_double4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/setup.hpp"
6 | #include "../detail/type_vec4.hpp"
7 |
8 | namespace glm
9 | {
10 | /// @addtogroup core_vector_precision
11 | /// @{
12 |
13 | /// 4 components vector of high double-qualifier floating-point numbers.
14 | /// There is no guarantee on the actual qualifier.
15 | ///
16 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
17 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
18 | typedef vec<4, double, highp> highp_dvec4;
19 |
20 | /// 4 components vector of medium double-qualifier floating-point numbers.
21 | /// There is no guarantee on the actual qualifier.
22 | ///
23 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
24 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
25 | typedef vec<4, double, mediump> mediump_dvec4;
26 |
27 | /// 4 components vector of low double-qualifier floating-point numbers.
28 | /// There is no guarantee on the actual qualifier.
29 | ///
30 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
31 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
32 | typedef vec<4, double, lowp> lowp_dvec4;
33 |
34 | /// @}
35 | }//namespace glm
36 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_float1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_float1
2 | /// @file glm/ext/vector_float1.hpp
3 | ///
4 | /// @defgroup ext_vector_float1 GLM_EXT_vector_float1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes single-precision floating point vector type with one component.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_float1_precision extension.
12 | /// @see ext_vector_double1 extension.
13 |
14 | #pragma once
15 |
16 | #include "../detail/type_vec1.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_vector_float1 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_vector_float1
25 | /// @{
26 |
27 | /// 1 components vector of single-precision floating-point numbers.
28 | typedef vec<1, float, defaultp> vec1;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_float1_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_float1_precision
2 | /// @file glm/ext/vector_float1_precision.hpp
3 | ///
4 | /// @defgroup ext_vector_float1_precision GLM_EXT_vector_float1_precision
5 | /// @ingroup ext
6 | ///
7 | /// Exposes highp_vec1, mediump_vec1 and lowp_vec1 types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_float1 extension.
12 |
13 | #pragma once
14 |
15 | #include "../detail/type_vec1.hpp"
16 |
17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
18 | # pragma message("GLM: GLM_EXT_vector_float1_precision extension included")
19 | #endif
20 |
21 | namespace glm
22 | {
23 | /// @addtogroup ext_vector_float1_precision
24 | /// @{
25 |
26 | /// 1 component vector of single-precision floating-point numbers using high precision arithmetic in term of ULPs.
27 | typedef vec<1, float, highp> highp_vec1;
28 |
29 | /// 1 component vector of single-precision floating-point numbers using medium precision arithmetic in term of ULPs.
30 | typedef vec<1, float, mediump> mediump_vec1;
31 |
32 | /// 1 component vector of single-precision floating-point numbers using low precision arithmetic in term of ULPs.
33 | typedef vec<1, float, lowp> lowp_vec1;
34 |
35 | /// @}
36 | }//namespace glm
37 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_float2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, float, defaultp> vec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_float2_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float2_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 2 components vector of high single-qualifier floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<2, float, highp> highp_vec2;
17 |
18 | /// 2 components vector of medium single-qualifier floating-point numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<2, float, mediump> mediump_vec2;
23 |
24 | /// 2 components vector of low single-qualifier floating-point numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<2, float, lowp> lowp_vec2;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_float3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, float, defaultp> vec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_float3_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float3_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 3 components vector of high single-qualifier floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<3, float, highp> highp_vec3;
17 |
18 | /// 3 components vector of medium single-qualifier floating-point numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<3, float, mediump> mediump_vec3;
23 |
24 | /// 3 components vector of low single-qualifier floating-point numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<3, float, lowp> lowp_vec3;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_float4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of single-precision floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, float, defaultp> vec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_float4_precision.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_float4_precision.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector_precision
10 | /// @{
11 |
12 | /// 4 components vector of high single-qualifier floating-point numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
16 | typedef vec<4, float, highp> highp_vec4;
17 |
18 | /// 4 components vector of medium single-qualifier floating-point numbers.
19 | ///
20 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
21 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
22 | typedef vec<4, float, mediump> mediump_vec4;
23 |
24 | /// 4 components vector of low single-qualifier floating-point numbers.
25 | ///
26 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
27 | /// @see GLSL 4.20.8 specification, section 4.7.2 Precision Qualifier
28 | typedef vec<4, float, lowp> lowp_vec4;
29 |
30 | /// @}
31 | }//namespace glm
32 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_int1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_int1
2 | /// @file glm/ext/vector_int1.hpp
3 | ///
4 | /// @defgroup ext_vector_int1 GLM_EXT_vector_int1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes ivec1 vector type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_uint1 extension.
12 | /// @see ext_vector_int1_precision extension.
13 |
14 | #pragma once
15 |
16 | #include "../detail/type_vec1.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_vector_int1 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_vector_int1
25 | /// @{
26 |
27 | /// 1 component vector of signed integer numbers.
28 | typedef vec<1, int, defaultp> ivec1;
29 |
30 | /// @}
31 | }//namespace glm
32 |
33 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_int1_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_int1_sized
2 | /// @file glm/ext/vector_int1_sized.hpp
3 | ///
4 | /// @defgroup ext_vector_int1_sized GLM_EXT_vector_int1_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized signed integer vector types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_int_sized
12 | /// @see ext_vector_uint1_sized
13 |
14 | #pragma once
15 |
16 | #include "../ext/vector_int1.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_int1_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_int1_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer vector of 1 component type.
29 | ///
30 | /// @see ext_vector_int1_sized
31 | typedef vec<1, int8, defaultp> i8vec1;
32 |
33 | /// 16 bit signed integer vector of 1 component type.
34 | ///
35 | /// @see ext_vector_int1_sized
36 | typedef vec<1, int16, defaultp> i16vec1;
37 |
38 | /// 32 bit signed integer vector of 1 component type.
39 | ///
40 | /// @see ext_vector_int1_sized
41 | typedef vec<1, int32, defaultp> i32vec1;
42 |
43 | /// 64 bit signed integer vector of 1 component type.
44 | ///
45 | /// @see ext_vector_int1_sized
46 | typedef vec<1, int64, defaultp> i64vec1;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_int2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_int2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of signed integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, int, defaultp> ivec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_int2_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_int2_sized
2 | /// @file glm/ext/vector_int2_sized.hpp
3 | ///
4 | /// @defgroup ext_vector_int2_sized GLM_EXT_vector_int2_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized signed integer vector of 2 components type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_int_sized
12 | /// @see ext_vector_uint2_sized
13 |
14 | #pragma once
15 |
16 | #include "../ext/vector_int2.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_int2_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_int2_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer vector of 2 components type.
29 | ///
30 | /// @see ext_vector_int2_sized
31 | typedef vec<2, int8, defaultp> i8vec2;
32 |
33 | /// 16 bit signed integer vector of 2 components type.
34 | ///
35 | /// @see ext_vector_int2_sized
36 | typedef vec<2, int16, defaultp> i16vec2;
37 |
38 | /// 32 bit signed integer vector of 2 components type.
39 | ///
40 | /// @see ext_vector_int2_sized
41 | typedef vec<2, int32, defaultp> i32vec2;
42 |
43 | /// 64 bit signed integer vector of 2 components type.
44 | ///
45 | /// @see ext_vector_int2_sized
46 | typedef vec<2, int64, defaultp> i64vec2;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_int3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_int3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of signed integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, int, defaultp> ivec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_int3_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_int3_sized
2 | /// @file glm/ext/vector_int3_sized.hpp
3 | ///
4 | /// @defgroup ext_vector_int3_sized GLM_EXT_vector_int3_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized signed integer vector of 3 components type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_int_sized
12 | /// @see ext_vector_uint3_sized
13 |
14 | #pragma once
15 |
16 | #include "../ext/vector_int3.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_int3_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_int3_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer vector of 3 components type.
29 | ///
30 | /// @see ext_vector_int3_sized
31 | typedef vec<3, int8, defaultp> i8vec3;
32 |
33 | /// 16 bit signed integer vector of 3 components type.
34 | ///
35 | /// @see ext_vector_int3_sized
36 | typedef vec<3, int16, defaultp> i16vec3;
37 |
38 | /// 32 bit signed integer vector of 3 components type.
39 | ///
40 | /// @see ext_vector_int3_sized
41 | typedef vec<3, int32, defaultp> i32vec3;
42 |
43 | /// 64 bit signed integer vector of 3 components type.
44 | ///
45 | /// @see ext_vector_int3_sized
46 | typedef vec<3, int64, defaultp> i64vec3;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_int4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_int4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of signed integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, int, defaultp> ivec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_int4_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_int4_sized
2 | /// @file glm/ext/vector_int4_sized.hpp
3 | ///
4 | /// @defgroup ext_vector_int4_sized GLM_EXT_vector_int4_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized signed integer vector of 4 components type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_int_sized
12 | /// @see ext_vector_uint4_sized
13 |
14 | #pragma once
15 |
16 | #include "../ext/vector_int4.hpp"
17 | #include "../ext/scalar_int_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_int4_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_int4_sized
26 | /// @{
27 |
28 | /// 8 bit signed integer vector of 4 components type.
29 | ///
30 | /// @see ext_vector_int4_sized
31 | typedef vec<4, int8, defaultp> i8vec4;
32 |
33 | /// 16 bit signed integer vector of 4 components type.
34 | ///
35 | /// @see ext_vector_int4_sized
36 | typedef vec<4, int16, defaultp> i16vec4;
37 |
38 | /// 32 bit signed integer vector of 4 components type.
39 | ///
40 | /// @see ext_vector_int4_sized
41 | typedef vec<4, int32, defaultp> i32vec4;
42 |
43 | /// 64 bit signed integer vector of 4 components type.
44 | ///
45 | /// @see ext_vector_int4_sized
46 | typedef vec<4, int64, defaultp> i64vec4;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_packing.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_packing
2 | /// @file glm/ext/vector_packing.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup ext_vector_packing GLM_EXT_vector_packing
7 | /// @ingroup ext
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// This extension provides a set of function to convert vectors to packed
12 | /// formats.
13 |
14 | #pragma once
15 |
16 | // Dependency:
17 | #include "../detail/qualifier.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_packing extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_packing
26 | /// @{
27 |
28 |
29 | /// @}
30 | }// namespace glm
31 |
32 | #include "vector_packing.inl"
33 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_packing.inl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/hlavacs/ViennaPhysicsEngine/8e3b32fb6d064d8d72ba35bd4e6eef54c18d477e/extern/glm/ext/vector_packing.inl
--------------------------------------------------------------------------------
/extern/glm/ext/vector_uint1.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_uint1
2 | /// @file glm/ext/vector_uint1.hpp
3 | ///
4 | /// @defgroup ext_vector_uint1 GLM_EXT_vector_uint1
5 | /// @ingroup ext
6 | ///
7 | /// Exposes uvec1 vector type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_vector_int1 extension.
12 | /// @see ext_vector_uint1_precision extension.
13 |
14 | #pragma once
15 |
16 | #include "../detail/type_vec1.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_EXT_vector_uint1 extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup ext_vector_uint1
25 | /// @{
26 |
27 | /// 1 component vector of unsigned integer numbers.
28 | typedef vec<1, unsigned int, defaultp> uvec1;
29 |
30 | /// @}
31 | }//namespace glm
32 |
33 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_uint1_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_uint1_sized
2 | /// @file glm/ext/vector_uint1_sized.hpp
3 | ///
4 | /// @defgroup ext_vector_uint1_sized GLM_EXT_vector_uint1_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized unsigned integer vector types.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_uint_sized
12 | /// @see ext_vector_int1_sized
13 |
14 | #pragma once
15 |
16 | #include "../ext/vector_uint1.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_uint1_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_uint1_sized
26 | /// @{
27 |
28 | /// 8 bit unsigned integer vector of 1 component type.
29 | ///
30 | /// @see ext_vector_uint1_sized
31 | typedef vec<1, uint8, defaultp> u8vec1;
32 |
33 | /// 16 bit unsigned integer vector of 1 component type.
34 | ///
35 | /// @see ext_vector_uint1_sized
36 | typedef vec<1, uint16, defaultp> u16vec1;
37 |
38 | /// 32 bit unsigned integer vector of 1 component type.
39 | ///
40 | /// @see ext_vector_uint1_sized
41 | typedef vec<1, uint32, defaultp> u32vec1;
42 |
43 | /// 64 bit unsigned integer vector of 1 component type.
44 | ///
45 | /// @see ext_vector_uint1_sized
46 | typedef vec<1, uint64, defaultp> u64vec1;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_uint2.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_uint2.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec2.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 2 components vector of unsigned integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<2, unsigned int, defaultp> uvec2;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_uint2_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_uint2_sized
2 | /// @file glm/ext/vector_uint2_sized.hpp
3 | ///
4 | /// @defgroup ext_vector_uint2_sized GLM_EXT_vector_uint2_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized unsigned integer vector of 2 components type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_uint_sized
12 | /// @see ext_vector_int2_sized
13 |
14 | #pragma once
15 |
16 | #include "../ext/vector_uint2.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_uint2_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_uint2_sized
26 | /// @{
27 |
28 | /// 8 bit unsigned integer vector of 2 components type.
29 | ///
30 | /// @see ext_vector_uint2_sized
31 | typedef vec<2, uint8, defaultp> u8vec2;
32 |
33 | /// 16 bit unsigned integer vector of 2 components type.
34 | ///
35 | /// @see ext_vector_uint2_sized
36 | typedef vec<2, uint16, defaultp> u16vec2;
37 |
38 | /// 32 bit unsigned integer vector of 2 components type.
39 | ///
40 | /// @see ext_vector_uint2_sized
41 | typedef vec<2, uint32, defaultp> u32vec2;
42 |
43 | /// 64 bit unsigned integer vector of 2 components type.
44 | ///
45 | /// @see ext_vector_uint2_sized
46 | typedef vec<2, uint64, defaultp> u64vec2;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_uint3.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_uint3.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec3.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 3 components vector of unsigned integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<3, unsigned int, defaultp> uvec3;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_uint3_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_uint3_sized
2 | /// @file glm/ext/vector_uint3_sized.hpp
3 | ///
4 | /// @defgroup ext_vector_uint3_sized GLM_EXT_vector_uint3_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized unsigned integer vector of 3 components type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_uint_sized
12 | /// @see ext_vector_int3_sized
13 |
14 | #pragma once
15 |
16 | #include "../ext/vector_uint3.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_uint3_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_uint3_sized
26 | /// @{
27 |
28 | /// 8 bit unsigned integer vector of 3 components type.
29 | ///
30 | /// @see ext_vector_uint3_sized
31 | typedef vec<3, uint8, defaultp> u8vec3;
32 |
33 | /// 16 bit unsigned integer vector of 3 components type.
34 | ///
35 | /// @see ext_vector_uint3_sized
36 | typedef vec<3, uint16, defaultp> u16vec3;
37 |
38 | /// 32 bit unsigned integer vector of 3 components type.
39 | ///
40 | /// @see ext_vector_uint3_sized
41 | typedef vec<3, uint32, defaultp> u32vec3;
42 |
43 | /// 64 bit unsigned integer vector of 3 components type.
44 | ///
45 | /// @see ext_vector_uint3_sized
46 | typedef vec<3, uint64, defaultp> u64vec3;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_uint4.hpp:
--------------------------------------------------------------------------------
1 | /// @ref core
2 | /// @file glm/ext/vector_uint4.hpp
3 |
4 | #pragma once
5 | #include "../detail/type_vec4.hpp"
6 |
7 | namespace glm
8 | {
9 | /// @addtogroup core_vector
10 | /// @{
11 |
12 | /// 4 components vector of unsigned integer numbers.
13 | ///
14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors
15 | typedef vec<4, unsigned int, defaultp> uvec4;
16 |
17 | /// @}
18 | }//namespace glm
19 |
--------------------------------------------------------------------------------
/extern/glm/ext/vector_uint4_sized.hpp:
--------------------------------------------------------------------------------
1 | /// @ref ext_vector_uint4_sized
2 | /// @file glm/ext/vector_uint4_sized.hpp
3 | ///
4 | /// @defgroup ext_vector_uint4_sized GLM_EXT_vector_uint4_sized
5 | /// @ingroup ext
6 | ///
7 | /// Exposes sized unsigned integer vector of 4 components type.
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// @see ext_scalar_uint_sized
12 | /// @see ext_vector_int4_sized
13 |
14 | #pragma once
15 |
16 | #include "../ext/vector_uint4.hpp"
17 | #include "../ext/scalar_uint_sized.hpp"
18 |
19 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
20 | # pragma message("GLM: GLM_EXT_vector_uint4_sized extension included")
21 | #endif
22 |
23 | namespace glm
24 | {
25 | /// @addtogroup ext_vector_uint4_sized
26 | /// @{
27 |
28 | /// 8 bit unsigned integer vector of 4 components type.
29 | ///
30 | /// @see ext_vector_uint4_sized
31 | typedef vec<4, uint8, defaultp> u8vec4;
32 |
33 | /// 16 bit unsigned integer vector of 4 components type.
34 | ///
35 | /// @see ext_vector_uint4_sized
36 | typedef vec<4, uint16, defaultp> u16vec4;
37 |
38 | /// 32 bit unsigned integer vector of 4 components type.
39 | ///
40 | /// @see ext_vector_uint4_sized
41 | typedef vec<4, uint32, defaultp> u32vec4;
42 |
43 | /// 64 bit unsigned integer vector of 4 components type.
44 | ///
45 | /// @see ext_vector_uint4_sized
46 | typedef vec<4, uint64, defaultp> u64vec4;
47 |
48 | /// @}
49 | }//namespace glm
50 |
--------------------------------------------------------------------------------
/extern/glm/gtc/integer.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_integer
2 | /// @file glm/gtc/integer.hpp
3 | ///
4 | /// @see core (dependence)
5 | /// @see gtc_integer (dependence)
6 | ///
7 | /// @defgroup gtc_integer GLM_GTC_integer
8 | /// @ingroup gtc
9 | ///
10 | /// Include to use the features of this extension.
11 | ///
12 | /// @brief Allow to perform bit operations on integer values
13 |
14 | #pragma once
15 |
16 | // Dependencies
17 | #include "../detail/setup.hpp"
18 | #include "../detail/qualifier.hpp"
19 | #include "../common.hpp"
20 | #include "../integer.hpp"
21 | #include "../exponential.hpp"
22 | #include "../ext/scalar_common.hpp"
23 | #include "../ext/vector_common.hpp"
24 | #include
25 |
26 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
27 | # pragma message("GLM: GLM_GTC_integer extension included")
28 | #endif
29 |
30 | namespace glm
31 | {
32 | /// @addtogroup gtc_integer
33 | /// @{
34 |
35 | /// Returns the log2 of x for integer values. Useful to compute mipmap count from the texture size.
36 | /// @see gtc_integer
37 | template
38 | GLM_FUNC_DECL genIUType log2(genIUType x);
39 |
40 | /// @}
41 | } //namespace glm
42 |
43 | #include "integer.inl"
44 |
--------------------------------------------------------------------------------
/extern/glm/gtc/integer.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtc_integer
2 |
3 | namespace glm{
4 | namespace detail
5 | {
6 | template
7 | struct compute_log2
8 | {
9 | GLM_FUNC_QUALIFIER static vec call(vec const& v)
10 | {
11 | //Equivalent to return findMSB(vec); but save one function call in ASM with VC
12 | //return findMSB(vec);
13 | return vec(detail::compute_findMSB_vec::call(v));
14 | }
15 | };
16 |
17 | # if GLM_HAS_BITSCAN_WINDOWS
18 | template
19 | struct compute_log2<4, int, Q, false, Aligned>
20 | {
21 | GLM_FUNC_QUALIFIER static vec<4, int, Q> call(vec<4, int, Q> const& v)
22 | {
23 | vec<4, int, Q> Result;
24 | _BitScanReverse(reinterpret_cast(&Result.x), v.x);
25 | _BitScanReverse(reinterpret_cast(&Result.y), v.y);
26 | _BitScanReverse(reinterpret_cast(&Result.z), v.z);
27 | _BitScanReverse(reinterpret_cast(&Result.w), v.w);
28 | return Result;
29 | }
30 | };
31 | # endif//GLM_HAS_BITSCAN_WINDOWS
32 | }//namespace detail
33 | }//namespace glm
34 |
--------------------------------------------------------------------------------
/extern/glm/gtc/matrix_access.hpp:
--------------------------------------------------------------------------------
1 | /// @ref gtc_matrix_access
2 | /// @file glm/gtc/matrix_access.hpp
3 | ///
4 | /// @see core (dependence)
5 | ///
6 | /// @defgroup gtc_matrix_access GLM_GTC_matrix_access
7 | /// @ingroup gtc
8 | ///
9 | /// Include to use the features of this extension.
10 | ///
11 | /// Defines functions to access rows or columns of a matrix easily.
12 |
13 | #pragma once
14 |
15 | // Dependency:
16 | #include "../detail/setup.hpp"
17 |
18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED)
19 | # pragma message("GLM: GLM_GTC_matrix_access extension included")
20 | #endif
21 |
22 | namespace glm
23 | {
24 | /// @addtogroup gtc_matrix_access
25 | /// @{
26 |
27 | /// Get a specific row of a matrix.
28 | /// @see gtc_matrix_access
29 | template
30 | GLM_FUNC_DECL typename genType::row_type row(
31 | genType const& m,
32 | length_t index);
33 |
34 | /// Set a specific row to a matrix.
35 | /// @see gtc_matrix_access
36 | template
37 | GLM_FUNC_DECL genType row(
38 | genType const& m,
39 | length_t index,
40 | typename genType::row_type const& x);
41 |
42 | /// Get a specific column of a matrix.
43 | /// @see gtc_matrix_access
44 | template
45 | GLM_FUNC_DECL typename genType::col_type column(
46 | genType const& m,
47 | length_t index);
48 |
49 | /// Set a specific column to a matrix.
50 | /// @see gtc_matrix_access
51 | template
52 | GLM_FUNC_DECL genType column(
53 | genType const& m,
54 | length_t index,
55 | typename genType::col_type const& x);
56 |
57 | /// @}
58 | }//namespace glm
59 |
60 | #include "matrix_access.inl"
61 |
--------------------------------------------------------------------------------
/extern/glm/gtc/matrix_access.inl:
--------------------------------------------------------------------------------
1 | /// @ref gtc_matrix_access
2 |
3 | namespace glm
4 | {
5 | template
6 | GLM_FUNC_QUALIFIER genType row
7 | (
8 | genType const& m,
9 | length_t index,
10 | typename genType::row_type const& x
11 | )
12 | {
13 | assert(index >= 0 && index < m[0].length());
14 |
15 | genType Result = m;
16 | for(length_t i = 0; i < m.length(); ++i)
17 | Result[i][index] = x[i];
18 | return Result;
19 | }
20 |
21 | template