haodongli commited on
Commit
1809672
·
1 Parent(s): e95f392

Delete submodules

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. submodules/diff-gaussian-rasterization/CMakeLists.txt +0 -36
  2. submodules/diff-gaussian-rasterization/LICENSE.md +0 -83
  3. submodules/diff-gaussian-rasterization/README.md +0 -19
  4. submodules/diff-gaussian-rasterization/cuda_rasterizer/auxiliary.h +0 -166
  5. submodules/diff-gaussian-rasterization/cuda_rasterizer/backward.cu +0 -707
  6. submodules/diff-gaussian-rasterization/cuda_rasterizer/backward.h +0 -67
  7. submodules/diff-gaussian-rasterization/cuda_rasterizer/config.h +0 -19
  8. submodules/diff-gaussian-rasterization/cuda_rasterizer/forward.cu +0 -476
  9. submodules/diff-gaussian-rasterization/cuda_rasterizer/forward.h +0 -68
  10. submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer.h +0 -88
  11. submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer_impl.cu +0 -440
  12. submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer_impl.h +0 -74
  13. submodules/diff-gaussian-rasterization/diff_gaussian_rasterization/__init__.py +0 -197
  14. submodules/diff-gaussian-rasterization/ext.cpp +0 -19
  15. submodules/diff-gaussian-rasterization/rasterize_points.cu +0 -217
  16. submodules/diff-gaussian-rasterization/rasterize_points.h +0 -66
  17. submodules/diff-gaussian-rasterization/setup.py +0 -34
  18. submodules/diff-gaussian-rasterization/third_party/glm/.appveyor.yml +0 -92
  19. submodules/diff-gaussian-rasterization/third_party/glm/.travis.yml +0 -388
  20. submodules/diff-gaussian-rasterization/third_party/glm/CMakeLists.txt +0 -45
  21. submodules/diff-gaussian-rasterization/third_party/glm/cmake/cmake_uninstall.cmake.in +0 -21
  22. submodules/diff-gaussian-rasterization/third_party/glm/copying.txt +0 -54
  23. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00001_source.html +0 -493
  24. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00002_source.html +0 -121
  25. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00003_source.html +0 -182
  26. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00004_source.html +0 -0
  27. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00005_source.html +0 -0
  28. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00006_source.html +0 -262
  29. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00007.html +0 -205
  30. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00007_source.html +0 -250
  31. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00008.html +0 -149
  32. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00008_source.html +0 -154
  33. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00009.html +0 -223
  34. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00009_source.html +0 -212
  35. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00010.html +0 -124
  36. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00010_source.html +0 -133
  37. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00011.html +0 -137
  38. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00011_source.html +0 -139
  39. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00012.html +0 -134
  40. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00012_source.html +0 -136
  41. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00013.html +0 -139
  42. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00013_source.html +0 -150
  43. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00014.html +0 -131
  44. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00014_source.html +0 -141
  45. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00015.html +0 -267
  46. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00015_source.html +0 -276
  47. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00016.html +0 -131
  48. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00016_source.html +0 -139
  49. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00017.html +0 -443
  50. submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00017_source.html +0 -282
submodules/diff-gaussian-rasterization/CMakeLists.txt DELETED
@@ -1,36 +0,0 @@
1
- #
2
- # Copyright (C) 2023, Inria
3
- # GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- # All rights reserved.
5
- #
6
- # This software is free for non-commercial, research and evaluation use
7
- # under the terms of the LICENSE.md file.
8
- #
9
- # For inquiries contact [email protected]
10
- #
11
-
12
- cmake_minimum_required(VERSION 3.20)
13
-
14
- project(DiffRast LANGUAGES CUDA CXX)
15
-
16
- set(CMAKE_CXX_STANDARD 17)
17
- set(CMAKE_CXX_EXTENSIONS OFF)
18
- set(CMAKE_CUDA_STANDARD 17)
19
-
20
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
21
-
22
- add_library(CudaRasterizer
23
- cuda_rasterizer/backward.h
24
- cuda_rasterizer/backward.cu
25
- cuda_rasterizer/forward.h
26
- cuda_rasterizer/forward.cu
27
- cuda_rasterizer/auxiliary.h
28
- cuda_rasterizer/rasterizer_impl.cu
29
- cuda_rasterizer/rasterizer_impl.h
30
- cuda_rasterizer/rasterizer.h
31
- )
32
-
33
- set_target_properties(CudaRasterizer PROPERTIES CUDA_ARCHITECTURES "75;86")
34
-
35
- target_include_directories(CudaRasterizer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/cuda_rasterizer)
36
- target_include_directories(CudaRasterizer PRIVATE third_party/glm ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/LICENSE.md DELETED
@@ -1,83 +0,0 @@
1
- Gaussian-Splatting License
2
- ===========================
3
-
4
- **Inria** and **the Max Planck Institut for Informatik (MPII)** hold all the ownership rights on the *Software* named **gaussian-splatting**.
5
- The *Software* is in the process of being registered with the Agence pour la Protection des
6
- Programmes (APP).
7
-
8
- The *Software* is still being developed by the *Licensor*.
9
-
10
- *Licensor*'s goal is to allow the research community to use, test and evaluate
11
- the *Software*.
12
-
13
- ## 1. Definitions
14
-
15
- *Licensee* means any person or entity that uses the *Software* and distributes
16
- its *Work*.
17
-
18
- *Licensor* means the owners of the *Software*, i.e Inria and MPII
19
-
20
- *Software* means the original work of authorship made available under this
21
- License ie gaussian-splatting.
22
-
23
- *Work* means the *Software* and any additions to or derivative works of the
24
- *Software* that are made available under this License.
25
-
26
-
27
- ## 2. Purpose
28
- This license is intended to define the rights granted to the *Licensee* by
29
- Licensors under the *Software*.
30
-
31
- ## 3. Rights granted
32
-
33
- For the above reasons Licensors have decided to distribute the *Software*.
34
- Licensors grant non-exclusive rights to use the *Software* for research purposes
35
- to research users (both academic and industrial), free of charge, without right
36
- to sublicense.. The *Software* may be used "non-commercially", i.e., for research
37
- and/or evaluation purposes only.
38
-
39
- Subject to the terms and conditions of this License, you are granted a
40
- non-exclusive, royalty-free, license to reproduce, prepare derivative works of,
41
- publicly display, publicly perform and distribute its *Work* and any resulting
42
- derivative works in any form.
43
-
44
- ## 4. Limitations
45
-
46
- **4.1 Redistribution.** You may reproduce or distribute the *Work* only if (a) you do
47
- so under this License, (b) you include a complete copy of this License with
48
- your distribution, and (c) you retain without modification any copyright,
49
- patent, trademark, or attribution notices that are present in the *Work*.
50
-
51
- **4.2 Derivative Works.** You may specify that additional or different terms apply
52
- to the use, reproduction, and distribution of your derivative works of the *Work*
53
- ("Your Terms") only if (a) Your Terms provide that the use limitation in
54
- Section 2 applies to your derivative works, and (b) you identify the specific
55
- derivative works that are subject to Your Terms. Notwithstanding Your Terms,
56
- this License (including the redistribution requirements in Section 3.1) will
57
- continue to apply to the *Work* itself.
58
-
59
- **4.3** Any other use without of prior consent of Licensors is prohibited. Research
60
- users explicitly acknowledge having received from Licensors all information
61
- allowing to appreciate the adequacy between of the *Software* and their needs and
62
- to undertake all necessary precautions for its execution and use.
63
-
64
- **4.4** The *Software* is provided both as a compiled library file and as source
65
- code. In case of using the *Software* for a publication or other results obtained
66
- through the use of the *Software*, users are strongly encouraged to cite the
67
- corresponding publications as explained in the documentation of the *Software*.
68
-
69
- ## 5. Disclaimer
70
-
71
- THE USER CANNOT USE, EXPLOIT OR DISTRIBUTE THE *SOFTWARE* FOR COMMERCIAL PURPOSES
72
- WITHOUT PRIOR AND EXPLICIT CONSENT OF LICENSORS. YOU MUST CONTACT INRIA FOR ANY
73
- UNAUTHORIZED USE: [email protected] . ANY SUCH ACTION WILL
74
- CONSTITUTE A FORGERY. THIS *SOFTWARE* IS PROVIDED "AS IS" WITHOUT ANY WARRANTIES
75
- OF ANY NATURE AND ANY EXPRESS OR IMPLIED WARRANTIES, WITH REGARDS TO COMMERCIAL
76
- USE, PROFESSIONNAL USE, LEGAL OR NOT, OR OTHER, OR COMMERCIALISATION OR
77
- ADAPTATION. UNLESS EXPLICITLY PROVIDED BY LAW, IN NO EVENT, SHALL INRIA OR THE
78
- AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
79
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
80
- GOODS OR SERVICES, LOSS OF USE, DATA, OR PROFITS OR BUSINESS INTERRUPTION)
81
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
82
- LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING FROM, OUT OF OR
83
- IN CONNECTION WITH THE *SOFTWARE* OR THE USE OR OTHER DEALINGS IN THE *SOFTWARE*.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/README.md DELETED
@@ -1,19 +0,0 @@
1
- # Differential Gaussian Rasterization
2
-
3
- Used as the rasterization engine for the paper "3D Gaussian Splatting for Real-Time Rendering of Radiance Fields". If you can make use of it in your own research, please be so kind to cite us.
4
-
5
- <section class="section" id="BibTeX">
6
- <div class="container is-max-desktop content">
7
- <h2 class="title">BibTeX</h2>
8
- <pre><code>@Article{kerbl3Dgaussians,
9
- author = {Kerbl, Bernhard and Kopanas, Georgios and Leimk{\"u}hler, Thomas and Drettakis, George},
10
- title = {3D Gaussian Splatting for Real-Time Radiance Field Rendering},
11
- journal = {ACM Transactions on Graphics},
12
- number = {4},
13
- volume = {42},
14
- month = {July},
15
- year = {2023},
16
- url = {https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/}
17
- }</code></pre>
18
- </div>
19
- </section>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/cuda_rasterizer/auxiliary.h DELETED
@@ -1,166 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #ifndef CUDA_RASTERIZER_AUXILIARY_H_INCLUDED
13
- #define CUDA_RASTERIZER_AUXILIARY_H_INCLUDED
14
-
15
- #include "config.h"
16
- #include "stdio.h"
17
-
18
- #define BLOCK_SIZE (BLOCK_X * BLOCK_Y)
19
- #define NUM_WARPS (BLOCK_SIZE/32)
20
-
21
- // Spherical harmonics coefficients
22
- __device__ const float SH_C0 = 0.28209479177387814f;
23
- __device__ const float SH_C1 = 0.4886025119029199f;
24
- __device__ const float SH_C2[] = {
25
- 1.0925484305920792f,
26
- -1.0925484305920792f,
27
- 0.31539156525252005f,
28
- -1.0925484305920792f,
29
- 0.5462742152960396f
30
- };
31
- __device__ const float SH_C3[] = {
32
- -0.5900435899266435f,
33
- 2.890611442640554f,
34
- -0.4570457994644658f,
35
- 0.3731763325901154f,
36
- -0.4570457994644658f,
37
- 1.445305721320277f,
38
- -0.5900435899266435f
39
- };
40
-
41
- __forceinline__ __device__ float ndc2Pix(float v, int S)
42
- {
43
- return ((v + 1.0) * S - 1.0) * 0.5;
44
- }
45
-
46
- __forceinline__ __device__ void getRect(const float2 p, int max_radius, uint2& rect_min, uint2& rect_max, dim3 grid)
47
- {
48
- rect_min = {
49
- min(grid.x, max((int)0, (int)((p.x - max_radius) / BLOCK_X))),
50
- min(grid.y, max((int)0, (int)((p.y - max_radius) / BLOCK_Y)))
51
- };
52
- rect_max = {
53
- min(grid.x, max((int)0, (int)((p.x + max_radius + BLOCK_X - 1) / BLOCK_X))),
54
- min(grid.y, max((int)0, (int)((p.y + max_radius + BLOCK_Y - 1) / BLOCK_Y)))
55
- };
56
- }
57
-
58
- __forceinline__ __device__ float3 transformPoint4x3(const float3& p, const float* matrix)
59
- {
60
- float3 transformed = {
61
- matrix[0] * p.x + matrix[4] * p.y + matrix[8] * p.z + matrix[12],
62
- matrix[1] * p.x + matrix[5] * p.y + matrix[9] * p.z + matrix[13],
63
- matrix[2] * p.x + matrix[6] * p.y + matrix[10] * p.z + matrix[14],
64
- };
65
- return transformed;
66
- }
67
-
68
- __forceinline__ __device__ float4 transformPoint4x4(const float3& p, const float* matrix)
69
- {
70
- float4 transformed = {
71
- matrix[0] * p.x + matrix[4] * p.y + matrix[8] * p.z + matrix[12],
72
- matrix[1] * p.x + matrix[5] * p.y + matrix[9] * p.z + matrix[13],
73
- matrix[2] * p.x + matrix[6] * p.y + matrix[10] * p.z + matrix[14],
74
- matrix[3] * p.x + matrix[7] * p.y + matrix[11] * p.z + matrix[15]
75
- };
76
- return transformed;
77
- }
78
-
79
- __forceinline__ __device__ float3 transformVec4x3(const float3& p, const float* matrix)
80
- {
81
- float3 transformed = {
82
- matrix[0] * p.x + matrix[4] * p.y + matrix[8] * p.z,
83
- matrix[1] * p.x + matrix[5] * p.y + matrix[9] * p.z,
84
- matrix[2] * p.x + matrix[6] * p.y + matrix[10] * p.z,
85
- };
86
- return transformed;
87
- }
88
-
89
- __forceinline__ __device__ float3 transformVec4x3Transpose(const float3& p, const float* matrix)
90
- {
91
- float3 transformed = {
92
- matrix[0] * p.x + matrix[1] * p.y + matrix[2] * p.z,
93
- matrix[4] * p.x + matrix[5] * p.y + matrix[6] * p.z,
94
- matrix[8] * p.x + matrix[9] * p.y + matrix[10] * p.z,
95
- };
96
- return transformed;
97
- }
98
-
99
- __forceinline__ __device__ float dnormvdz(float3 v, float3 dv)
100
- {
101
- float sum2 = v.x * v.x + v.y * v.y + v.z * v.z;
102
- float invsum32 = 1.0f / sqrt(sum2 * sum2 * sum2);
103
- float dnormvdz = (-v.x * v.z * dv.x - v.y * v.z * dv.y + (sum2 - v.z * v.z) * dv.z) * invsum32;
104
- return dnormvdz;
105
- }
106
-
107
- __forceinline__ __device__ float3 dnormvdv(float3 v, float3 dv)
108
- {
109
- float sum2 = v.x * v.x + v.y * v.y + v.z * v.z;
110
- float invsum32 = 1.0f / sqrt(sum2 * sum2 * sum2);
111
-
112
- float3 dnormvdv;
113
- dnormvdv.x = ((+sum2 - v.x * v.x) * dv.x - v.y * v.x * dv.y - v.z * v.x * dv.z) * invsum32;
114
- dnormvdv.y = (-v.x * v.y * dv.x + (sum2 - v.y * v.y) * dv.y - v.z * v.y * dv.z) * invsum32;
115
- dnormvdv.z = (-v.x * v.z * dv.x - v.y * v.z * dv.y + (sum2 - v.z * v.z) * dv.z) * invsum32;
116
- return dnormvdv;
117
- }
118
-
119
- __forceinline__ __device__ float4 dnormvdv(float4 v, float4 dv)
120
- {
121
- float sum2 = v.x * v.x + v.y * v.y + v.z * v.z + v.w * v.w;
122
- float invsum32 = 1.0f / sqrt(sum2 * sum2 * sum2);
123
-
124
- float4 vdv = { v.x * dv.x, v.y * dv.y, v.z * dv.z, v.w * dv.w };
125
- float vdv_sum = vdv.x + vdv.y + vdv.z + vdv.w;
126
- float4 dnormvdv;
127
- dnormvdv.x = ((sum2 - v.x * v.x) * dv.x - v.x * (vdv_sum - vdv.x)) * invsum32;
128
- dnormvdv.y = ((sum2 - v.y * v.y) * dv.y - v.y * (vdv_sum - vdv.y)) * invsum32;
129
- dnormvdv.z = ((sum2 - v.z * v.z) * dv.z - v.z * (vdv_sum - vdv.z)) * invsum32;
130
- dnormvdv.w = ((sum2 - v.w * v.w) * dv.w - v.w * (vdv_sum - vdv.w)) * invsum32;
131
- return dnormvdv;
132
- }
133
-
134
- __forceinline__ __device__ float sigmoid(float x)
135
- {
136
- return 1.0f / (1.0f + expf(-x));
137
- }
138
-
139
- __forceinline__ __device__ bool in_frustum(int idx,
140
- const float* orig_points,
141
- const float* viewmatrix,
142
- const float* projmatrix,
143
- bool prefiltered,
144
- float3& p_view)
145
- {
146
- float3 p_orig = { orig_points[3 * idx], orig_points[3 * idx + 1], orig_points[3 * idx + 2] };
147
-
148
- // Bring points to screen space
149
- float4 p_hom = transformPoint4x4(p_orig, projmatrix);
150
- float p_w = 1.0f / (p_hom.w + 0.0000001f);
151
- float3 p_proj = { p_hom.x * p_w, p_hom.y * p_w, p_hom.z * p_w };
152
- p_view = transformPoint4x3(p_orig, viewmatrix);
153
-
154
- if (p_view.z <= 0.2f)// || ((p_proj.x < -1.3 || p_proj.x > 1.3 || p_proj.y < -1.3 || p_proj.y > 1.3)))
155
- {
156
- if (prefiltered)
157
- {
158
- printf("Point is filtered although prefiltered is set. This shouldn't happen!");
159
- __trap();
160
- }
161
- return false;
162
- }
163
- return true;
164
- }
165
-
166
- #endif
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/cuda_rasterizer/backward.cu DELETED
@@ -1,707 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #include "backward.h"
13
- #include "auxiliary.h"
14
- #include <cooperative_groups.h>
15
- #include <cooperative_groups/reduce.h>
16
- namespace cg = cooperative_groups;
17
-
18
- // Backward pass for conversion of spherical harmonics to RGB for
19
- // each Gaussian.
20
- __device__ void computeColorFromSH(int idx, int deg, int max_coeffs, const glm::vec3* means, glm::vec3 campos, const float* shs, const bool* clamped, const glm::vec3* dL_dcolor, glm::vec3* dL_dmeans, glm::vec3* dL_dshs)
21
- {
22
- // Compute intermediate values, as it is done during forward
23
- glm::vec3 pos = means[idx];
24
- glm::vec3 dir_orig = pos - campos;
25
- glm::vec3 dir = dir_orig / glm::length(dir_orig);
26
-
27
- glm::vec3* sh = ((glm::vec3*)shs) + idx * max_coeffs;
28
-
29
- // Use PyTorch rule for clamping: if clamping was applied,
30
- // gradient becomes 0.
31
- glm::vec3 dL_dRGB = dL_dcolor[idx];
32
- dL_dRGB.x *= clamped[3 * idx + 0] ? 0 : 1;
33
- dL_dRGB.y *= clamped[3 * idx + 1] ? 0 : 1;
34
- dL_dRGB.z *= clamped[3 * idx + 2] ? 0 : 1;
35
-
36
- glm::vec3 dRGBdx(0, 0, 0);
37
- glm::vec3 dRGBdy(0, 0, 0);
38
- glm::vec3 dRGBdz(0, 0, 0);
39
- float x = dir.x;
40
- float y = dir.y;
41
- float z = dir.z;
42
-
43
- // Target location for this Gaussian to write SH gradients to
44
- glm::vec3* dL_dsh = dL_dshs + idx * max_coeffs;
45
-
46
- // No tricks here, just high school-level calculus.
47
- float dRGBdsh0 = SH_C0;
48
- dL_dsh[0] = dRGBdsh0 * dL_dRGB;
49
- if (deg > 0)
50
- {
51
- float dRGBdsh1 = -SH_C1 * y;
52
- float dRGBdsh2 = SH_C1 * z;
53
- float dRGBdsh3 = -SH_C1 * x;
54
- dL_dsh[1] = dRGBdsh1 * dL_dRGB;
55
- dL_dsh[2] = dRGBdsh2 * dL_dRGB;
56
- dL_dsh[3] = dRGBdsh3 * dL_dRGB;
57
-
58
- dRGBdx = -SH_C1 * sh[3];
59
- dRGBdy = -SH_C1 * sh[1];
60
- dRGBdz = SH_C1 * sh[2];
61
-
62
- if (deg > 1)
63
- {
64
- float xx = x * x, yy = y * y, zz = z * z;
65
- float xy = x * y, yz = y * z, xz = x * z;
66
-
67
- float dRGBdsh4 = SH_C2[0] * xy;
68
- float dRGBdsh5 = SH_C2[1] * yz;
69
- float dRGBdsh6 = SH_C2[2] * (2.f * zz - xx - yy);
70
- float dRGBdsh7 = SH_C2[3] * xz;
71
- float dRGBdsh8 = SH_C2[4] * (xx - yy);
72
- dL_dsh[4] = dRGBdsh4 * dL_dRGB;
73
- dL_dsh[5] = dRGBdsh5 * dL_dRGB;
74
- dL_dsh[6] = dRGBdsh6 * dL_dRGB;
75
- dL_dsh[7] = dRGBdsh7 * dL_dRGB;
76
- dL_dsh[8] = dRGBdsh8 * dL_dRGB;
77
-
78
- dRGBdx += SH_C2[0] * y * sh[4] + SH_C2[2] * 2.f * -x * sh[6] + SH_C2[3] * z * sh[7] + SH_C2[4] * 2.f * x * sh[8];
79
- dRGBdy += SH_C2[0] * x * sh[4] + SH_C2[1] * z * sh[5] + SH_C2[2] * 2.f * -y * sh[6] + SH_C2[4] * 2.f * -y * sh[8];
80
- dRGBdz += SH_C2[1] * y * sh[5] + SH_C2[2] * 2.f * 2.f * z * sh[6] + SH_C2[3] * x * sh[7];
81
-
82
- if (deg > 2)
83
- {
84
- float dRGBdsh9 = SH_C3[0] * y * (3.f * xx - yy);
85
- float dRGBdsh10 = SH_C3[1] * xy * z;
86
- float dRGBdsh11 = SH_C3[2] * y * (4.f * zz - xx - yy);
87
- float dRGBdsh12 = SH_C3[3] * z * (2.f * zz - 3.f * xx - 3.f * yy);
88
- float dRGBdsh13 = SH_C3[4] * x * (4.f * zz - xx - yy);
89
- float dRGBdsh14 = SH_C3[5] * z * (xx - yy);
90
- float dRGBdsh15 = SH_C3[6] * x * (xx - 3.f * yy);
91
- dL_dsh[9] = dRGBdsh9 * dL_dRGB;
92
- dL_dsh[10] = dRGBdsh10 * dL_dRGB;
93
- dL_dsh[11] = dRGBdsh11 * dL_dRGB;
94
- dL_dsh[12] = dRGBdsh12 * dL_dRGB;
95
- dL_dsh[13] = dRGBdsh13 * dL_dRGB;
96
- dL_dsh[14] = dRGBdsh14 * dL_dRGB;
97
- dL_dsh[15] = dRGBdsh15 * dL_dRGB;
98
-
99
- dRGBdx += (
100
- SH_C3[0] * sh[9] * 3.f * 2.f * xy +
101
- SH_C3[1] * sh[10] * yz +
102
- SH_C3[2] * sh[11] * -2.f * xy +
103
- SH_C3[3] * sh[12] * -3.f * 2.f * xz +
104
- SH_C3[4] * sh[13] * (-3.f * xx + 4.f * zz - yy) +
105
- SH_C3[5] * sh[14] * 2.f * xz +
106
- SH_C3[6] * sh[15] * 3.f * (xx - yy));
107
-
108
- dRGBdy += (
109
- SH_C3[0] * sh[9] * 3.f * (xx - yy) +
110
- SH_C3[1] * sh[10] * xz +
111
- SH_C3[2] * sh[11] * (-3.f * yy + 4.f * zz - xx) +
112
- SH_C3[3] * sh[12] * -3.f * 2.f * yz +
113
- SH_C3[4] * sh[13] * -2.f * xy +
114
- SH_C3[5] * sh[14] * -2.f * yz +
115
- SH_C3[6] * sh[15] * -3.f * 2.f * xy);
116
-
117
- dRGBdz += (
118
- SH_C3[1] * sh[10] * xy +
119
- SH_C3[2] * sh[11] * 4.f * 2.f * yz +
120
- SH_C3[3] * sh[12] * 3.f * (2.f * zz - xx - yy) +
121
- SH_C3[4] * sh[13] * 4.f * 2.f * xz +
122
- SH_C3[5] * sh[14] * (xx - yy));
123
- }
124
- }
125
- }
126
-
127
- // The view direction is an input to the computation. View direction
128
- // is influenced by the Gaussian's mean, so SHs gradients
129
- // must propagate back into 3D position.
130
- glm::vec3 dL_ddir(glm::dot(dRGBdx, dL_dRGB), glm::dot(dRGBdy, dL_dRGB), glm::dot(dRGBdz, dL_dRGB));
131
-
132
- // Account for normalization of direction
133
- float3 dL_dmean = dnormvdv(float3{ dir_orig.x, dir_orig.y, dir_orig.z }, float3{ dL_ddir.x, dL_ddir.y, dL_ddir.z });
134
-
135
- // Gradients of loss w.r.t. Gaussian means, but only the portion
136
- // that is caused because the mean affects the view-dependent color.
137
- // Additional mean gradient is accumulated in below methods.
138
- dL_dmeans[idx] += glm::vec3(dL_dmean.x, dL_dmean.y, dL_dmean.z);
139
- }
140
-
141
- // Backward version of INVERSE 2D covariance matrix computation
142
- // (due to length launched as separate kernel before other
143
- // backward steps contained in preprocess)
144
- __global__ void computeCov2DCUDA(int P,
145
- const float3* means,
146
- const int* radii,
147
- const float* cov3Ds,
148
- const float h_x, float h_y,
149
- const float tan_fovx, float tan_fovy,
150
- const float* view_matrix,
151
- const float* dL_dconics,
152
- float3* dL_dmeans,
153
- float* dL_dcov)
154
- {
155
- auto idx = cg::this_grid().thread_rank();
156
- if (idx >= P || !(radii[idx] > 0))
157
- return;
158
-
159
- // Reading location of 3D covariance for this Gaussian
160
- const float* cov3D = cov3Ds + 6 * idx;
161
-
162
- // Fetch gradients, recompute 2D covariance and relevant
163
- // intermediate forward results needed in the backward.
164
- float3 mean = means[idx];
165
- float3 dL_dconic = { dL_dconics[4 * idx], dL_dconics[4 * idx + 1], dL_dconics[4 * idx + 3] };
166
- float3 t = transformPoint4x3(mean, view_matrix);
167
-
168
- const float limx = 1.3f * tan_fovx;
169
- const float limy = 1.3f * tan_fovy;
170
- const float txtz = t.x / t.z;
171
- const float tytz = t.y / t.z;
172
- t.x = min(limx, max(-limx, txtz)) * t.z;
173
- t.y = min(limy, max(-limy, tytz)) * t.z;
174
-
175
- const float x_grad_mul = txtz < -limx || txtz > limx ? 0 : 1;
176
- const float y_grad_mul = tytz < -limy || tytz > limy ? 0 : 1;
177
-
178
- glm::mat3 J = glm::mat3(h_x / t.z, 0.0f, -(h_x * t.x) / (t.z * t.z),
179
- 0.0f, h_y / t.z, -(h_y * t.y) / (t.z * t.z),
180
- 0, 0, 0);
181
-
182
- glm::mat3 W = glm::mat3(
183
- view_matrix[0], view_matrix[4], view_matrix[8],
184
- view_matrix[1], view_matrix[5], view_matrix[9],
185
- view_matrix[2], view_matrix[6], view_matrix[10]);
186
-
187
- glm::mat3 Vrk = glm::mat3(
188
- cov3D[0], cov3D[1], cov3D[2],
189
- cov3D[1], cov3D[3], cov3D[4],
190
- cov3D[2], cov3D[4], cov3D[5]);
191
-
192
- glm::mat3 T = W * J;
193
-
194
- glm::mat3 cov2D = glm::transpose(T) * glm::transpose(Vrk) * T;
195
-
196
- // Use helper variables for 2D covariance entries. More compact.
197
- float a = cov2D[0][0] += 0.3f;
198
- float b = cov2D[0][1];
199
- float c = cov2D[1][1] += 0.3f;
200
-
201
- float denom = a * c - b * b;
202
- float dL_da = 0, dL_db = 0, dL_dc = 0;
203
- float denom2inv = 1.0f / ((denom * denom) + 0.0000001f);
204
-
205
- if (denom2inv != 0)
206
- {
207
- // Gradients of loss w.r.t. entries of 2D covariance matrix,
208
- // given gradients of loss w.r.t. conic matrix (inverse covariance matrix).
209
- // e.g., dL / da = dL / d_conic_a * d_conic_a / d_a
210
- dL_da = denom2inv * (-c * c * dL_dconic.x + 2 * b * c * dL_dconic.y + (denom - a * c) * dL_dconic.z);
211
- dL_dc = denom2inv * (-a * a * dL_dconic.z + 2 * a * b * dL_dconic.y + (denom - a * c) * dL_dconic.x);
212
- dL_db = denom2inv * 2 * (b * c * dL_dconic.x - (denom + 2 * b * b) * dL_dconic.y + a * b * dL_dconic.z);
213
-
214
- // Gradients of loss L w.r.t. each 3D covariance matrix (Vrk) entry,
215
- // given gradients w.r.t. 2D covariance matrix (diagonal).
216
- // cov2D = transpose(T) * transpose(Vrk) * T;
217
- dL_dcov[6 * idx + 0] = (T[0][0] * T[0][0] * dL_da + T[0][0] * T[1][0] * dL_db + T[1][0] * T[1][0] * dL_dc);
218
- dL_dcov[6 * idx + 3] = (T[0][1] * T[0][1] * dL_da + T[0][1] * T[1][1] * dL_db + T[1][1] * T[1][1] * dL_dc);
219
- dL_dcov[6 * idx + 5] = (T[0][2] * T[0][2] * dL_da + T[0][2] * T[1][2] * dL_db + T[1][2] * T[1][2] * dL_dc);
220
-
221
- // Gradients of loss L w.r.t. each 3D covariance matrix (Vrk) entry,
222
- // given gradients w.r.t. 2D covariance matrix (off-diagonal).
223
- // Off-diagonal elements appear twice --> double the gradient.
224
- // cov2D = transpose(T) * transpose(Vrk) * T;
225
- dL_dcov[6 * idx + 1] = 2 * T[0][0] * T[0][1] * dL_da + (T[0][0] * T[1][1] + T[0][1] * T[1][0]) * dL_db + 2 * T[1][0] * T[1][1] * dL_dc;
226
- dL_dcov[6 * idx + 2] = 2 * T[0][0] * T[0][2] * dL_da + (T[0][0] * T[1][2] + T[0][2] * T[1][0]) * dL_db + 2 * T[1][0] * T[1][2] * dL_dc;
227
- dL_dcov[6 * idx + 4] = 2 * T[0][2] * T[0][1] * dL_da + (T[0][1] * T[1][2] + T[0][2] * T[1][1]) * dL_db + 2 * T[1][1] * T[1][2] * dL_dc;
228
- }
229
- else
230
- {
231
- for (int i = 0; i < 6; i++)
232
- dL_dcov[6 * idx + i] = 0;
233
- }
234
-
235
- // Gradients of loss w.r.t. upper 2x3 portion of intermediate matrix T
236
- // cov2D = transpose(T) * transpose(Vrk) * T;
237
- float dL_dT00 = 2 * (T[0][0] * Vrk[0][0] + T[0][1] * Vrk[0][1] + T[0][2] * Vrk[0][2]) * dL_da +
238
- (T[1][0] * Vrk[0][0] + T[1][1] * Vrk[0][1] + T[1][2] * Vrk[0][2]) * dL_db;
239
- float dL_dT01 = 2 * (T[0][0] * Vrk[1][0] + T[0][1] * Vrk[1][1] + T[0][2] * Vrk[1][2]) * dL_da +
240
- (T[1][0] * Vrk[1][0] + T[1][1] * Vrk[1][1] + T[1][2] * Vrk[1][2]) * dL_db;
241
- float dL_dT02 = 2 * (T[0][0] * Vrk[2][0] + T[0][1] * Vrk[2][1] + T[0][2] * Vrk[2][2]) * dL_da +
242
- (T[1][0] * Vrk[2][0] + T[1][1] * Vrk[2][1] + T[1][2] * Vrk[2][2]) * dL_db;
243
- float dL_dT10 = 2 * (T[1][0] * Vrk[0][0] + T[1][1] * Vrk[0][1] + T[1][2] * Vrk[0][2]) * dL_dc +
244
- (T[0][0] * Vrk[0][0] + T[0][1] * Vrk[0][1] + T[0][2] * Vrk[0][2]) * dL_db;
245
- float dL_dT11 = 2 * (T[1][0] * Vrk[1][0] + T[1][1] * Vrk[1][1] + T[1][2] * Vrk[1][2]) * dL_dc +
246
- (T[0][0] * Vrk[1][0] + T[0][1] * Vrk[1][1] + T[0][2] * Vrk[1][2]) * dL_db;
247
- float dL_dT12 = 2 * (T[1][0] * Vrk[2][0] + T[1][1] * Vrk[2][1] + T[1][2] * Vrk[2][2]) * dL_dc +
248
- (T[0][0] * Vrk[2][0] + T[0][1] * Vrk[2][1] + T[0][2] * Vrk[2][2]) * dL_db;
249
-
250
- // Gradients of loss w.r.t. upper 3x2 non-zero entries of Jacobian matrix
251
- // T = W * J
252
- float dL_dJ00 = W[0][0] * dL_dT00 + W[0][1] * dL_dT01 + W[0][2] * dL_dT02;
253
- float dL_dJ02 = W[2][0] * dL_dT00 + W[2][1] * dL_dT01 + W[2][2] * dL_dT02;
254
- float dL_dJ11 = W[1][0] * dL_dT10 + W[1][1] * dL_dT11 + W[1][2] * dL_dT12;
255
- float dL_dJ12 = W[2][0] * dL_dT10 + W[2][1] * dL_dT11 + W[2][2] * dL_dT12;
256
-
257
- float tz = 1.f / t.z;
258
- float tz2 = tz * tz;
259
- float tz3 = tz2 * tz;
260
-
261
- // Gradients of loss w.r.t. transformed Gaussian mean t
262
- float dL_dtx = x_grad_mul * -h_x * tz2 * dL_dJ02;
263
- float dL_dty = y_grad_mul * -h_y * tz2 * dL_dJ12;
264
- float dL_dtz = -h_x * tz2 * dL_dJ00 - h_y * tz2 * dL_dJ11 + (2 * h_x * t.x) * tz3 * dL_dJ02 + (2 * h_y * t.y) * tz3 * dL_dJ12;
265
-
266
- // Account for transformation of mean to t
267
- // t = transformPoint4x3(mean, view_matrix);
268
- float3 dL_dmean = transformVec4x3Transpose({ dL_dtx, dL_dty, dL_dtz }, view_matrix);
269
-
270
- // Gradients of loss w.r.t. Gaussian means, but only the portion
271
- // that is caused because the mean affects the covariance matrix.
272
- // Additional mean gradient is accumulated in BACKWARD::preprocess.
273
- dL_dmeans[idx] = dL_dmean;
274
- }
275
-
276
- // Backward pass for the conversion of scale and rotation to a
277
- // 3D covariance matrix for each Gaussian.
278
- __device__ void computeCov3D(int idx, const glm::vec3 scale, float mod, const glm::vec4 rot, const float* dL_dcov3Ds, glm::vec3* dL_dscales, glm::vec4* dL_drots)
279
- {
280
- // Recompute (intermediate) results for the 3D covariance computation.
281
- glm::vec4 q = rot;// / glm::length(rot);
282
- float r = q.x;
283
- float x = q.y;
284
- float y = q.z;
285
- float z = q.w;
286
-
287
- glm::mat3 R = glm::mat3(
288
- 1.f - 2.f * (y * y + z * z), 2.f * (x * y - r * z), 2.f * (x * z + r * y),
289
- 2.f * (x * y + r * z), 1.f - 2.f * (x * x + z * z), 2.f * (y * z - r * x),
290
- 2.f * (x * z - r * y), 2.f * (y * z + r * x), 1.f - 2.f * (x * x + y * y)
291
- );
292
-
293
- glm::mat3 S = glm::mat3(1.0f);
294
-
295
- glm::vec3 s = mod * scale;
296
- S[0][0] = s.x;
297
- S[1][1] = s.y;
298
- S[2][2] = s.z;
299
-
300
- glm::mat3 M = S * R;
301
-
302
- const float* dL_dcov3D = dL_dcov3Ds + 6 * idx;
303
-
304
- glm::vec3 dunc(dL_dcov3D[0], dL_dcov3D[3], dL_dcov3D[5]);
305
- glm::vec3 ounc = 0.5f * glm::vec3(dL_dcov3D[1], dL_dcov3D[2], dL_dcov3D[4]);
306
-
307
- // Convert per-element covariance loss gradients to matrix form
308
- glm::mat3 dL_dSigma = glm::mat3(
309
- dL_dcov3D[0], 0.5f * dL_dcov3D[1], 0.5f * dL_dcov3D[2],
310
- 0.5f * dL_dcov3D[1], dL_dcov3D[3], 0.5f * dL_dcov3D[4],
311
- 0.5f * dL_dcov3D[2], 0.5f * dL_dcov3D[4], dL_dcov3D[5]
312
- );
313
-
314
- // Compute loss gradient w.r.t. matrix M
315
- // dSigma_dM = 2 * M
316
- glm::mat3 dL_dM = 2.0f * M * dL_dSigma;
317
-
318
- glm::mat3 Rt = glm::transpose(R);
319
- glm::mat3 dL_dMt = glm::transpose(dL_dM);
320
-
321
- // Gradients of loss w.r.t. scale
322
- glm::vec3* dL_dscale = dL_dscales + idx;
323
- dL_dscale->x = glm::dot(Rt[0], dL_dMt[0]);
324
- dL_dscale->y = glm::dot(Rt[1], dL_dMt[1]);
325
- dL_dscale->z = glm::dot(Rt[2], dL_dMt[2]);
326
-
327
- dL_dMt[0] *= s.x;
328
- dL_dMt[1] *= s.y;
329
- dL_dMt[2] *= s.z;
330
-
331
- // Gradients of loss w.r.t. normalized quaternion
332
- glm::vec4 dL_dq;
333
- dL_dq.x = 2 * z * (dL_dMt[0][1] - dL_dMt[1][0]) + 2 * y * (dL_dMt[2][0] - dL_dMt[0][2]) + 2 * x * (dL_dMt[1][2] - dL_dMt[2][1]);
334
- dL_dq.y = 2 * y * (dL_dMt[1][0] + dL_dMt[0][1]) + 2 * z * (dL_dMt[2][0] + dL_dMt[0][2]) + 2 * r * (dL_dMt[1][2] - dL_dMt[2][1]) - 4 * x * (dL_dMt[2][2] + dL_dMt[1][1]);
335
- dL_dq.z = 2 * x * (dL_dMt[1][0] + dL_dMt[0][1]) + 2 * r * (dL_dMt[2][0] - dL_dMt[0][2]) + 2 * z * (dL_dMt[1][2] + dL_dMt[2][1]) - 4 * y * (dL_dMt[2][2] + dL_dMt[0][0]);
336
- dL_dq.w = 2 * r * (dL_dMt[0][1] - dL_dMt[1][0]) + 2 * x * (dL_dMt[2][0] + dL_dMt[0][2]) + 2 * y * (dL_dMt[1][2] + dL_dMt[2][1]) - 4 * z * (dL_dMt[1][1] + dL_dMt[0][0]);
337
-
338
- // Gradients of loss w.r.t. unnormalized quaternion
339
- float4* dL_drot = (float4*)(dL_drots + idx);
340
- *dL_drot = float4{ dL_dq.x, dL_dq.y, dL_dq.z, dL_dq.w };//dnormvdv(float4{ rot.x, rot.y, rot.z, rot.w }, float4{ dL_dq.x, dL_dq.y, dL_dq.z, dL_dq.w });
341
- }
342
-
343
- // Backward pass of the preprocessing steps, except
344
- // for the covariance computation and inversion
345
- // (those are handled by a previous kernel call)
346
- template<int C>
347
- __global__ void preprocessCUDA(
348
- int P, int D, int M,
349
- const float3* means,
350
- const int* radii,
351
- const float* shs,
352
- const bool* clamped,
353
- const glm::vec3* scales,
354
- const glm::vec4* rotations,
355
- const float scale_modifier,
356
- const float* proj,
357
- const glm::vec3* campos,
358
- const float3* dL_dmean2D,
359
- glm::vec3* dL_dmeans,
360
- float* dL_dcolor,
361
- float* dL_dcov3D,
362
- float* dL_dsh,
363
- glm::vec3* dL_dscale,
364
- glm::vec4* dL_drot)
365
- {
366
- auto idx = cg::this_grid().thread_rank();
367
- if (idx >= P || !(radii[idx] > 0))
368
- return;
369
-
370
- float3 m = means[idx];
371
-
372
- // Taking care of gradients from the screenspace points
373
- float4 m_hom = transformPoint4x4(m, proj);
374
- float m_w = 1.0f / (m_hom.w + 0.0000001f);
375
-
376
- // Compute loss gradient w.r.t. 3D means due to gradients of 2D means
377
- // from rendering procedure
378
- glm::vec3 dL_dmean;
379
- float mul1 = (proj[0] * m.x + proj[4] * m.y + proj[8] * m.z + proj[12]) * m_w * m_w;
380
- float mul2 = (proj[1] * m.x + proj[5] * m.y + proj[9] * m.z + proj[13]) * m_w * m_w;
381
- dL_dmean.x = (proj[0] * m_w - proj[3] * mul1) * dL_dmean2D[idx].x + (proj[1] * m_w - proj[3] * mul2) * dL_dmean2D[idx].y;
382
- dL_dmean.y = (proj[4] * m_w - proj[7] * mul1) * dL_dmean2D[idx].x + (proj[5] * m_w - proj[7] * mul2) * dL_dmean2D[idx].y;
383
- dL_dmean.z = (proj[8] * m_w - proj[11] * mul1) * dL_dmean2D[idx].x + (proj[9] * m_w - proj[11] * mul2) * dL_dmean2D[idx].y;
384
-
385
- // That's the second part of the mean gradient. Previous computation
386
- // of cov2D and following SH conversion also affects it.
387
- dL_dmeans[idx] += dL_dmean;
388
-
389
- // Compute gradient updates due to computing colors from SHs
390
- if (shs)
391
- computeColorFromSH(idx, D, M, (glm::vec3*)means, *campos, shs, clamped, (glm::vec3*)dL_dcolor, (glm::vec3*)dL_dmeans, (glm::vec3*)dL_dsh);
392
-
393
- // Compute gradient updates due to computing covariance from scale/rotation
394
- if (scales)
395
- computeCov3D(idx, scales[idx], scale_modifier, rotations[idx], dL_dcov3D, dL_dscale, dL_drot);
396
- }
397
-
398
- // Backward version of the rendering procedure.
399
- template <uint32_t C>
400
- __global__ void __launch_bounds__(BLOCK_X * BLOCK_Y)
401
- renderCUDA(
402
- const uint2* __restrict__ ranges,
403
- const uint32_t* __restrict__ point_list,
404
- int W, int H,
405
- const float* __restrict__ bg_color,
406
- const float2* __restrict__ points_xy_image,
407
- const float4* __restrict__ conic_opacity,
408
- const float* __restrict__ colors,
409
- const float* __restrict__ depths,
410
- const float* __restrict__ final_Ts,
411
- const uint32_t* __restrict__ n_contrib,
412
- const float* __restrict__ dL_dpixels,
413
- const float* __restrict__ dL_depths,
414
- float3* __restrict__ dL_dmean2D,
415
- float4* __restrict__ dL_dconic2D,
416
- float* __restrict__ dL_dopacity,
417
- float* __restrict__ dL_dcolors)
418
- {
419
- // We rasterize again. Compute necessary block info.
420
- auto block = cg::this_thread_block();
421
- const uint32_t horizontal_blocks = (W + BLOCK_X - 1) / BLOCK_X;
422
- const uint2 pix_min = { block.group_index().x * BLOCK_X, block.group_index().y * BLOCK_Y };
423
- const uint2 pix_max = { min(pix_min.x + BLOCK_X, W), min(pix_min.y + BLOCK_Y , H) };
424
- const uint2 pix = { pix_min.x + block.thread_index().x, pix_min.y + block.thread_index().y };
425
- const uint32_t pix_id = W * pix.y + pix.x;
426
- const float2 pixf = { (float)pix.x, (float)pix.y };
427
-
428
- const bool inside = pix.x < W&& pix.y < H;
429
- const uint2 range = ranges[block.group_index().y * horizontal_blocks + block.group_index().x];
430
-
431
- const int rounds = ((range.y - range.x + BLOCK_SIZE - 1) / BLOCK_SIZE);
432
-
433
- bool done = !inside;
434
- int toDo = range.y - range.x;
435
-
436
- __shared__ int collected_id[BLOCK_SIZE];
437
- __shared__ float2 collected_xy[BLOCK_SIZE];
438
- __shared__ float4 collected_conic_opacity[BLOCK_SIZE];
439
- __shared__ float collected_colors[C * BLOCK_SIZE];
440
- __shared__ float collected_depths[BLOCK_SIZE];
441
- // __shared__ float collected_alphas[BLOCK_SIZE];
442
-
443
- // In the forward, we stored the final value for T, the
444
- // product of all (1 - alpha) factors.
445
- const float T_final = inside ? final_Ts[pix_id] : 0;
446
- float T = T_final;
447
-
448
- // We start from the back. The ID of the last contributing
449
- // Gaussian is known from each pixel from the forward.
450
- uint32_t contributor = toDo;
451
- const int last_contributor = inside ? n_contrib[pix_id] : 0;
452
-
453
- float accum_rec[C] = { 0 };
454
- float dL_dpixel[C];
455
- float dL_depth;
456
- float dL_dT;
457
- float accum_depth_rec = 0;
458
- float accum_T_rec = T_final;
459
- if (inside)
460
- for (int i = 0; i < C; i++)
461
- dL_dpixel[i] = dL_dpixels[i * H * W + pix_id];
462
- dL_depth = dL_depths[pix_id];
463
- dL_dT = dL_depths[H * W + pix_id];
464
-
465
- float last_alpha = 0;
466
- float last_color[C] = { 0 };
467
- float last_depth = 0;
468
-
469
- // Gradient of pixel coordinate w.r.t. normalized
470
- // screen-space viewport corrdinates (-1 to 1)
471
- const float ddelx_dx = 0.5 * W;
472
- const float ddely_dy = 0.5 * H;
473
-
474
- // Traverse all Gaussians
475
- for (int i = 0; i < rounds; i++, toDo -= BLOCK_SIZE)
476
- {
477
- // Load auxiliary data into shared memory, start in the BACK
478
- // and load them in revers order.
479
- block.sync();
480
- const int progress = i * BLOCK_SIZE + block.thread_rank();
481
- if (range.x + progress < range.y)
482
- {
483
- const int coll_id = point_list[range.y - progress - 1];
484
- collected_id[block.thread_rank()] = coll_id;
485
- collected_xy[block.thread_rank()] = points_xy_image[coll_id];
486
- collected_conic_opacity[block.thread_rank()] = conic_opacity[coll_id];
487
- for (int i = 0; i < C; i++)
488
- collected_colors[i * BLOCK_SIZE + block.thread_rank()] = colors[coll_id * C + i];
489
- collected_depths[block.thread_rank()] = depths[coll_id];
490
- }
491
- block.sync();
492
-
493
- // Iterate over Gaussians
494
- for (int j = 0; !done && j < min(BLOCK_SIZE, toDo); j++)
495
- {
496
- // Keep track of current Gaussian ID. Skip, if this one
497
- // is behind the last contributor for this pixel.
498
- contributor--;
499
- if (contributor >= last_contributor)
500
- continue;
501
-
502
- // Compute blending values, as before.
503
- const float2 xy = collected_xy[j];
504
- const float2 d = { xy.x - pixf.x, xy.y - pixf.y };
505
- const float4 con_o = collected_conic_opacity[j];
506
- const float power = -0.5f * (con_o.x * d.x * d.x + con_o.z * d.y * d.y) - con_o.y * d.x * d.y;
507
- if (power > 0.0f)
508
- continue;
509
-
510
- const float G = exp(power);
511
- const float alpha = min(0.99f, con_o.w * G);
512
- if (alpha < 1.0f / 255.0f)
513
- continue;
514
-
515
- T = T / (1.f - alpha);
516
- const float dchannel_dcolor = alpha * T;
517
-
518
- // Propagate gradients to per-Gaussian colors and keep
519
- // gradients w.r.t. alpha (blending factor for a Gaussian/pixel
520
- // pair).
521
- float dL_dalpha = 0.0f;
522
- const int global_id = collected_id[j];
523
- for (int ch = 0; ch < C; ch++)
524
- {
525
- const float c = collected_colors[ch * BLOCK_SIZE + j];
526
- // Update last color (to be used in the next iteration)
527
- accum_rec[ch] = last_alpha * last_color[ch] + (1.f - last_alpha) * accum_rec[ch];
528
- last_color[ch] = c;
529
-
530
- const float dL_dchannel = dL_dpixel[ch];
531
- dL_dalpha += (c - accum_rec[ch]) * dL_dchannel;
532
- // Update the gradients w.r.t. color of the Gaussian.
533
- // Atomic, since this pixel is just one of potentially
534
- // many that were affected by this Gaussian.
535
- atomicAdd(&(dL_dcolors[global_id * C + ch]), dchannel_dcolor * dL_dchannel);
536
- }
537
-
538
- // Propagate gradients to per-Gaussian depths
539
- const float c_d = collected_depths[j];
540
- accum_depth_rec = last_alpha * last_depth + (1.f - last_alpha) * accum_depth_rec;
541
- last_depth = c_d;
542
- dL_dalpha += (c_d - accum_depth_rec) * dL_depth;
543
- // for (int ch = 0; ch < C; ch++)
544
- // {
545
- // atomicAdd(&(dL_dcolors[global_id * C + ch]), dchannel_dcolor * dL_depth);
546
- // }
547
-
548
- dL_dalpha *= T;
549
-
550
- // Propagate gradients from Ts to per-Gaussian alpha
551
-
552
- // in forward:
553
-
554
- // final_T = last_T * (1.f - alpha)
555
- // final_T = (last_last_T * (1.f - last_alpha)) * (1.f - alpha)
556
-
557
- // and here we have:
558
-
559
- // 'T = final_T / (1.f - alpha) = last_T'
560
- // c_T = last_T * (1.f - alpha)
561
- // dT_dalpha = -last_T
562
- // dL_dalpha = dL_dT * dT_dalpha = dL_dT * -last_T
563
-
564
- // and also:
565
-
566
- // dT_dlast_T = (1.f - alpha)
567
- // dL_dlast_T = dL_dT * dT_dlast_T
568
-
569
- dL_dalpha += -T * dL_dT;
570
- dL_dT *= (1.f - alpha);
571
-
572
- // Update last alpha (to be used in the next iteration)
573
- last_alpha = alpha;
574
-
575
- // Account for fact that alpha also influences how much of
576
- // the background color is added if nothing left to blend
577
- float bg_dot_dpixel = 0;
578
- for (int i = 0; i < C; i++)
579
- bg_dot_dpixel += bg_color[i] * dL_dpixel[i];
580
- dL_dalpha += (-T_final / (1.f - alpha)) * bg_dot_dpixel;
581
-
582
-
583
- // Helpful reusable temporary variables
584
- const float dL_dG = con_o.w * dL_dalpha;
585
- const float gdx = G * d.x;
586
- const float gdy = G * d.y;
587
- const float dG_ddelx = -gdx * con_o.x - gdy * con_o.y;
588
- const float dG_ddely = -gdy * con_o.z - gdx * con_o.y;
589
-
590
- // Update gradients w.r.t. 2D mean position of the Gaussian
591
- atomicAdd(&dL_dmean2D[global_id].x, dL_dG * dG_ddelx * ddelx_dx);
592
- atomicAdd(&dL_dmean2D[global_id].y, dL_dG * dG_ddely * ddely_dy);
593
-
594
- // Update gradients w.r.t. 2D covariance (2x2 matrix, symmetric)
595
- atomicAdd(&dL_dconic2D[global_id].x, -0.5f * gdx * d.x * dL_dG);
596
- atomicAdd(&dL_dconic2D[global_id].y, -0.5f * gdx * d.y * dL_dG);
597
- atomicAdd(&dL_dconic2D[global_id].w, -0.5f * gdy * d.y * dL_dG);
598
-
599
- // Update gradients w.r.t. opacity of the Gaussian
600
- atomicAdd(&(dL_dopacity[global_id]), G * dL_dalpha);
601
- }
602
- }
603
- }
604
-
605
- void BACKWARD::preprocess(
606
- int P, int D, int M,
607
- const float3* means3D,
608
- const int* radii,
609
- const float* shs,
610
- const bool* clamped,
611
- const glm::vec3* scales,
612
- const glm::vec4* rotations,
613
- const float scale_modifier,
614
- const float* cov3Ds,
615
- const float* viewmatrix,
616
- const float* projmatrix,
617
- const float focal_x, float focal_y,
618
- const float tan_fovx, float tan_fovy,
619
- const glm::vec3* campos,
620
- const float3* dL_dmean2D,
621
- const float* dL_dconic,
622
- glm::vec3* dL_dmean3D,
623
- float* dL_dcolor,
624
- float* dL_dcov3D,
625
- float* dL_dsh,
626
- glm::vec3* dL_dscale,
627
- glm::vec4* dL_drot)
628
- {
629
- // Propagate gradients for the path of 2D conic matrix computation.
630
- // Somewhat long, thus it is its own kernel rather than being part of
631
- // "preprocess". When done, loss gradient w.r.t. 3D means has been
632
- // modified and gradient w.r.t. 3D covariance matrix has been computed.
633
- computeCov2DCUDA << <(P + 255) / 256, 256 >> > (
634
- P,
635
- means3D,
636
- radii,
637
- cov3Ds,
638
- focal_x,
639
- focal_y,
640
- tan_fovx,
641
- tan_fovy,
642
- viewmatrix,
643
- dL_dconic,
644
- (float3*)dL_dmean3D,
645
- dL_dcov3D);
646
-
647
- // Propagate gradients for remaining steps: finish 3D mean gradients,
648
- // propagate color gradients to SH (if desireD), propagate 3D covariance
649
- // matrix gradients to scale and rotation.
650
- preprocessCUDA<NUM_CHANNELS> << < (P + 255) / 256, 256 >> > (
651
- P, D, M,
652
- (float3*)means3D,
653
- radii,
654
- shs,
655
- clamped,
656
- (glm::vec3*)scales,
657
- (glm::vec4*)rotations,
658
- scale_modifier,
659
- projmatrix,
660
- campos,
661
- (float3*)dL_dmean2D,
662
- (glm::vec3*)dL_dmean3D,
663
- dL_dcolor,
664
- dL_dcov3D,
665
- dL_dsh,
666
- dL_dscale,
667
- dL_drot);
668
- }
669
-
670
- void BACKWARD::render(
671
- const dim3 grid, const dim3 block,
672
- const uint2* ranges,
673
- const uint32_t* point_list,
674
- int W, int H,
675
- const float* bg_color,
676
- const float2* means2D,
677
- const float4* conic_opacity,
678
- const float* colors,
679
- const float* depths,
680
- const float* final_Ts,
681
- const uint32_t* n_contrib,
682
- const float* dL_dpixels,
683
- const float* dL_depths,
684
- float3* dL_dmean2D,
685
- float4* dL_dconic2D,
686
- float* dL_dopacity,
687
- float* dL_dcolors)
688
- {
689
- renderCUDA<NUM_CHANNELS> << <grid, block >> >(
690
- ranges,
691
- point_list,
692
- W, H,
693
- bg_color,
694
- means2D,
695
- conic_opacity,
696
- colors,
697
- depths,
698
- final_Ts,
699
- n_contrib,
700
- dL_dpixels,
701
- dL_depths,
702
- dL_dmean2D,
703
- dL_dconic2D,
704
- dL_dopacity,
705
- dL_dcolors
706
- );
707
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/cuda_rasterizer/backward.h DELETED
@@ -1,67 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #ifndef CUDA_RASTERIZER_BACKWARD_H_INCLUDED
13
- #define CUDA_RASTERIZER_BACKWARD_H_INCLUDED
14
-
15
- #include <cuda.h>
16
- #include "cuda_runtime.h"
17
- #include "device_launch_parameters.h"
18
- #define GLM_FORCE_CUDA
19
- #include <glm/glm.hpp>
20
-
21
- namespace BACKWARD
22
- {
23
- void render(
24
- const dim3 grid, dim3 block,
25
- const uint2* ranges,
26
- const uint32_t* point_list,
27
- int W, int H,
28
- const float* bg_color,
29
- const float2* means2D,
30
- const float4* conic_opacity,
31
- const float* colors,
32
- const float* depths,
33
- const float* final_Ts,
34
- const uint32_t* n_contrib,
35
- const float* dL_dpixels,
36
- const float* dL_depths,
37
- float3* dL_dmean2D,
38
- float4* dL_dconic2D,
39
- float* dL_dopacity,
40
- float* dL_dcolors);
41
-
42
- void preprocess(
43
- int P, int D, int M,
44
- const float3* means,
45
- const int* radii,
46
- const float* shs,
47
- const bool* clamped,
48
- const glm::vec3* scales,
49
- const glm::vec4* rotations,
50
- const float scale_modifier,
51
- const float* cov3Ds,
52
- const float* view,
53
- const float* proj,
54
- const float focal_x, float focal_y,
55
- const float tan_fovx, float tan_fovy,
56
- const glm::vec3* campos,
57
- const float3* dL_dmean2D,
58
- const float* dL_dconics,
59
- glm::vec3* dL_dmeans,
60
- float* dL_dcolor,
61
- float* dL_dcov3D,
62
- float* dL_dsh,
63
- glm::vec3* dL_dscale,
64
- glm::vec4* dL_drot);
65
- }
66
-
67
- #endif
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/cuda_rasterizer/config.h DELETED
@@ -1,19 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #ifndef CUDA_RASTERIZER_CONFIG_H_INCLUDED
13
- #define CUDA_RASTERIZER_CONFIG_H_INCLUDED
14
-
15
- #define NUM_CHANNELS 3 // Default 3, RGB
16
- #define BLOCK_X 16
17
- #define BLOCK_Y 16
18
-
19
- #endif
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/cuda_rasterizer/forward.cu DELETED
@@ -1,476 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #include "forward.h"
13
- #include "auxiliary.h"
14
- #include <cooperative_groups.h>
15
- #include <cooperative_groups/reduce.h>
16
- namespace cg = cooperative_groups;
17
-
18
- // Forward method for converting the input spherical harmonics
19
- // coefficients of each Gaussian to a simple RGB color.
20
- __device__ glm::vec3 computeColorFromSH(int idx, int deg, int max_coeffs, const glm::vec3* means, glm::vec3 campos, const float* shs, bool* clamped)
21
- {
22
- // The implementation is loosely based on code for
23
- // "Differentiable Point-Based Radiance Fields for
24
- // Efficient View Synthesis" by Zhang et al. (2022)
25
- glm::vec3 pos = means[idx];
26
- glm::vec3 dir = pos - campos;
27
- dir = dir / glm::length(dir);
28
-
29
- glm::vec3* sh = ((glm::vec3*)shs) + idx * max_coeffs;
30
- glm::vec3 result = SH_C0 * sh[0];
31
-
32
- if (deg > 0)
33
- {
34
- float x = dir.x;
35
- float y = dir.y;
36
- float z = dir.z;
37
- result = result - SH_C1 * y * sh[1] + SH_C1 * z * sh[2] - SH_C1 * x * sh[3];
38
-
39
- if (deg > 1)
40
- {
41
- float xx = x * x, yy = y * y, zz = z * z;
42
- float xy = x * y, yz = y * z, xz = x * z;
43
- result = result +
44
- SH_C2[0] * xy * sh[4] +
45
- SH_C2[1] * yz * sh[5] +
46
- SH_C2[2] * (2.0f * zz - xx - yy) * sh[6] +
47
- SH_C2[3] * xz * sh[7] +
48
- SH_C2[4] * (xx - yy) * sh[8];
49
-
50
- if (deg > 2)
51
- {
52
- result = result +
53
- SH_C3[0] * y * (3.0f * xx - yy) * sh[9] +
54
- SH_C3[1] * xy * z * sh[10] +
55
- SH_C3[2] * y * (4.0f * zz - xx - yy) * sh[11] +
56
- SH_C3[3] * z * (2.0f * zz - 3.0f * xx - 3.0f * yy) * sh[12] +
57
- SH_C3[4] * x * (4.0f * zz - xx - yy) * sh[13] +
58
- SH_C3[5] * z * (xx - yy) * sh[14] +
59
- SH_C3[6] * x * (xx - 3.0f * yy) * sh[15];
60
- }
61
- }
62
- }
63
- result += 0.5f;
64
-
65
- // RGB colors are clamped to positive values. If values are
66
- // clamped, we need to keep track of this for the backward pass.
67
- clamped[3 * idx + 0] = (result.x < 0);
68
- clamped[3 * idx + 1] = (result.y < 0);
69
- clamped[3 * idx + 2] = (result.z < 0);
70
- return glm::max(result, 0.0f);
71
- }
72
-
73
- // Forward version of 2D covariance matrix computation
74
- __device__ float3 computeCov2D(const float3& mean, float focal_x, float focal_y, float tan_fovx, float tan_fovy, const float* cov3D, const float* viewmatrix)
75
- {
76
- // The following models the steps outlined by equations 29
77
- // and 31 in "EWA Splatting" (Zwicker et al., 2002).
78
- // Additionally considers aspect / scaling of viewport.
79
- // Transposes used to account for row-/column-major conventions.
80
- float3 t = transformPoint4x3(mean, viewmatrix);
81
-
82
- const float limx = 1.3f * tan_fovx;
83
- const float limy = 1.3f * tan_fovy;
84
- const float txtz = t.x / t.z;
85
- const float tytz = t.y / t.z;
86
- t.x = min(limx, max(-limx, txtz)) * t.z;
87
- t.y = min(limy, max(-limy, tytz)) * t.z;
88
-
89
- glm::mat3 J = glm::mat3(
90
- focal_x / t.z, 0.0f, -(focal_x * t.x) / (t.z * t.z),
91
- 0.0f, focal_y / t.z, -(focal_y * t.y) / (t.z * t.z),
92
- 0, 0, 0);
93
-
94
- glm::mat3 W = glm::mat3(
95
- viewmatrix[0], viewmatrix[4], viewmatrix[8],
96
- viewmatrix[1], viewmatrix[5], viewmatrix[9],
97
- viewmatrix[2], viewmatrix[6], viewmatrix[10]);
98
-
99
- glm::mat3 T = W * J;
100
-
101
- glm::mat3 Vrk = glm::mat3(
102
- cov3D[0], cov3D[1], cov3D[2],
103
- cov3D[1], cov3D[3], cov3D[4],
104
- cov3D[2], cov3D[4], cov3D[5]);
105
-
106
- glm::mat3 cov = glm::transpose(T) * glm::transpose(Vrk) * T;
107
-
108
- // Apply low-pass filter: every Gaussian should be at least
109
- // one pixel wide/high. Discard 3rd row and column.
110
- cov[0][0] += 0.3f;
111
- cov[1][1] += 0.3f;
112
- return { float(cov[0][0]), float(cov[0][1]), float(cov[1][1]) };
113
- }
114
-
115
- // Forward method for converting scale and rotation properties of each
116
- // Gaussian to a 3D covariance matrix in world space. Also takes care
117
- // of quaternion normalization.
118
- __device__ void computeCov3D(const glm::vec3 scale, float mod, const glm::vec4 rot, float* cov3D)
119
- {
120
- // Create scaling matrix
121
- glm::mat3 S = glm::mat3(1.0f);
122
- S[0][0] = mod * scale.x;
123
- S[1][1] = mod * scale.y;
124
- S[2][2] = mod * scale.z;
125
-
126
- // Normalize quaternion to get valid rotation
127
- glm::vec4 q = rot;// / glm::length(rot);
128
- float r = q.x;
129
- float x = q.y;
130
- float y = q.z;
131
- float z = q.w;
132
-
133
- // Compute rotation matrix from quaternion
134
- glm::mat3 R = glm::mat3(
135
- 1.f - 2.f * (y * y + z * z), 2.f * (x * y - r * z), 2.f * (x * z + r * y),
136
- 2.f * (x * y + r * z), 1.f - 2.f * (x * x + z * z), 2.f * (y * z - r * x),
137
- 2.f * (x * z - r * y), 2.f * (y * z + r * x), 1.f - 2.f * (x * x + y * y)
138
- );
139
-
140
- glm::mat3 M = S * R;
141
-
142
- // Compute 3D world covariance matrix Sigma
143
- glm::mat3 Sigma = glm::transpose(M) * M;
144
-
145
- // Covariance is symmetric, only store upper right
146
- cov3D[0] = Sigma[0][0];
147
- cov3D[1] = Sigma[0][1];
148
- cov3D[2] = Sigma[0][2];
149
- cov3D[3] = Sigma[1][1];
150
- cov3D[4] = Sigma[1][2];
151
- cov3D[5] = Sigma[2][2];
152
- }
153
-
154
- // Perform initial steps for each Gaussian prior to rasterization.
155
- template<int C>
156
- __global__ void preprocessCUDA(int P, int D, int M,
157
- const float* orig_points,
158
- const glm::vec3* scales,
159
- const float scale_modifier,
160
- const glm::vec4* rotations,
161
- const float* opacities,
162
- const float* shs,
163
- bool* clamped,
164
- const float* cov3D_precomp,
165
- const float* colors_precomp,
166
- const float* viewmatrix,
167
- const float* projmatrix,
168
- const glm::vec3* cam_pos,
169
- const int W, int H,
170
- const float tan_fovx, float tan_fovy,
171
- const float focal_x, float focal_y,
172
- int* radii,
173
- float2* points_xy_image,
174
- float* depths,
175
- float* cov3Ds,
176
- float* rgb,
177
- float4* conic_opacity,
178
- const dim3 grid,
179
- uint32_t* tiles_touched,
180
- bool prefiltered)
181
- {
182
- auto idx = cg::this_grid().thread_rank();
183
- if (idx >= P)
184
- return;
185
-
186
- // Initialize radius and touched tiles to 0. If this isn't changed,
187
- // this Gaussian will not be processed further.
188
- radii[idx] = 0;
189
- tiles_touched[idx] = 0;
190
-
191
- // Perform near culling, quit if outside.
192
- float3 p_view;
193
- if (!in_frustum(idx, orig_points, viewmatrix, projmatrix, prefiltered, p_view))
194
- return;
195
-
196
- // Transform point by projecting
197
- float3 p_orig = { orig_points[3 * idx], orig_points[3 * idx + 1], orig_points[3 * idx + 2] };
198
- float4 p_hom = transformPoint4x4(p_orig, projmatrix);
199
- float p_w = 1.0f / (p_hom.w + 0.0000001f);
200
- float3 p_proj = { p_hom.x * p_w, p_hom.y * p_w, p_hom.z * p_w };
201
-
202
- // If 3D covariance matrix is precomputed, use it, otherwise compute
203
- // from scaling and rotation parameters.
204
- const float* cov3D;
205
- if (cov3D_precomp != nullptr)
206
- {
207
- cov3D = cov3D_precomp + idx * 6;
208
- }
209
- else
210
- {
211
- computeCov3D(scales[idx], scale_modifier, rotations[idx], cov3Ds + idx * 6);
212
- cov3D = cov3Ds + idx * 6;
213
- }
214
-
215
- // Compute 2D screen-space covariance matrix
216
- float3 cov = computeCov2D(p_orig, focal_x, focal_y, tan_fovx, tan_fovy, cov3D, viewmatrix);
217
-
218
- // Invert covariance (EWA algorithm)
219
- float det = (cov.x * cov.z - cov.y * cov.y);
220
- if (det == 0.0f)
221
- return;
222
- float det_inv = 1.f / det;
223
- float3 conic = { cov.z * det_inv, -cov.y * det_inv, cov.x * det_inv };
224
-
225
- // Compute extent in screen space (by finding eigenvalues of
226
- // 2D covariance matrix). Use extent to compute a bounding rectangle
227
- // of screen-space tiles that this Gaussian overlaps with. Quit if
228
- // rectangle covers 0 tiles.
229
- float mid = 0.5f * (cov.x + cov.z);
230
- float lambda1 = mid + sqrt(max(0.1f, mid * mid - det));
231
- float lambda2 = mid - sqrt(max(0.1f, mid * mid - det));
232
- float my_radius = ceil(3.f * sqrt(max(lambda1, lambda2)));
233
- float2 point_image = { ndc2Pix(p_proj.x, W), ndc2Pix(p_proj.y, H) };
234
- uint2 rect_min, rect_max;
235
- getRect(point_image, my_radius, rect_min, rect_max, grid);
236
- if ((rect_max.x - rect_min.x) * (rect_max.y - rect_min.y) == 0)
237
- return;
238
-
239
- // If colors have been precomputed, use them, otherwise convert
240
- // spherical harmonics coefficients to RGB color.
241
- if (colors_precomp == nullptr)
242
- {
243
- glm::vec3 result = computeColorFromSH(idx, D, M, (glm::vec3*)orig_points, *cam_pos, shs, clamped);
244
- rgb[idx * C + 0] = result.x;
245
- rgb[idx * C + 1] = result.y;
246
- rgb[idx * C + 2] = result.z;
247
- }
248
-
249
- // Store some useful helper data for the next steps.
250
- depths[idx] = p_view.z;
251
- radii[idx] = my_radius;
252
- points_xy_image[idx] = point_image;
253
- // Inverse 2D covariance and opacity neatly pack into one float4
254
- conic_opacity[idx] = { conic.x, conic.y, conic.z, opacities[idx] };
255
- tiles_touched[idx] = (rect_max.y - rect_min.y) * (rect_max.x - rect_min.x);
256
- }
257
-
258
- // Main rasterization method. Collaboratively works on one tile per
259
- // block, each thread treats one pixel. Alternates between fetching
260
- // and rasterizing data.
261
- template <uint32_t CHANNELS>
262
- __global__ void __launch_bounds__(BLOCK_X * BLOCK_Y)
263
- renderCUDA(
264
- const uint2* __restrict__ ranges,
265
- const uint32_t* __restrict__ point_list,
266
- int W, int H,
267
- const float2* __restrict__ points_xy_image,
268
- const float* __restrict__ features,
269
- const float* __restrict__ depths,
270
- const float4* __restrict__ conic_opacity,
271
- float* __restrict__ final_T,
272
- uint32_t* __restrict__ n_contrib,
273
- const float* __restrict__ bg_color,
274
- float* __restrict__ out_color,
275
- float* __restrict__ out_depth)
276
- {
277
- // Identify current tile and associated min/max pixel range.
278
- auto block = cg::this_thread_block();
279
- uint32_t horizontal_blocks = (W + BLOCK_X - 1) / BLOCK_X;
280
- uint2 pix_min = { block.group_index().x * BLOCK_X, block.group_index().y * BLOCK_Y };
281
- uint2 pix_max = { min(pix_min.x + BLOCK_X, W), min(pix_min.y + BLOCK_Y , H) };
282
- uint2 pix = { pix_min.x + block.thread_index().x, pix_min.y + block.thread_index().y };
283
- uint32_t pix_id = W * pix.y + pix.x;
284
- float2 pixf = { (float)pix.x, (float)pix.y };
285
-
286
- // Check if this thread is associated with a valid pixel or outside.
287
- bool inside = pix.x < W&& pix.y < H;
288
- // Done threads can help with fetching, but don't rasterize
289
- bool done = !inside;
290
-
291
- // Load start/end range of IDs to process in bit sorted list.
292
- uint2 range = ranges[block.group_index().y * horizontal_blocks + block.group_index().x];
293
- const int rounds = ((range.y - range.x + BLOCK_SIZE - 1) / BLOCK_SIZE);
294
- int toDo = range.y - range.x;
295
-
296
- // Allocate storage for batches of collectively fetched data.
297
- __shared__ int collected_id[BLOCK_SIZE];
298
- __shared__ float2 collected_xy[BLOCK_SIZE];
299
- __shared__ float4 collected_conic_opacity[BLOCK_SIZE];
300
-
301
- // Initialize helper variables
302
- float T = 1.0f;
303
- uint32_t contributor = 0;
304
- uint32_t last_contributor = 0;
305
- float C[CHANNELS] = { 0 };
306
- float D = { 0 };
307
- // float A = { 0 };
308
-
309
- // Iterate over batches until all done or range is complete
310
- for (int i = 0; i < rounds; i++, toDo -= BLOCK_SIZE)
311
- {
312
- // End if entire block votes that it is done rasterizing
313
- int num_done = __syncthreads_count(done);
314
- if (num_done == BLOCK_SIZE)
315
- break;
316
-
317
- // Collectively fetch per-Gaussian data from global to shared
318
- int progress = i * BLOCK_SIZE + block.thread_rank();
319
- if (range.x + progress < range.y)
320
- {
321
- int coll_id = point_list[range.x + progress];
322
- collected_id[block.thread_rank()] = coll_id;
323
- collected_xy[block.thread_rank()] = points_xy_image[coll_id];
324
- collected_conic_opacity[block.thread_rank()] = conic_opacity[coll_id];
325
- }
326
- block.sync();
327
-
328
- // Iterate over current batch
329
- for (int j = 0; !done && j < min(BLOCK_SIZE, toDo); j++)
330
- {
331
- // Keep track of current position in range
332
- contributor++;
333
-
334
- // Resample using conic matrix (cf. "Surface
335
- // Splatting" by Zwicker et al., 2001)
336
- float2 xy = collected_xy[j];
337
- float2 d = { xy.x - pixf.x, xy.y - pixf.y };
338
- float4 con_o = collected_conic_opacity[j];
339
- float power = -0.5f * (con_o.x * d.x * d.x + con_o.z * d.y * d.y) - con_o.y * d.x * d.y;
340
- if (power > 0.0f)
341
- continue;
342
-
343
- // Eq. (2) from 3D Gaussian splatting paper.
344
- // Obtain alpha by multiplying with Gaussian opacity
345
- // and its exponential falloff from mean.
346
- // Avoid numerical instabilities (see paper appendix).
347
- float alpha = min(0.99f, con_o.w * exp(power));
348
- if (alpha < 1.0f / 255.0f)
349
- continue;
350
- float test_T = T * (1 - alpha);
351
- if (test_T < 0.0001f)
352
- {
353
- done = true;
354
- continue;
355
- }
356
-
357
- // Eq. (3) from 3D Gaussian splatting paper.
358
- for (int ch = 0; ch < CHANNELS; ch++)
359
- C[ch] += features[collected_id[j] * CHANNELS + ch] * alpha * T;
360
- D += depths[collected_id[j]] * alpha * T;
361
- // A += alpha * T;
362
-
363
- T = test_T;
364
-
365
- // Keep track of last range entry to update this
366
- // pixel.
367
- last_contributor = contributor;
368
- }
369
- }
370
-
371
- // All threads that treat valid pixel write out their final
372
- // rendering data to the frame and auxiliary buffers.
373
- if (inside)
374
- {
375
- final_T[pix_id] = T;
376
- n_contrib[pix_id] = last_contributor;
377
- for (int ch = 0; ch < CHANNELS; ch++)
378
- out_color[ch * H * W + pix_id] = C[ch] + T * bg_color[ch];
379
- out_depth[pix_id] = D;
380
- out_depth[W * H + pix_id] = T;
381
- // if (A > 0.499f)
382
- // {
383
- // out_depth[pix_id] = D;
384
- // }
385
- // else
386
- // {
387
- // out_depth[pix_id] = -1.0f;
388
- // }
389
-
390
- }
391
- }
392
-
393
- void FORWARD::render(
394
- const dim3 grid, dim3 block,
395
- const uint2* ranges,
396
- const uint32_t* point_list,
397
- int W, int H,
398
- const float2* means2D,
399
- const float* colors,
400
- const float* depths,
401
- const float4* conic_opacity,
402
- float* final_T,
403
- uint32_t* n_contrib,
404
- const float* bg_color,
405
- float* out_color,
406
- float* out_depth)
407
- {
408
- renderCUDA<NUM_CHANNELS> << <grid, block >> > (
409
- ranges,
410
- point_list,
411
- W, H,
412
- means2D,
413
- colors,
414
- depths,
415
- conic_opacity,
416
- final_T,
417
- n_contrib,
418
- bg_color,
419
- out_color,
420
- out_depth);
421
- }
422
-
423
- void FORWARD::preprocess(int P, int D, int M,
424
- const float* means3D,
425
- const glm::vec3* scales,
426
- const float scale_modifier,
427
- const glm::vec4* rotations,
428
- const float* opacities,
429
- const float* shs,
430
- bool* clamped,
431
- const float* cov3D_precomp,
432
- const float* colors_precomp,
433
- const float* viewmatrix,
434
- const float* projmatrix,
435
- const glm::vec3* cam_pos,
436
- const int W, int H,
437
- const float focal_x, float focal_y,
438
- const float tan_fovx, float tan_fovy,
439
- int* radii,
440
- float2* means2D,
441
- float* depths,
442
- float* cov3Ds,
443
- float* rgb,
444
- float4* conic_opacity,
445
- const dim3 grid,
446
- uint32_t* tiles_touched,
447
- bool prefiltered)
448
- {
449
- preprocessCUDA<NUM_CHANNELS> << <(P + 255) / 256, 256 >> > (
450
- P, D, M,
451
- means3D,
452
- scales,
453
- scale_modifier,
454
- rotations,
455
- opacities,
456
- shs,
457
- clamped,
458
- cov3D_precomp,
459
- colors_precomp,
460
- viewmatrix,
461
- projmatrix,
462
- cam_pos,
463
- W, H,
464
- tan_fovx, tan_fovy,
465
- focal_x, focal_y,
466
- radii,
467
- means2D,
468
- depths,
469
- cov3Ds,
470
- rgb,
471
- conic_opacity,
472
- grid,
473
- tiles_touched,
474
- prefiltered
475
- );
476
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/cuda_rasterizer/forward.h DELETED
@@ -1,68 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #ifndef CUDA_RASTERIZER_FORWARD_H_INCLUDED
13
- #define CUDA_RASTERIZER_FORWARD_H_INCLUDED
14
-
15
- #include <cuda.h>
16
- #include "cuda_runtime.h"
17
- #include "device_launch_parameters.h"
18
- #define GLM_FORCE_CUDA
19
- #include <glm/glm.hpp>
20
-
21
- namespace FORWARD
22
- {
23
- // Perform initial steps for each Gaussian prior to rasterization.
24
- void preprocess(int P, int D, int M,
25
- const float* orig_points,
26
- const glm::vec3* scales,
27
- const float scale_modifier,
28
- const glm::vec4* rotations,
29
- const float* opacities,
30
- const float* shs,
31
- bool* clamped,
32
- const float* cov3D_precomp,
33
- const float* colors_precomp,
34
- const float* viewmatrix,
35
- const float* projmatrix,
36
- const glm::vec3* cam_pos,
37
- const int W, int H,
38
- const float focal_x, float focal_y,
39
- const float tan_fovx, float tan_fovy,
40
- int* radii,
41
- float2* points_xy_image,
42
- float* depths,
43
- float* cov3Ds,
44
- float* colors,
45
- float4* conic_opacity,
46
- const dim3 grid,
47
- uint32_t* tiles_touched,
48
- bool prefiltered);
49
-
50
- // Main rasterization method.
51
- void render(
52
- const dim3 grid, dim3 block,
53
- const uint2* ranges,
54
- const uint32_t* point_list,
55
- int W, int H,
56
- const float2* points_xy_image,
57
- const float* features,
58
- const float* depths,
59
- const float4* conic_opacity,
60
- float* final_T,
61
- uint32_t* n_contrib,
62
- const float* bg_color,
63
- float* out_color,
64
- float* out_depth);
65
- }
66
-
67
-
68
- #endif
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer.h DELETED
@@ -1,88 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #ifndef CUDA_RASTERIZER_H_INCLUDED
13
- #define CUDA_RASTERIZER_H_INCLUDED
14
-
15
- #include <vector>
16
- #include <functional>
17
-
18
- namespace CudaRasterizer
19
- {
20
- class Rasterizer
21
- {
22
- public:
23
-
24
- static void markVisible(
25
- int P,
26
- float* means3D,
27
- float* viewmatrix,
28
- float* projmatrix,
29
- bool* present);
30
-
31
- static int forward(
32
- std::function<char* (size_t)> geometryBuffer,
33
- std::function<char* (size_t)> binningBuffer,
34
- std::function<char* (size_t)> imageBuffer,
35
- const int P, int D, int M,
36
- const float* background,
37
- const int width, int height,
38
- const float* means3D,
39
- const float* shs,
40
- const float* colors_precomp,
41
- const float* opacities,
42
- const float* scales,
43
- const float scale_modifier,
44
- const float* rotations,
45
- const float* cov3D_precomp,
46
- const float* viewmatrix,
47
- const float* projmatrix,
48
- const float* cam_pos,
49
- const float tan_fovx, float tan_fovy,
50
- const bool prefiltered,
51
- float* out_color,
52
- float* out_depth,
53
- int* radii = nullptr);
54
-
55
- static void backward(
56
- const int P, int D, int M, int R,
57
- const float* background,
58
- const int width, int height,
59
- const float* means3D,
60
- const float* shs,
61
- const float* colors_precomp,
62
- const float* scales,
63
- const float scale_modifier,
64
- const float* rotations,
65
- const float* cov3D_precomp,
66
- const float* viewmatrix,
67
- const float* projmatrix,
68
- const float* campos,
69
- const float tan_fovx, float tan_fovy,
70
- const int* radii,
71
- char* geom_buffer,
72
- char* binning_buffer,
73
- char* image_buffer,
74
- const float* dL_dpix,
75
- const float* dL_depths,
76
- float* dL_dmean2D,
77
- float* dL_dconic,
78
- float* dL_dopacity,
79
- float* dL_dcolor,
80
- float* dL_dmean3D,
81
- float* dL_dcov3D,
82
- float* dL_dsh,
83
- float* dL_dscale,
84
- float* dL_drot);
85
- };
86
- };
87
-
88
- #endif
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer_impl.cu DELETED
@@ -1,440 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #include "rasterizer_impl.h"
13
- #include <iostream>
14
- #include <fstream>
15
- #include <algorithm>
16
- #include <numeric>
17
- #include <cuda.h>
18
- #include "cuda_runtime.h"
19
- #include "device_launch_parameters.h"
20
- #include <cub/cub.cuh>
21
- #include <cub/device/device_radix_sort.cuh>
22
- #define GLM_FORCE_CUDA
23
- #include <glm/glm.hpp>
24
-
25
- #include <cooperative_groups.h>
26
- #include <cooperative_groups/reduce.h>
27
- namespace cg = cooperative_groups;
28
-
29
- #include "auxiliary.h"
30
- #include "forward.h"
31
- #include "backward.h"
32
-
33
- // Helper function to find the next-highest bit of the MSB
34
- // on the CPU.
35
- uint32_t getHigherMsb(uint32_t n)
36
- {
37
- uint32_t msb = sizeof(n) * 4;
38
- uint32_t step = msb;
39
- while (step > 1)
40
- {
41
- step /= 2;
42
- if (n >> msb)
43
- msb += step;
44
- else
45
- msb -= step;
46
- }
47
- if (n >> msb)
48
- msb++;
49
- return msb;
50
- }
51
-
52
- // Wrapper method to call auxiliary coarse frustum containment test.
53
- // Mark all Gaussians that pass it.
54
- __global__ void checkFrustum(int P,
55
- const float* orig_points,
56
- const float* viewmatrix,
57
- const float* projmatrix,
58
- bool* present)
59
- {
60
- auto idx = cg::this_grid().thread_rank();
61
- if (idx >= P)
62
- return;
63
-
64
- float3 p_view;
65
- present[idx] = in_frustum(idx, orig_points, viewmatrix, projmatrix, false, p_view);
66
- }
67
-
68
- // Generates one key/value pair for all Gaussian / tile overlaps.
69
- // Run once per Gaussian (1:N mapping).
70
- __global__ void duplicateWithKeys(
71
- int P,
72
- const float2* points_xy,
73
- const float* depths,
74
- const uint32_t* offsets,
75
- uint64_t* gaussian_keys_unsorted,
76
- uint32_t* gaussian_values_unsorted,
77
- int* radii,
78
- dim3 grid)
79
- {
80
- auto idx = cg::this_grid().thread_rank();
81
- if (idx >= P)
82
- return;
83
-
84
- // Generate no key/value pair for invisible Gaussians
85
- if (radii[idx] > 0)
86
- {
87
- // Find this Gaussian's offset in buffer for writing keys/values.
88
- uint32_t off = (idx == 0) ? 0 : offsets[idx - 1];
89
- uint2 rect_min, rect_max;
90
-
91
- getRect(points_xy[idx], radii[idx], rect_min, rect_max, grid);
92
-
93
- // For each tile that the bounding rect overlaps, emit a
94
- // key/value pair. The key is | tile ID | depth |,
95
- // and the value is the ID of the Gaussian. Sorting the values
96
- // with this key yields Gaussian IDs in a list, such that they
97
- // are first sorted by tile and then by depth.
98
- for (int y = rect_min.y; y < rect_max.y; y++)
99
- {
100
- for (int x = rect_min.x; x < rect_max.x; x++)
101
- {
102
- uint64_t key = y * grid.x + x;
103
- key <<= 32;
104
- key |= *((uint32_t*)&depths[idx]);
105
- gaussian_keys_unsorted[off] = key;
106
- gaussian_values_unsorted[off] = idx;
107
- off++;
108
- }
109
- }
110
- }
111
- }
112
-
113
- // Check keys to see if it is at the start/end of one tile's range in
114
- // the full sorted list. If yes, write start/end of this tile.
115
- // Run once per instanced (duplicated) Gaussian ID.
116
- __global__ void identifyTileRanges(int L, uint64_t* point_list_keys, uint2* ranges)
117
- {
118
- auto idx = cg::this_grid().thread_rank();
119
- if (idx >= L)
120
- return;
121
-
122
- // Read tile ID from key. Update start/end of tile range if at limit.
123
- uint64_t key = point_list_keys[idx];
124
- uint32_t currtile = key >> 32;
125
- if (idx == 0)
126
- ranges[currtile].x = 0;
127
- else
128
- {
129
- uint32_t prevtile = point_list_keys[idx - 1] >> 32;
130
- if (currtile != prevtile)
131
- {
132
- ranges[prevtile].y = idx;
133
- ranges[currtile].x = idx;
134
- }
135
- }
136
- if (idx == L - 1)
137
- ranges[currtile].y = L;
138
- }
139
-
140
- // Mark Gaussians as visible/invisible, based on view frustum testing
141
- void CudaRasterizer::Rasterizer::markVisible(
142
- int P,
143
- float* means3D,
144
- float* viewmatrix,
145
- float* projmatrix,
146
- bool* present)
147
- {
148
- checkFrustum << <(P + 255) / 256, 256 >> > (
149
- P,
150
- means3D,
151
- viewmatrix, projmatrix,
152
- present);
153
- }
154
-
155
- CudaRasterizer::GeometryState CudaRasterizer::GeometryState::fromChunk(char*& chunk, size_t P)
156
- {
157
- GeometryState geom;
158
- obtain(chunk, geom.depths, P, 128);
159
- obtain(chunk, geom.clamped, P * 3, 128);
160
- obtain(chunk, geom.internal_radii, P, 128);
161
- obtain(chunk, geom.means2D, P, 128);
162
- obtain(chunk, geom.cov3D, P * 6, 128);
163
- obtain(chunk, geom.conic_opacity, P, 128);
164
- obtain(chunk, geom.rgb, P * 3, 128);
165
- obtain(chunk, geom.tiles_touched, P, 128);
166
- cub::DeviceScan::InclusiveSum(nullptr, geom.scan_size, geom.tiles_touched, geom.tiles_touched, P);
167
- obtain(chunk, geom.scanning_space, geom.scan_size, 128);
168
- obtain(chunk, geom.point_offsets, P, 128);
169
- return geom;
170
- }
171
-
172
- CudaRasterizer::ImageState CudaRasterizer::ImageState::fromChunk(char*& chunk, size_t N)
173
- {
174
- ImageState img;
175
- obtain(chunk, img.accum_alpha, N, 128);
176
- obtain(chunk, img.n_contrib, N, 128);
177
- obtain(chunk, img.ranges, N, 128);
178
- return img;
179
- }
180
-
181
- CudaRasterizer::BinningState CudaRasterizer::BinningState::fromChunk(char*& chunk, size_t P)
182
- {
183
- BinningState binning;
184
- obtain(chunk, binning.point_list, P, 128);
185
- obtain(chunk, binning.point_list_unsorted, P, 128);
186
- obtain(chunk, binning.point_list_keys, P, 128);
187
- obtain(chunk, binning.point_list_keys_unsorted, P, 128);
188
- cub::DeviceRadixSort::SortPairs(
189
- nullptr, binning.sorting_size,
190
- binning.point_list_keys_unsorted, binning.point_list_keys,
191
- binning.point_list_unsorted, binning.point_list, P);
192
- obtain(chunk, binning.list_sorting_space, binning.sorting_size, 128);
193
- return binning;
194
- }
195
-
196
- // Forward rendering procedure for differentiable rasterization
197
- // of Gaussians.
198
- int CudaRasterizer::Rasterizer::forward(
199
- std::function<char* (size_t)> geometryBuffer,
200
- std::function<char* (size_t)> binningBuffer,
201
- std::function<char* (size_t)> imageBuffer,
202
- const int P, int D, int M,
203
- const float* background,
204
- const int width, int height,
205
- const float* means3D,
206
- const float* shs,
207
- const float* colors_precomp,
208
- const float* opacities,
209
- const float* scales,
210
- const float scale_modifier,
211
- const float* rotations,
212
- const float* cov3D_precomp,
213
- const float* viewmatrix,
214
- const float* projmatrix,
215
- const float* cam_pos,
216
- const float tan_fovx, float tan_fovy,
217
- const bool prefiltered,
218
- float* out_color,
219
- float* out_depth,
220
- int* radii)
221
- {
222
- const float focal_y = height / (2.0f * tan_fovy);
223
- const float focal_x = width / (2.0f * tan_fovx);
224
-
225
- size_t chunk_size = required<GeometryState>(P);
226
- char* chunkptr = geometryBuffer(chunk_size);
227
- GeometryState geomState = GeometryState::fromChunk(chunkptr, P);
228
-
229
- if (radii == nullptr)
230
- {
231
- radii = geomState.internal_radii;
232
- }
233
-
234
- dim3 tile_grid((width + BLOCK_X - 1) / BLOCK_X, (height + BLOCK_Y - 1) / BLOCK_Y, 1);
235
- dim3 block(BLOCK_X, BLOCK_Y, 1);
236
-
237
- // Dynamically resize image-based auxiliary buffers during training
238
- int img_chunk_size = required<ImageState>(width * height);
239
- char* img_chunkptr = imageBuffer(img_chunk_size);
240
- ImageState imgState = ImageState::fromChunk(img_chunkptr, width * height);
241
-
242
- if (NUM_CHANNELS != 3 && colors_precomp == nullptr)
243
- {
244
- throw std::runtime_error("For non-RGB, provide precomputed Gaussian colors!");
245
- }
246
-
247
- // Run preprocessing per-Gaussian (transformation, bounding, conversion of SHs to RGB)
248
- FORWARD::preprocess(
249
- P, D, M,
250
- means3D,
251
- (glm::vec3*)scales,
252
- scale_modifier,
253
- (glm::vec4*)rotations,
254
- opacities,
255
- shs,
256
- geomState.clamped,
257
- cov3D_precomp,
258
- colors_precomp,
259
- viewmatrix, projmatrix,
260
- (glm::vec3*)cam_pos,
261
- width, height,
262
- focal_x, focal_y,
263
- tan_fovx, tan_fovy,
264
- radii,
265
- geomState.means2D,
266
- geomState.depths,
267
- geomState.cov3D,
268
- geomState.rgb,
269
- geomState.conic_opacity,
270
- tile_grid,
271
- geomState.tiles_touched,
272
- prefiltered
273
- );
274
-
275
- // Compute prefix sum over full list of touched tile counts by Gaussians
276
- // E.g., [2, 3, 0, 2, 1] -> [2, 5, 5, 7, 8]
277
- cub::DeviceScan::InclusiveSum(geomState.scanning_space, geomState.scan_size,
278
- geomState.tiles_touched, geomState.point_offsets, P);
279
-
280
- // Retrieve total number of Gaussian instances to launch and resize aux buffers
281
- int num_rendered;
282
- cudaMemcpy(&num_rendered, geomState.point_offsets + P - 1, sizeof(int), cudaMemcpyDeviceToHost);
283
-
284
- int binning_chunk_size = required<BinningState>(num_rendered);
285
- char* binning_chunkptr = binningBuffer(binning_chunk_size);
286
- BinningState binningState = BinningState::fromChunk(binning_chunkptr, num_rendered);
287
-
288
- // For each instance to be rendered, produce adequate [ tile | depth ] key
289
- // and corresponding dublicated Gaussian indices to be sorted
290
- duplicateWithKeys << <(P + 255) / 256, 256 >> > (
291
- P,
292
- geomState.means2D,
293
- geomState.depths,
294
- geomState.point_offsets,
295
- binningState.point_list_keys_unsorted,
296
- binningState.point_list_unsorted,
297
- radii,
298
- tile_grid
299
- );
300
-
301
- int bit = getHigherMsb(tile_grid.x * tile_grid.y);
302
-
303
- // Sort complete list of (duplicated) Gaussian indices by keys
304
- cub::DeviceRadixSort::SortPairs(
305
- binningState.list_sorting_space,
306
- binningState.sorting_size,
307
- binningState.point_list_keys_unsorted, binningState.point_list_keys,
308
- binningState.point_list_unsorted, binningState.point_list,
309
- num_rendered, 0, 32 + bit);
310
-
311
- cudaMemset(imgState.ranges, 0, tile_grid.x * tile_grid.y * sizeof(uint2));
312
-
313
- // Identify start and end of per-tile workloads in sorted list
314
- if (num_rendered > 0)
315
- identifyTileRanges << <(num_rendered + 255) / 256, 256 >> > (
316
- num_rendered,
317
- binningState.point_list_keys,
318
- imgState.ranges
319
- );
320
-
321
- // Let each tile blend its range of Gaussians independently in parallel
322
- const float* feature_ptr = colors_precomp != nullptr ? colors_precomp : geomState.rgb;
323
- FORWARD::render(
324
- tile_grid, block,
325
- imgState.ranges,
326
- binningState.point_list,
327
- width, height,
328
- geomState.means2D,
329
- feature_ptr,
330
- geomState.depths,
331
- geomState.conic_opacity,
332
- imgState.accum_alpha,
333
- imgState.n_contrib,
334
- background,
335
- out_color,
336
- out_depth);
337
-
338
- return num_rendered;
339
- }
340
-
341
- // Produce necessary gradients for optimization, corresponding
342
- // to forward render pass
343
- void CudaRasterizer::Rasterizer::backward(
344
- const int P, int D, int M, int R,
345
- const float* background,
346
- const int width, int height,
347
- const float* means3D,
348
- const float* shs,
349
- const float* colors_precomp,
350
- const float* scales,
351
- const float scale_modifier,
352
- const float* rotations,
353
- const float* cov3D_precomp,
354
- const float* viewmatrix,
355
- const float* projmatrix,
356
- const float* campos,
357
- const float tan_fovx, float tan_fovy,
358
- const int* radii,
359
- char* geom_buffer,
360
- char* binning_buffer,
361
- char* img_buffer,
362
- const float* dL_dpix,
363
- const float* dL_depths,
364
- float* dL_dmean2D,
365
- float* dL_dconic,
366
- float* dL_dopacity,
367
- float* dL_dcolor,
368
- float* dL_dmean3D,
369
- float* dL_dcov3D,
370
- float* dL_dsh,
371
- float* dL_dscale,
372
- float* dL_drot)
373
- {
374
- GeometryState geomState = GeometryState::fromChunk(geom_buffer, P);
375
- BinningState binningState = BinningState::fromChunk(binning_buffer, R);
376
- ImageState imgState = ImageState::fromChunk(img_buffer, width * height);
377
-
378
- if (radii == nullptr)
379
- {
380
- radii = geomState.internal_radii;
381
- }
382
-
383
- const float focal_y = height / (2.0f * tan_fovy);
384
- const float focal_x = width / (2.0f * tan_fovx);
385
-
386
- const dim3 tile_grid((width + BLOCK_X - 1) / BLOCK_X, (height + BLOCK_Y - 1) / BLOCK_Y, 1);
387
- const dim3 block(BLOCK_X, BLOCK_Y, 1);
388
-
389
- // Compute loss gradients w.r.t. 2D mean position, conic matrix,
390
- // opacity and RGB of Gaussians from per-pixel loss gradients.
391
- // If we were given precomputed colors and not SHs, use them.
392
- const float* color_ptr = (colors_precomp != nullptr) ? colors_precomp : geomState.rgb;
393
- const float* depth_ptr = geomState.depths;
394
- BACKWARD::render(
395
- tile_grid,
396
- block,
397
- imgState.ranges,
398
- binningState.point_list,
399
- width, height,
400
- background,
401
- geomState.means2D,
402
- geomState.conic_opacity,
403
- color_ptr,
404
- depth_ptr,
405
- imgState.accum_alpha,
406
- imgState.n_contrib,
407
- dL_dpix,
408
- dL_depths,
409
- (float3*)dL_dmean2D,
410
- (float4*)dL_dconic,
411
- dL_dopacity,
412
- dL_dcolor);
413
-
414
- // Take care of the rest of preprocessing. Was the precomputed covariance
415
- // given to us or a scales/rot pair? If precomputed, pass that. If not,
416
- // use the one we computed ourselves.
417
- const float* cov3D_ptr = (cov3D_precomp != nullptr) ? cov3D_precomp : geomState.cov3D;
418
- BACKWARD::preprocess(P, D, M,
419
- (float3*)means3D,
420
- radii,
421
- shs,
422
- geomState.clamped,
423
- (glm::vec3*)scales,
424
- (glm::vec4*)rotations,
425
- scale_modifier,
426
- cov3D_ptr,
427
- viewmatrix,
428
- projmatrix,
429
- focal_x, focal_y,
430
- tan_fovx, tan_fovy,
431
- (glm::vec3*)campos,
432
- (float3*)dL_dmean2D,
433
- dL_dconic,
434
- (glm::vec3*)dL_dmean3D,
435
- dL_dcolor,
436
- dL_dcov3D,
437
- dL_dsh,
438
- (glm::vec3*)dL_dscale,
439
- (glm::vec4*)dL_drot);
440
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/cuda_rasterizer/rasterizer_impl.h DELETED
@@ -1,74 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #pragma once
13
-
14
- #include <iostream>
15
- #include <vector>
16
- #include "rasterizer.h"
17
- #include <cuda_runtime_api.h>
18
-
19
- namespace CudaRasterizer
20
- {
21
- template <typename T>
22
- static void obtain(char*& chunk, T*& ptr, std::size_t count, std::size_t alignment)
23
- {
24
- std::size_t offset = (reinterpret_cast<std::uintptr_t>(chunk) + alignment - 1) & ~(alignment - 1);
25
- ptr = reinterpret_cast<T*>(offset);
26
- chunk = reinterpret_cast<char*>(ptr + count);
27
- }
28
-
29
- struct GeometryState
30
- {
31
- size_t scan_size;
32
- float* depths;
33
- char* scanning_space;
34
- bool* clamped;
35
- int* internal_radii;
36
- float2* means2D;
37
- float* cov3D;
38
- float4* conic_opacity;
39
- float* rgb;
40
- uint32_t* point_offsets;
41
- uint32_t* tiles_touched;
42
-
43
- static GeometryState fromChunk(char*& chunk, size_t P);
44
- };
45
-
46
- struct ImageState
47
- {
48
- uint2* ranges;
49
- uint32_t* n_contrib;
50
- float* accum_alpha;
51
-
52
- static ImageState fromChunk(char*& chunk, size_t N);
53
- };
54
-
55
- struct BinningState
56
- {
57
- size_t sorting_size;
58
- uint64_t* point_list_keys_unsorted;
59
- uint64_t* point_list_keys;
60
- uint32_t* point_list_unsorted;
61
- uint32_t* point_list;
62
- char* list_sorting_space;
63
-
64
- static BinningState fromChunk(char*& chunk, size_t P);
65
- };
66
-
67
- template<typename T>
68
- size_t required(size_t P)
69
- {
70
- char* size = nullptr;
71
- T::fromChunk(size, P);
72
- return ((size_t)size) + 128;
73
- }
74
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/diff_gaussian_rasterization/__init__.py DELETED
@@ -1,197 +0,0 @@
1
- #
2
- # Copyright (C) 2023, Inria
3
- # GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- # All rights reserved.
5
- #
6
- # This software is free for non-commercial, research and evaluation use
7
- # under the terms of the LICENSE.md file.
8
- #
9
- # For inquiries contact [email protected]
10
- #
11
-
12
- from typing import NamedTuple
13
- import torch.nn as nn
14
- import torch
15
- from . import _C
16
-
17
- def rasterize_gaussians(
18
- means3D,
19
- means2D,
20
- sh,
21
- colors_precomp,
22
- opacities,
23
- scales,
24
- rotations,
25
- cov3Ds_precomp,
26
- raster_settings,
27
- ):
28
- return _RasterizeGaussians.apply(
29
- means3D,
30
- means2D,
31
- sh,
32
- colors_precomp,
33
- opacities,
34
- scales,
35
- rotations,
36
- cov3Ds_precomp,
37
- raster_settings,
38
- )
39
-
40
- class _RasterizeGaussians(torch.autograd.Function):
41
- @staticmethod
42
- def forward(
43
- ctx,
44
- means3D,
45
- means2D,
46
- sh,
47
- colors_precomp,
48
- opacities,
49
- scales,
50
- rotations,
51
- cov3Ds_precomp,
52
- raster_settings,
53
- ):
54
-
55
- # Restructure arguments the way that the C++ lib expects them
56
- args = (
57
- raster_settings.bg,
58
- means3D,
59
- colors_precomp,
60
- opacities,
61
- scales,
62
- rotations,
63
- raster_settings.scale_modifier,
64
- cov3Ds_precomp,
65
- raster_settings.viewmatrix,
66
- raster_settings.projmatrix,
67
- raster_settings.tanfovx,
68
- raster_settings.tanfovy,
69
- raster_settings.image_height,
70
- raster_settings.image_width,
71
- sh,
72
- raster_settings.sh_degree,
73
- raster_settings.campos,
74
- raster_settings.prefiltered,
75
- )
76
-
77
- # Invoke C++/CUDA rasterizer
78
- num_rendered, color, depth, radii, geomBuffer, binningBuffer, imgBuffer = _C.rasterize_gaussians(*args)
79
-
80
- # Keep relevant tensors for backward
81
- ctx.raster_settings = raster_settings
82
- ctx.num_rendered = num_rendered
83
- ctx.save_for_backward(colors_precomp, means3D, scales, rotations, cov3Ds_precomp, radii, sh, geomBuffer, binningBuffer, imgBuffer)
84
- return color, radii, depth
85
-
86
- @staticmethod
87
- def backward(ctx, grad_out_color, grad_radii, grad_depth):
88
-
89
- # Restore necessary values from context
90
- num_rendered = ctx.num_rendered
91
- raster_settings = ctx.raster_settings
92
- colors_precomp, means3D, scales, rotations, cov3Ds_precomp, radii, sh, geomBuffer, binningBuffer, imgBuffer = ctx.saved_tensors
93
-
94
- # Restructure args as C++ method expects them
95
- args = (raster_settings.bg,
96
- means3D,
97
- radii,
98
- colors_precomp,
99
- scales,
100
- rotations,
101
- raster_settings.scale_modifier,
102
- cov3Ds_precomp,
103
- raster_settings.viewmatrix,
104
- raster_settings.projmatrix,
105
- raster_settings.tanfovx,
106
- raster_settings.tanfovy,
107
- grad_out_color,
108
- grad_depth,
109
- sh,
110
- raster_settings.sh_degree,
111
- raster_settings.campos,
112
- geomBuffer,
113
- num_rendered,
114
- binningBuffer,
115
- imgBuffer)
116
-
117
- # Compute gradients for relevant tensors by invoking backward method
118
- grad_means2D, grad_colors_precomp, grad_opacities, grad_means3D, grad_cov3Ds_precomp, grad_sh, grad_scales, grad_rotations = _C.rasterize_gaussians_backward(*args)
119
-
120
- grads = (
121
- grad_means3D,
122
- grad_means2D,
123
- grad_sh,
124
- grad_colors_precomp,
125
- grad_opacities,
126
- grad_scales,
127
- grad_rotations,
128
- grad_cov3Ds_precomp,
129
- None,
130
- )
131
-
132
- return grads
133
-
134
- class GaussianRasterizationSettings(NamedTuple):
135
- image_height: int
136
- image_width: int
137
- tanfovx : float
138
- tanfovy : float
139
- bg : torch.Tensor
140
- scale_modifier : float
141
- viewmatrix : torch.Tensor
142
- projmatrix : torch.Tensor
143
- sh_degree : int
144
- campos : torch.Tensor
145
- prefiltered : bool
146
-
147
- class GaussianRasterizer(nn.Module):
148
- def __init__(self, raster_settings):
149
- super().__init__()
150
- self.raster_settings = raster_settings
151
-
152
- def markVisible(self, positions):
153
- # Mark visible points (based on frustum culling for camera) with a boolean
154
- with torch.no_grad():
155
- raster_settings = self.raster_settings
156
- visible = _C.mark_visible(
157
- positions,
158
- raster_settings.viewmatrix,
159
- raster_settings.projmatrix)
160
-
161
- return visible
162
-
163
- def forward(self, means3D, means2D, opacities, shs = None, colors_precomp = None, scales = None, rotations = None, cov3D_precomp = None):
164
-
165
- raster_settings = self.raster_settings
166
-
167
- if (shs is None and colors_precomp is None) or (shs is not None and colors_precomp is not None):
168
- raise Exception('Please provide excatly one of either SHs or precomputed colors!')
169
-
170
- if ((scales is None or rotations is None) and cov3D_precomp is None) or ((scales is not None or rotations is not None) and cov3D_precomp is not None):
171
- raise Exception('Please provide exactly one of either scale/rotation pair or precomputed 3D covariance!')
172
-
173
- if shs is None:
174
- shs = torch.Tensor([])
175
- if colors_precomp is None:
176
- colors_precomp = torch.Tensor([])
177
-
178
- if scales is None:
179
- scales = torch.Tensor([])
180
- if rotations is None:
181
- rotations = torch.Tensor([])
182
- if cov3D_precomp is None:
183
- cov3D_precomp = torch.Tensor([])
184
-
185
- # Invoke C++/CUDA rasterization routine
186
- return rasterize_gaussians(
187
- means3D,
188
- means2D,
189
- shs,
190
- colors_precomp,
191
- opacities,
192
- scales,
193
- rotations,
194
- cov3D_precomp,
195
- raster_settings,
196
- )
197
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/ext.cpp DELETED
@@ -1,19 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #include <torch/extension.h>
13
- #include "rasterize_points.h"
14
-
15
- PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
16
- m.def("rasterize_gaussians", &RasterizeGaussiansCUDA);
17
- m.def("rasterize_gaussians_backward", &RasterizeGaussiansBackwardCUDA);
18
- m.def("mark_visible", &markVisible);
19
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/rasterize_points.cu DELETED
@@ -1,217 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #include <math.h>
13
- #include <torch/extension.h>
14
- #include <cstdio>
15
- #include <sstream>
16
- #include <iostream>
17
- #include <tuple>
18
- #include <stdio.h>
19
- #include <cuda_runtime_api.h>
20
- #include <memory>
21
- #include "cuda_rasterizer/config.h"
22
- #include "cuda_rasterizer/rasterizer.h"
23
- #include <fstream>
24
- #include <string>
25
- #include <functional>
26
-
27
- std::function<char*(size_t N)> resizeFunctional(torch::Tensor& t) {
28
- auto lambda = [&t](size_t N) {
29
- t.resize_({(long long)N});
30
- return reinterpret_cast<char*>(t.contiguous().data_ptr());
31
- };
32
- return lambda;
33
- }
34
-
35
- std::tuple<int, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>
36
- RasterizeGaussiansCUDA(
37
- const torch::Tensor& background,
38
- const torch::Tensor& means3D,
39
- const torch::Tensor& colors,
40
- const torch::Tensor& opacity,
41
- const torch::Tensor& scales,
42
- const torch::Tensor& rotations,
43
- const float scale_modifier,
44
- const torch::Tensor& cov3D_precomp,
45
- const torch::Tensor& viewmatrix,
46
- const torch::Tensor& projmatrix,
47
- const float tan_fovx,
48
- const float tan_fovy,
49
- const int image_height,
50
- const int image_width,
51
- const torch::Tensor& sh,
52
- const int degree,
53
- const torch::Tensor& campos,
54
- const bool prefiltered)
55
- {
56
- if (means3D.ndimension() != 2 || means3D.size(1) != 3) {
57
- AT_ERROR("means3D must have dimensions (num_points, 3)");
58
- }
59
-
60
- const int P = means3D.size(0);
61
- const int H = image_height;
62
- const int W = image_width;
63
-
64
- auto int_opts = means3D.options().dtype(torch::kInt32);
65
- auto float_opts = means3D.options().dtype(torch::kFloat32);
66
-
67
- torch::Tensor out_color = torch::full({NUM_CHANNELS, H, W}, 0.0, float_opts);
68
- torch::Tensor out_depth = torch::full({2, H, W}, 0.0, float_opts);
69
- torch::Tensor radii = torch::full({P}, 0, means3D.options().dtype(torch::kInt32));
70
-
71
- torch::Device device(torch::kCUDA);
72
- torch::TensorOptions options(torch::kByte);
73
- torch::Tensor geomBuffer = torch::empty({0}, options.device(device));
74
- torch::Tensor binningBuffer = torch::empty({0}, options.device(device));
75
- torch::Tensor imgBuffer = torch::empty({0}, options.device(device));
76
- std::function<char*(size_t)> geomFunc = resizeFunctional(geomBuffer);
77
- std::function<char*(size_t)> binningFunc = resizeFunctional(binningBuffer);
78
- std::function<char*(size_t)> imgFunc = resizeFunctional(imgBuffer);
79
-
80
- int rendered = 0;
81
- if(P != 0)
82
- {
83
- int M = 0;
84
- if(sh.size(0) != 0)
85
- {
86
- M = sh.size(1);
87
- }
88
-
89
- rendered = CudaRasterizer::Rasterizer::forward(
90
- geomFunc,
91
- binningFunc,
92
- imgFunc,
93
- P, degree, M,
94
- background.contiguous().data<float>(),
95
- W, H,
96
- means3D.contiguous().data<float>(),
97
- sh.contiguous().data_ptr<float>(),
98
- colors.contiguous().data<float>(),
99
- opacity.contiguous().data<float>(),
100
- scales.contiguous().data_ptr<float>(),
101
- scale_modifier,
102
- rotations.contiguous().data_ptr<float>(),
103
- cov3D_precomp.contiguous().data<float>(),
104
- viewmatrix.contiguous().data<float>(),
105
- projmatrix.contiguous().data<float>(),
106
- campos.contiguous().data<float>(),
107
- tan_fovx,
108
- tan_fovy,
109
- prefiltered,
110
- out_color.contiguous().data<float>(),
111
- out_depth.contiguous().data<float>(),
112
- radii.contiguous().data<int>());
113
- }
114
- return std::make_tuple(rendered, out_color, out_depth, radii, geomBuffer, binningBuffer, imgBuffer);
115
- }
116
-
117
- std::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>
118
- RasterizeGaussiansBackwardCUDA(
119
- const torch::Tensor& background,
120
- const torch::Tensor& means3D,
121
- const torch::Tensor& radii,
122
- const torch::Tensor& colors,
123
- const torch::Tensor& scales,
124
- const torch::Tensor& rotations,
125
- const float scale_modifier,
126
- const torch::Tensor& cov3D_precomp,
127
- const torch::Tensor& viewmatrix,
128
- const torch::Tensor& projmatrix,
129
- const float tan_fovx,
130
- const float tan_fovy,
131
- const torch::Tensor& dL_dout_color,
132
- const torch::Tensor& dL_dout_depth,
133
- const torch::Tensor& sh,
134
- const int degree,
135
- const torch::Tensor& campos,
136
- const torch::Tensor& geomBuffer,
137
- const int R,
138
- const torch::Tensor& binningBuffer,
139
- const torch::Tensor& imageBuffer)
140
- {
141
- const int P = means3D.size(0);
142
- const int H = dL_dout_color.size(1);
143
- const int W = dL_dout_color.size(2);
144
-
145
- int M = 0;
146
- if(sh.size(0) != 0)
147
- {
148
- M = sh.size(1);
149
- }
150
-
151
- torch::Tensor dL_dmeans3D = torch::zeros({P, 3}, means3D.options());
152
- torch::Tensor dL_dmeans2D = torch::zeros({P, 3}, means3D.options());
153
- torch::Tensor dL_dcolors = torch::zeros({P, NUM_CHANNELS}, means3D.options());
154
- torch::Tensor dL_dconic = torch::zeros({P, 2, 2}, means3D.options());
155
- torch::Tensor dL_dopacity = torch::zeros({P, 1}, means3D.options());
156
- torch::Tensor dL_dcov3D = torch::zeros({P, 6}, means3D.options());
157
- torch::Tensor dL_dsh = torch::zeros({P, M, 3}, means3D.options());
158
- torch::Tensor dL_dscales = torch::zeros({P, 3}, means3D.options());
159
- torch::Tensor dL_drotations = torch::zeros({P, 4}, means3D.options());
160
-
161
- if(P != 0)
162
- {
163
- CudaRasterizer::Rasterizer::backward(P, degree, M, R,
164
- background.contiguous().data<float>(),
165
- W, H,
166
- means3D.contiguous().data<float>(),
167
- sh.contiguous().data<float>(),
168
- colors.contiguous().data<float>(),
169
- scales.data_ptr<float>(),
170
- scale_modifier,
171
- rotations.data_ptr<float>(),
172
- cov3D_precomp.contiguous().data<float>(),
173
- viewmatrix.contiguous().data<float>(),
174
- projmatrix.contiguous().data<float>(),
175
- campos.contiguous().data<float>(),
176
- tan_fovx,
177
- tan_fovy,
178
- radii.contiguous().data<int>(),
179
- reinterpret_cast<char*>(geomBuffer.contiguous().data_ptr()),
180
- reinterpret_cast<char*>(binningBuffer.contiguous().data_ptr()),
181
- reinterpret_cast<char*>(imageBuffer.contiguous().data_ptr()),
182
- dL_dout_color.contiguous().data<float>(),
183
- dL_dout_depth.contiguous().data<float>(),
184
- dL_dmeans2D.contiguous().data<float>(),
185
- dL_dconic.contiguous().data<float>(),
186
- dL_dopacity.contiguous().data<float>(),
187
- dL_dcolors.contiguous().data<float>(),
188
- dL_dmeans3D.contiguous().data<float>(),
189
- dL_dcov3D.contiguous().data<float>(),
190
- dL_dsh.contiguous().data<float>(),
191
- dL_dscales.contiguous().data<float>(),
192
- dL_drotations.contiguous().data<float>());
193
- }
194
-
195
- return std::make_tuple(dL_dmeans2D, dL_dcolors, dL_dopacity, dL_dmeans3D, dL_dcov3D, dL_dsh, dL_dscales, dL_drotations);
196
- }
197
-
198
- torch::Tensor markVisible(
199
- torch::Tensor& means3D,
200
- torch::Tensor& viewmatrix,
201
- torch::Tensor& projmatrix)
202
- {
203
- const int P = means3D.size(0);
204
-
205
- torch::Tensor present = torch::full({P}, false, means3D.options().dtype(at::kBool));
206
-
207
- if(P != 0)
208
- {
209
- CudaRasterizer::Rasterizer::markVisible(P,
210
- means3D.contiguous().data<float>(),
211
- viewmatrix.contiguous().data<float>(),
212
- projmatrix.contiguous().data<float>(),
213
- present.contiguous().data<bool>());
214
- }
215
-
216
- return present;
217
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/rasterize_points.h DELETED
@@ -1,66 +0,0 @@
1
- /*
2
- * Copyright (C) 2023, Inria
3
- * GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- * All rights reserved.
5
- *
6
- * This software is free for non-commercial, research and evaluation use
7
- * under the terms of the LICENSE.md file.
8
- *
9
- * For inquiries contact [email protected]
10
- */
11
-
12
- #pragma once
13
- #include <torch/extension.h>
14
- #include <cstdio>
15
- #include <tuple>
16
- #include <string>
17
-
18
- std::tuple<int, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>
19
- RasterizeGaussiansCUDA(
20
- const torch::Tensor& background,
21
- const torch::Tensor& means3D,
22
- const torch::Tensor& colors,
23
- const torch::Tensor& opacity,
24
- const torch::Tensor& scales,
25
- const torch::Tensor& rotations,
26
- const float scale_modifier,
27
- const torch::Tensor& cov3D_precomp,
28
- const torch::Tensor& viewmatrix,
29
- const torch::Tensor& projmatrix,
30
- const float tan_fovx,
31
- const float tan_fovy,
32
- const int image_height,
33
- const int image_width,
34
- const torch::Tensor& sh,
35
- const int degree,
36
- const torch::Tensor& campos,
37
- const bool prefiltered);
38
-
39
- std::tuple<torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor, torch::Tensor>
40
- RasterizeGaussiansBackwardCUDA(
41
- const torch::Tensor& background,
42
- const torch::Tensor& means3D,
43
- const torch::Tensor& radii,
44
- const torch::Tensor& colors,
45
- const torch::Tensor& scales,
46
- const torch::Tensor& rotations,
47
- const float scale_modifier,
48
- const torch::Tensor& cov3D_precomp,
49
- const torch::Tensor& viewmatrix,
50
- const torch::Tensor& projmatrix,
51
- const float tan_fovx,
52
- const float tan_fovy,
53
- const torch::Tensor& dL_dout_color,
54
- const torch::Tensor& dL_dout_depth,
55
- const torch::Tensor& sh,
56
- const int degree,
57
- const torch::Tensor& campos,
58
- const torch::Tensor& geomBuffer,
59
- const int R,
60
- const torch::Tensor& binningBuffer,
61
- const torch::Tensor& imageBuffer);
62
-
63
- torch::Tensor markVisible(
64
- torch::Tensor& means3D,
65
- torch::Tensor& viewmatrix,
66
- torch::Tensor& projmatrix);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/setup.py DELETED
@@ -1,34 +0,0 @@
1
- #
2
- # Copyright (C) 2023, Inria
3
- # GRAPHDECO research group, https://team.inria.fr/graphdeco
4
- # All rights reserved.
5
- #
6
- # This software is free for non-commercial, research and evaluation use
7
- # under the terms of the LICENSE.md file.
8
- #
9
- # For inquiries contact [email protected]
10
- #
11
-
12
- from setuptools import setup
13
- from torch.utils.cpp_extension import CUDAExtension, BuildExtension
14
- import os
15
- os.path.dirname(os.path.abspath(__file__))
16
-
17
- setup(
18
- name="diff_gaussian_rasterization",
19
- packages=['diff_gaussian_rasterization'],
20
- ext_modules=[
21
- CUDAExtension(
22
- name="diff_gaussian_rasterization._C",
23
- sources=[
24
- "cuda_rasterizer/rasterizer_impl.cu",
25
- "cuda_rasterizer/forward.cu",
26
- "cuda_rasterizer/backward.cu",
27
- "rasterize_points.cu",
28
- "ext.cpp"],
29
- extra_compile_args={"nvcc": ["-I" + os.path.join(os.path.dirname(os.path.abspath(__file__)), "third_party/glm/")]})
30
- ],
31
- cmdclass={
32
- 'build_ext': BuildExtension
33
- }
34
- )
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/.appveyor.yml DELETED
@@ -1,92 +0,0 @@
1
- shallow_clone: true
2
-
3
- platform:
4
- - x86
5
- - x64
6
-
7
- configuration:
8
- - Debug
9
- - Release
10
-
11
- image:
12
- - Visual Studio 2013
13
- - Visual Studio 2015
14
- - Visual Studio 2017
15
- - Visual Studio 2019
16
-
17
- environment:
18
- matrix:
19
- - GLM_ARGUMENTS: -DGLM_TEST_FORCE_PURE=ON
20
- - GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
21
- - GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
22
- - GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_CXX_14=ON
23
- - GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_CXX_17=ON
24
-
25
- matrix:
26
- exclude:
27
- - image: Visual Studio 2013
28
- GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
29
- - image: Visual Studio 2013
30
- GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_CXX_14=ON
31
- - image: Visual Studio 2013
32
- GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_CXX_17=ON
33
- - image: Visual Studio 2013
34
- configuration: Debug
35
- - image: Visual Studio 2015
36
- GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_SSE2=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON
37
- - image: Visual Studio 2015
38
- GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_CXX_14=ON
39
- - image: Visual Studio 2015
40
- GLM_ARGUMENTS: -DGLM_TEST_ENABLE_SIMD_AVX=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_CXX_17=ON
41
- - image: Visual Studio 2015
42
- platform: x86
43
- - image: Visual Studio 2015
44
- configuration: Debug
45
- - image: Visual Studio 2017
46
- platform: x86
47
- - image: Visual Studio 2017
48
- configuration: Debug
49
- - image: Visual Studio 2019
50
- platform: x64
51
-
52
- branches:
53
- only:
54
- - master
55
-
56
- before_build:
57
- - ps: |
58
- mkdir build
59
- cd build
60
-
61
- if ("$env:APPVEYOR_JOB_NAME" -match "Image: Visual Studio 2013") {
62
- $env:generator="Visual Studio 12 2013"
63
- }
64
- if ("$env:APPVEYOR_JOB_NAME" -match "Image: Visual Studio 2015") {
65
- $env:generator="Visual Studio 14 2015"
66
- }
67
- if ("$env:APPVEYOR_JOB_NAME" -match "Image: Visual Studio 2017") {
68
- $env:generator="Visual Studio 15 2017"
69
- }
70
- if ("$env:APPVEYOR_JOB_NAME" -match "Image: Visual Studio 2019") {
71
- $env:generator="Visual Studio 16 2019"
72
- }
73
- if ($env:PLATFORM -eq "x64") {
74
- $env:generator="$env:generator Win64"
75
- }
76
- echo generator="$env:generator"
77
- cmake .. -G "$env:generator" -DCMAKE_INSTALL_PREFIX="$env:APPVEYOR_BUILD_FOLDER/install" -DGLM_QUIET=ON -DGLM_TEST_ENABLE=ON "$env:GLM_ARGUMENTS"
78
-
79
- build_script:
80
- - cmake --build . --parallel --config %CONFIGURATION% -- /m /v:minimal
81
- - cmake --build . --target install --parallel --config %CONFIGURATION% -- /m /v:minimal
82
-
83
- test_script:
84
- - ctest --parallel 4 --verbose -C %CONFIGURATION%
85
- - cd ..
86
- - ps: |
87
- mkdir build_test_cmake
88
- cd build_test_cmake
89
- cmake ..\test\cmake\ -G "$env:generator" -DCMAKE_PREFIX_PATH="$env:APPVEYOR_BUILD_FOLDER/install"
90
- - cmake --build . --parallel --config %CONFIGURATION% -- /m /v:minimal
91
-
92
- deploy: off
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/.travis.yml DELETED
@@ -1,388 +0,0 @@
1
- language: cpp
2
-
3
- branches:
4
- only:
5
- - master
6
- - stable
7
-
8
- jobs:
9
- include:
10
- - name: "Xcode 7.3 C++98 pure release"
11
- os: osx
12
- osx_image: xcode7.3
13
- env:
14
- - MATRIX_EVAL=""
15
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_FORCE_PURE=ON"
16
-
17
- - name: "Xcode 7.3 C++98 sse2 release"
18
- os: osx
19
- osx_image: xcode7.3
20
- env:
21
- - MATRIX_EVAL=""
22
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE2=ON"
23
-
24
- - name: "Xcode 7.3 C++98 ms release"
25
- os: osx
26
- osx_image: xcode7.3
27
- env:
28
- - MATRIX_EVAL=""
29
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON"
30
-
31
- - name: "XCode 7.3 C++11 pure release"
32
- os: osx
33
- osx_image: xcode7.3
34
- env:
35
- - MATRIX_EVAL=""
36
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_FORCE_PURE=ON"
37
-
38
- - name: "XCode 7.3 C++11 sse2 release"
39
- os: osx
40
- osx_image: xcode7.3
41
- env:
42
- - MATRIX_EVAL=""
43
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE3=ON"
44
-
45
- - name: "XCode 10.3 C++11 sse2 release"
46
- os: osx
47
- osx_image: xcode10.3
48
- env:
49
- - MATRIX_EVAL=""
50
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE3=ON"
51
-
52
- - name: "XCode 12.2 C++11 sse2 release"
53
- os: osx
54
- osx_image: xcode12.2
55
- env:
56
- - MATRIX_EVAL=""
57
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE3=ON"
58
- - CTEST_ENV="--parallel 4 --output-on-failure"
59
- - CMAKE_ENV="--parallel"
60
-
61
- - name: "XCode 12.2 C++11 sse2 debug"
62
- os: osx
63
- osx_image: xcode12.2
64
- env:
65
- - MATRIX_EVAL=""
66
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE3=ON"
67
- - CTEST_ENV="--parallel 4 --output-on-failure"
68
- - CMAKE_ENV="--parallel"
69
-
70
- - name: "XCode 12.2 C++11 avx debug"
71
- os: osx
72
- osx_image: xcode12.2
73
- env:
74
- - MATRIX_EVAL=""
75
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_AVX=ON"
76
- - CTEST_ENV="--parallel 4 --output-on-failure"
77
- - CMAKE_ENV="--parallel"
78
-
79
- - name: "XCode 12.2 C++14 avx debug"
80
- os: osx
81
- osx_image: xcode12.2
82
- env:
83
- - MATRIX_EVAL=""
84
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_14=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_AVX=ON"
85
- - CTEST_ENV="--parallel 4 --output-on-failure"
86
- - CMAKE_ENV="--parallel"
87
-
88
- - name: "XCode 12.2 C++14 pure debug"
89
- os: osx
90
- osx_image: xcode12.2
91
- env:
92
- - MATRIX_EVAL=""
93
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_14=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_FORCE_PURE=ON"
94
- - CTEST_ENV="--parallel 4 --output-on-failure"
95
- - CMAKE_ENV="--parallel"
96
-
97
- - name: "XCode 12.2 C++17 pure debug"
98
- os: osx
99
- osx_image: xcode12.2
100
- env:
101
- - MATRIX_EVAL=""
102
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_FORCE_PURE=ON"
103
- - CTEST_ENV="--parallel 4 --output-on-failure"
104
- - CMAKE_ENV="--parallel"
105
-
106
- - name: "XCode 12.2 C++17 sse2 debug"
107
- os: osx
108
- osx_image: xcode12.2
109
- env:
110
- - MATRIX_EVAL=""
111
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE2=ON"
112
- - CTEST_ENV="--parallel 4 --output-on-failure"
113
- - CMAKE_ENV="--parallel"
114
-
115
- - name: "XCode 12.2 C++17 sse2 release"
116
- os: osx
117
- osx_image: xcode12.2
118
- env:
119
- - MATRIX_EVAL=""
120
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE2=ON"
121
- - CTEST_ENV="--parallel 4 --output-on-failure"
122
- - CMAKE_ENV="--parallel"
123
-
124
- - name: "XCode 12.2 C++17 avx release"
125
- os: osx
126
- osx_image: xcode12.2
127
- env:
128
- - MATRIX_EVAL=""
129
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_AVX=ON"
130
- - CTEST_ENV="--parallel 4 --output-on-failure"
131
- - CMAKE_ENV="--parallel"
132
-
133
- - name: "GCC 4.9 C++98 pure release"
134
- os: linux
135
- dist: Xenial
136
- addons:
137
- apt:
138
- sources:
139
- - ubuntu-toolchain-r-test
140
- packages:
141
- - g++-4.9
142
- env:
143
- - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
144
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_FORCE_PURE=ON"
145
- - CTEST_ENV="--parallel 4 --output-on-failure"
146
- - CMAKE_ENV="--parallel"
147
-
148
- - name: "GCC 4.9 C++98 pure debug"
149
- os: linux
150
- dist: Xenial
151
- addons:
152
- apt:
153
- sources:
154
- - ubuntu-toolchain-r-test
155
- packages:
156
- - g++-4.9
157
- env:
158
- - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
159
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_FORCE_PURE=ON"
160
- - CTEST_ENV="--parallel 4 --output-on-failure"
161
- - CMAKE_ENV="--parallel"
162
-
163
- - name: "GCC 4.9 C++98 ms debug"
164
- os: linux
165
- dist: Xenial
166
- addons:
167
- apt:
168
- sources:
169
- - ubuntu-toolchain-r-test
170
- packages:
171
- - g++-4.9
172
- env:
173
- - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
174
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_98=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON"
175
- - CTEST_ENV="--parallel 4 --output-on-failure"
176
- - CMAKE_ENV="--parallel"
177
-
178
- - name: "GCC 4.9 C++11 ms debug"
179
- os: linux
180
- dist: Xenial
181
- addons:
182
- apt:
183
- sources:
184
- - ubuntu-toolchain-r-test
185
- packages:
186
- - g++-4.9
187
- env:
188
- - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
189
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON"
190
- - CTEST_ENV="--parallel 4 --output-on-failure"
191
- - CMAKE_ENV="--parallel"
192
-
193
- - name: "GCC 4.9 C++11 pure debug"
194
- os: linux
195
- dist: Xenial
196
- addons:
197
- apt:
198
- sources:
199
- - ubuntu-toolchain-r-test
200
- packages:
201
- - g++-4.9
202
- env:
203
- - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
204
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_11=ON -DGLM_TEST_FORCE_PURE=ON"
205
- - CTEST_ENV="--parallel 4 --output-on-failure"
206
- - CMAKE_ENV="--parallel"
207
-
208
- - name: "GCC 6 C++14 pure debug"
209
- os: linux
210
- dist: bionic
211
- addons:
212
- apt:
213
- sources:
214
- - ubuntu-toolchain-r-test
215
- packages:
216
- - g++-6
217
- env:
218
- - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
219
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_14=ON -DGLM_TEST_FORCE_PURE=ON"
220
- - CTEST_ENV="--parallel 4 --output-on-failure"
221
- - CMAKE_ENV="--parallel"
222
-
223
- - name: "GCC 6 C++14 ms debug"
224
- os: linux
225
- dist: bionic
226
- addons:
227
- apt:
228
- sources:
229
- - ubuntu-toolchain-r-test
230
- packages:
231
- - g++-6
232
- env:
233
- - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
234
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_14=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON"
235
- - CTEST_ENV="--parallel 4 --output-on-failure"
236
- - CMAKE_ENV="--parallel"
237
-
238
- - name: "GCC 7 C++17 ms debug"
239
- os: linux
240
- dist: bionic
241
- addons:
242
- apt:
243
- sources:
244
- - ubuntu-toolchain-r-test
245
- packages:
246
- - g++-7
247
- env:
248
- - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
249
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON"
250
- - CTEST_ENV="--parallel 4 --output-on-failure"
251
- - CMAKE_ENV="--parallel"
252
-
253
- - name: "GCC 7 C++17 pure debug"
254
- os: linux
255
- dist: bionic
256
- addons:
257
- apt:
258
- sources:
259
- - ubuntu-toolchain-r-test
260
- packages:
261
- - g++-7
262
- env:
263
- - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
264
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_FORCE_PURE=ON"
265
- - CTEST_ENV="--parallel 4 --output-on-failure"
266
- - CMAKE_ENV="--parallel"
267
-
268
- - name: "GCC 10 C++17 pure debug"
269
- os: linux
270
- dist: bionic
271
- addons:
272
- apt:
273
- sources:
274
- - ubuntu-toolchain-r-test
275
- packages:
276
- - g++-10
277
- env:
278
- - MATRIX_EVAL="CC=gcc-10 && CXX=g++-10"
279
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_FORCE_PURE=ON"
280
- - CTEST_ENV="--parallel 4 --output-on-failure"
281
- - CMAKE_ENV="--parallel"
282
-
283
- - name: "GCC 10 C++17 pure release"
284
- os: linux
285
- dist: bionic
286
- addons:
287
- apt:
288
- sources:
289
- - ubuntu-toolchain-r-test
290
- packages:
291
- - g++-10
292
- env:
293
- - MATRIX_EVAL="CC=gcc-10 && CXX=g++-10"
294
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_FORCE_PURE=ON"
295
- - CTEST_ENV="--parallel 4 --output-on-failure"
296
- - CMAKE_ENV="--parallel"
297
-
298
- - name: "Clang C++14 pure release"
299
- os: linux
300
- dist: Xenial
301
- env:
302
- - MATRIX_EVAL="CC=clang && CXX=clang++"
303
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_14=ON -DGLM_TEST_FORCE_PURE=ON"
304
- - CTEST_ENV="--parallel 4 --output-on-failure"
305
- - CMAKE_ENV="--parallel"
306
-
307
- - name: "Clang C++14 pure debug"
308
- os: linux
309
- dist: Xenial
310
- env:
311
- - MATRIX_EVAL="CC=clang && CXX=clang++"
312
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_14=ON -DGLM_TEST_FORCE_PURE=ON"
313
- - CTEST_ENV="--parallel 4 --output-on-failure"
314
- - CMAKE_ENV="--parallel"
315
-
316
- - name: "Clang C++14 sse2 debug"
317
- os: linux
318
- dist: Xenial
319
- env:
320
- - MATRIX_EVAL="CC=clang && CXX=clang++"
321
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_14=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE2=ON"
322
- - CTEST_ENV="--parallel 4 --output-on-failure"
323
- - CMAKE_ENV="--parallel"
324
-
325
- - name: "Clang C++14 sse2 debug"
326
- os: linux
327
- dist: focal
328
- env:
329
- - MATRIX_EVAL="CC=clang && CXX=clang++"
330
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_14=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE2=ON"
331
- - CTEST_ENV="--parallel 4 --output-on-failure"
332
- - CMAKE_ENV="--parallel"
333
-
334
- - name: "Clang C++17 sse2 debug"
335
- os: linux
336
- dist: focal
337
- env:
338
- - MATRIX_EVAL="CC=clang && CXX=clang++"
339
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_SSE2=ON"
340
- - CTEST_ENV="--parallel 4 --output-on-failure"
341
- - CMAKE_ENV="--parallel"
342
-
343
- - name: "Clang C++17 avx2 debug"
344
- os: linux
345
- dist: focal
346
- env:
347
- - MATRIX_EVAL="CC=clang && CXX=clang++"
348
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_ENABLE_LANG_EXTENSIONS=ON -DGLM_TEST_ENABLE_SIMD_AVX2=ON"
349
- - CTEST_ENV="--parallel 4 --output-on-failure"
350
- - CMAKE_ENV="--parallel"
351
-
352
- - name: "Clang C++17 pure debug"
353
- os: linux
354
- dist: focal
355
- env:
356
- - MATRIX_EVAL="CC=clang && CXX=clang++"
357
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Debug -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_FORCE_PURE=ON"
358
- - CTEST_ENV="--parallel 4 --output-on-failure"
359
- - CMAKE_ENV="--parallel"
360
-
361
- - name: "Clang C++17 pure release"
362
- os: linux
363
- dist: focal
364
- env:
365
- - MATRIX_EVAL="CC=clang && CXX=clang++"
366
- - CMAKE_BUILD_ENV="-DCMAKE_BUILD_TYPE=Release -DGLM_TEST_ENABLE=ON -DGLM_TEST_ENABLE_CXX_17=ON -DGLM_TEST_FORCE_PURE=ON"
367
- - CTEST_ENV="--parallel 4 --output-on-failure"
368
- - CMAKE_ENV="--parallel"
369
-
370
- before_script:
371
- - cmake --version
372
- - eval "${MATRIX_EVAL}"
373
-
374
- script:
375
- - ${CC} --version
376
- - mkdir ./build
377
- - cd ./build
378
- - cmake -DCMAKE_INSTALL_PREFIX=$TRAVIS_BUILD_DIR/install -DCMAKE_CXX_COMPILER=$COMPILER ${CMAKE_BUILD_ENV} ..
379
- - cmake --build . ${CMAKE_ENV}
380
- - ctest ${CTEST_ENV}
381
- - cmake --build . --target install ${CMAKE_ENV}
382
- - cd $TRAVIS_BUILD_DIR
383
- - mkdir ./build_test_cmake
384
- - cd ./build_test_cmake
385
- - cmake -DCMAKE_CXX_COMPILER=$COMPILER $TRAVIS_BUILD_DIR/test/cmake/ -DCMAKE_PREFIX_PATH=$TRAVIS_BUILD_DIR/install
386
- - cmake --build .
387
-
388
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/CMakeLists.txt DELETED
@@ -1,45 +0,0 @@
1
- cmake_minimum_required(VERSION 3.2 FATAL_ERROR)
2
- cmake_policy(VERSION 3.2)
3
-
4
-
5
- file(READ "glm/detail/setup.hpp" GLM_SETUP_FILE)
6
- string(REGEX MATCH "#define[ ]+GLM_VERSION_MAJOR[ ]+([0-9]+)" _ ${GLM_SETUP_FILE})
7
- set(GLM_VERSION_MAJOR "${CMAKE_MATCH_1}")
8
- string(REGEX MATCH "#define[ ]+GLM_VERSION_MINOR[ ]+([0-9]+)" _ ${GLM_SETUP_FILE})
9
- set(GLM_VERSION_MINOR "${CMAKE_MATCH_1}")
10
- string(REGEX MATCH "#define[ ]+GLM_VERSION_PATCH[ ]+([0-9]+)" _ ${GLM_SETUP_FILE})
11
- set(GLM_VERSION_PATCH "${CMAKE_MATCH_1}")
12
- string(REGEX MATCH "#define[ ]+GLM_VERSION_REVISION[ ]+([0-9]+)" _ ${GLM_SETUP_FILE})
13
- set(GLM_VERSION_REVISION "${CMAKE_MATCH_1}")
14
-
15
- set(GLM_VERSION ${GLM_VERSION_MAJOR}.${GLM_VERSION_MINOR}.${GLM_VERSION_PATCH}.${GLM_VERSION_REVISION})
16
- project(glm VERSION ${GLM_VERSION} LANGUAGES CXX)
17
- message(STATUS "GLM: Version " ${GLM_VERSION})
18
-
19
- add_subdirectory(glm)
20
- add_library(glm::glm ALIAS glm)
21
-
22
- if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
23
-
24
- include(CPack)
25
- install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} PATTERN "CMakeLists.txt" EXCLUDE)
26
- install(EXPORT glm FILE glmConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glm NAMESPACE glm::)
27
- include(CMakePackageConfigHelpers)
28
- write_basic_package_version_file("glmConfigVersion.cmake" COMPATIBILITY AnyNewerVersion)
29
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/glm)
30
-
31
- include(CTest)
32
- if(BUILD_TESTING)
33
- add_subdirectory(test)
34
- endif()
35
-
36
- endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
37
-
38
- if (NOT TARGET uninstall)
39
- configure_file(cmake/cmake_uninstall.cmake.in
40
- cmake_uninstall.cmake IMMEDIATE @ONLY)
41
-
42
- add_custom_target(uninstall
43
- "${CMAKE_COMMAND}" -P
44
- "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake")
45
- endif()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/cmake/cmake_uninstall.cmake.in DELETED
@@ -1,21 +0,0 @@
1
- if(NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
2
- message(FATAL_ERROR "Cannot find install manifest: @CMAKE_BINARY_DIR@/install_manifest.txt")
3
- endif()
4
-
5
- file(READ "@CMAKE_BINARY_DIR@/install_manifest.txt" files)
6
- string(REGEX REPLACE "\n" ";" files "${files}")
7
- foreach(file ${files})
8
- message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
9
- if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
10
- exec_program(
11
- "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
12
- OUTPUT_VARIABLE rm_out
13
- RETURN_VALUE rm_retval
14
- )
15
- if(NOT "${rm_retval}" STREQUAL 0)
16
- message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
17
- endif()
18
- else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
19
- message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
20
- endif()
21
- endforeach()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/copying.txt DELETED
@@ -1,54 +0,0 @@
1
- ================================================================================
2
- OpenGL Mathematics (GLM)
3
- --------------------------------------------------------------------------------
4
- GLM is licensed under The Happy Bunny License or MIT License
5
-
6
- ================================================================================
7
- The Happy Bunny License (Modified MIT License)
8
- --------------------------------------------------------------------------------
9
- Copyright (c) 2005 - G-Truc Creation
10
-
11
- Permission is hereby granted, free of charge, to any person obtaining a copy
12
- of this software and associated documentation files (the "Software"), to deal
13
- in the Software without restriction, including without limitation the rights
14
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
- copies of the Software, and to permit persons to whom the Software is
16
- furnished to do so, subject to the following conditions:
17
-
18
- The above copyright notice and this permission notice shall be included in
19
- all copies or substantial portions of the Software.
20
-
21
- Restrictions:
22
- By making use of the Software for military purposes, you choose to make a
23
- Bunny unhappy.
24
-
25
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
26
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
27
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
28
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
29
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
30
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
31
- THE SOFTWARE.
32
-
33
- ================================================================================
34
- The MIT License
35
- --------------------------------------------------------------------------------
36
- Copyright (c) 2005 - G-Truc Creation
37
-
38
- Permission is hereby granted, free of charge, to any person obtaining a copy
39
- of this software and associated documentation files (the "Software"), to deal
40
- in the Software without restriction, including without limitation the rights
41
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
42
- copies of the Software, and to permit persons to whom the Software is
43
- furnished to do so, subject to the following conditions:
44
-
45
- The above copyright notice and this permission notice shall be included in
46
- all copies or substantial portions of the Software.
47
-
48
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
49
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
50
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
51
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
53
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
54
- THE SOFTWARE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00001_source.html DELETED
@@ -1,493 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: _features.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_033f5edb0915b828d2c46ed4804e5503.html">detail</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">_features.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
92
- <div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
93
- <div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// #define GLM_CXX98_EXCEPTIONS</span></div>
94
- <div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// #define GLM_CXX98_RTTI</span></div>
95
- <div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div>
96
- <div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// #define GLM_CXX11_RVALUE_REFERENCES</span></div>
97
- <div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// Rvalue references - GCC 4.3</span></div>
98
- <div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html</span></div>
99
- <div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div>
100
- <div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// GLM_CXX11_TRAILING_RETURN</span></div>
101
- <div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Rvalue references for *this - GCC not supported</span></div>
102
- <div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2439.htm</span></div>
103
- <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
104
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
105
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Initialization of class objects by rvalues - GCC any</span></div>
106
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1610.html</span></div>
107
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
108
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
109
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// Non-static data member initializers - GCC 4.7</span></div>
110
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2756.htm</span></div>
111
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
112
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment">// #define GLM_CXX11_VARIADIC_TEMPLATE</span></div>
113
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// Variadic templates - GCC 4.3</span></div>
114
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf</span></div>
115
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
116
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">//</span></div>
117
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment">// Extending variadic template template parameters - GCC 4.4</span></div>
118
- <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2555.pdf</span></div>
119
- <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
120
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment">// #define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
121
- <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">// Initializer lists - GCC 4.4</span></div>
122
- <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2672.htm</span></div>
123
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
124
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment">// #define GLM_CXX11_STATIC_ASSERT</span></div>
125
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// Static assertions - GCC 4.3</span></div>
126
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1720.html</span></div>
127
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
128
- <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
129
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="comment">// auto-typed variables - GCC 4.4</span></div>
130
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1984.pdf</span></div>
131
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
132
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
133
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Multi-declarator auto - GCC 4.4</span></div>
134
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1737.pdf</span></div>
135
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
136
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
137
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">// Removal of auto as a storage-class specifier - GCC 4.4</span></div>
138
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2546.htm</span></div>
139
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
140
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="comment">// #define GLM_CXX11_AUTO_TYPE</span></div>
141
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="comment">// New function declarator syntax - GCC 4.4</span></div>
142
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm</span></div>
143
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
144
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="comment">// #define GLM_CXX11_LAMBDAS</span></div>
145
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="comment">// New wording for C++0x lambdas - GCC 4.5</span></div>
146
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2927.pdf</span></div>
147
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
148
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="comment">// #define GLM_CXX11_DECLTYPE</span></div>
149
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="comment">// Declared type of an expression - GCC 4.3</span></div>
150
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2343.pdf</span></div>
151
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
152
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="comment">//</span></div>
153
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="comment">// Right angle brackets - GCC 4.3</span></div>
154
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1757.html</span></div>
155
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
156
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="comment">//</span></div>
157
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="comment">// Default template arguments for function templates DR226 GCC 4.3</span></div>
158
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#226</span></div>
159
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div>
160
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="comment">//</span></div>
161
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="comment">// Solving the SFINAE problem for expressions DR339 GCC 4.4</span></div>
162
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2634.html</span></div>
163
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
164
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="comment">// #define GLM_CXX11_ALIAS_TEMPLATE</span></div>
165
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="comment">// Template aliases N2258 GCC 4.7</span></div>
166
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2258.pdf</span></div>
167
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div>
168
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="comment">//</span></div>
169
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="comment">// Extern templates N1987 Yes</span></div>
170
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1987.htm</span></div>
171
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
172
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="comment">// #define GLM_CXX11_NULLPTR</span></div>
173
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="comment">// Null pointer constant N2431 GCC 4.6</span></div>
174
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2431.pdf</span></div>
175
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div>
176
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="comment">// #define GLM_CXX11_STRONG_ENUMS</span></div>
177
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="comment">// Strongly-typed enums N2347 GCC 4.4</span></div>
178
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2347.pdf</span></div>
179
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div>
180
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="comment">//</span></div>
181
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="comment">// Forward declarations for enums N2764 GCC 4.6</span></div>
182
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2764.pdf</span></div>
183
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
184
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">//</span></div>
185
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="comment">// Generalized attributes N2761 GCC 4.8</span></div>
186
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2761.pdf</span></div>
187
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
188
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="comment">//</span></div>
189
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="comment">// Generalized constant expressions N2235 GCC 4.6</span></div>
190
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2235.pdf</span></div>
191
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
192
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="comment">//</span></div>
193
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="comment">// Alignment support N2341 GCC 4.8</span></div>
194
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2341.pdf</span></div>
195
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
196
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">// #define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
197
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="comment">// Delegating constructors N1986 GCC 4.7</span></div>
198
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1986.pdf</span></div>
199
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
200
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="comment">//</span></div>
201
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="comment">// Inheriting constructors N2540 GCC 4.8</span></div>
202
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2540.htm</span></div>
203
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
204
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="comment">// #define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
205
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="comment">// Explicit conversion operators N2437 GCC 4.5</span></div>
206
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2437.pdf</span></div>
207
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div>
208
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="comment">//</span></div>
209
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="comment">// New character types N2249 GCC 4.4</span></div>
210
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2249.html</span></div>
211
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
212
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;<span class="comment">//</span></div>
213
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="comment">// Unicode string literals N2442 GCC 4.5</span></div>
214
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
215
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
216
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="comment">//</span></div>
217
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="comment">// Raw string literals N2442 GCC 4.5</span></div>
218
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2442.htm</span></div>
219
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
220
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="comment">//</span></div>
221
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="comment">// Universal character name literals N2170 GCC 4.5</span></div>
222
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2170.html</span></div>
223
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div>
224
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="comment">// #define GLM_CXX11_USER_LITERALS</span></div>
225
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="comment">// User-defined literals N2765 GCC 4.7</span></div>
226
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2765.pdf</span></div>
227
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
228
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="comment">//</span></div>
229
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;<span class="comment">// Standard Layout Types N2342 GCC 4.5</span></div>
230
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2342.htm</span></div>
231
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div>
232
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="comment">// #define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
233
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;<span class="comment">// #define GLM_CXX11_DELETED_FUNCTIONS</span></div>
234
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="comment">// Defaulted and deleted functions N2346 GCC 4.4</span></div>
235
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm</span></div>
236
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div>
237
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="comment">//</span></div>
238
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="comment">// Extended friend declarations N1791 GCC 4.7</span></div>
239
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1791.pdf</span></div>
240
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div>
241
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="comment">//</span></div>
242
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<span class="comment">// Extending sizeof N2253 GCC 4.4</span></div>
243
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2253.html</span></div>
244
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
245
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="comment">// #define GLM_CXX11_INLINE_NAMESPACES</span></div>
246
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="comment">// Inline namespaces N2535 GCC 4.4</span></div>
247
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm</span></div>
248
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div>
249
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="comment">// #define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
250
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="comment">// Unrestricted unions N2544 GCC 4.6</span></div>
251
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2544.pdf</span></div>
252
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div>
253
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="comment">// #define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
254
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="comment">// Local and unnamed types as template arguments N2657 GCC 4.5</span></div>
255
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm</span></div>
256
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
257
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;<span class="comment">// #define GLM_CXX11_RANGE_FOR</span></div>
258
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="comment">// Range-based for N2930 GCC 4.6</span></div>
259
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html</span></div>
260
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div>
261
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="comment">// #define GLM_CXX11_OVERRIDE_CONTROL</span></div>
262
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="comment">// Explicit virtual overrides N2928 N3206 N3272 GCC 4.7</span></div>
263
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="comment">// http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm</span></div>
264
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm</span></div>
265
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm</span></div>
266
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
267
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="comment">//</span></div>
268
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;<span class="comment">// Minimal support for garbage collection and reachability-based leak detection N2670 No</span></div>
269
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2670.htm</span></div>
270
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
271
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="comment">// #define GLM_CXX11_NOEXCEPT</span></div>
272
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="comment">// Allowing move constructors to throw [noexcept] N3050 GCC 4.6 (core language only)</span></div>
273
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3050.html</span></div>
274
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
275
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="comment">//</span></div>
276
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="comment">// Defining move special member functions N3053 GCC 4.6</span></div>
277
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3053.html</span></div>
278
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div>
279
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="comment">//</span></div>
280
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="comment">// Sequence points N2239 Yes</span></div>
281
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
282
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
283
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="comment">//</span></div>
284
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">// Atomic operations N2427 GCC 4.4</span></div>
285
- <div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2239.html</span></div>
286
- <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div>
287
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;<span class="comment">//</span></div>
288
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="comment">// Strong Compare and Exchange N2748 GCC 4.5</span></div>
289
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html</span></div>
290
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
291
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="comment">//</span></div>
292
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="comment">// Bidirectional Fences N2752 GCC 4.8</span></div>
293
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2752.htm</span></div>
294
- <div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div>
295
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="comment">//</span></div>
296
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;<span class="comment">// Memory model N2429 GCC 4.8</span></div>
297
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2429.htm</span></div>
298
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div>
299
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="comment">//</span></div>
300
- <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="comment">// Data-dependency ordering: atomics and memory model N2664 GCC 4.4</span></div>
301
- <div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2664.htm</span></div>
302
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div>
303
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;<span class="comment">//</span></div>
304
- <div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;<span class="comment">// Propagating exceptions N2179 GCC 4.4</span></div>
305
- <div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2179.html</span></div>
306
- <div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div>
307
- <div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;<span class="comment">//</span></div>
308
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;<span class="comment">// Abandoning a process and at_quick_exit N2440 GCC 4.8</span></div>
309
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2440.htm</span></div>
310
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
311
- <div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;<span class="comment">//</span></div>
312
- <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="comment">// Allow atomics use in signal handlers N2547 Yes</span></div>
313
- <div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2547.htm</span></div>
314
- <div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div>
315
- <div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;<span class="comment">//</span></div>
316
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="comment">// Thread-local storage N2659 GCC 4.8</span></div>
317
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2659.htm</span></div>
318
- <div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div>
319
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="comment">//</span></div>
320
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;<span class="comment">// Dynamic initialization and destruction with concurrency N2660 GCC 4.3</span></div>
321
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm</span></div>
322
- <div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div>
323
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;<span class="comment">//</span></div>
324
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;<span class="comment">// __func__ predefined identifier N2340 GCC 4.3</span></div>
325
- <div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2340.htm</span></div>
326
- <div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div>
327
- <div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;<span class="comment">//</span></div>
328
- <div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<span class="comment">// C99 preprocessor N1653 GCC 4.3</span></div>
329
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1653.htm</span></div>
330
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div>
331
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="comment">//</span></div>
332
- <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;<span class="comment">// long long N1811 GCC 4.3</span></div>
333
- <div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1811.pdf</span></div>
334
- <div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div>
335
- <div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="comment">//</span></div>
336
- <div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;<span class="comment">// Extended integral types N1988 Yes</span></div>
337
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="comment">// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1988.pdf</span></div>
338
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
339
- <div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;<span class="preprocessor">#if(GLM_COMPILER &amp; GLM_COMPILER_GCC)</span></div>
340
- <div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
341
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
342
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div>
343
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="preprocessor">#elif(GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
344
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_exceptions))</span></div>
345
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="preprocessor"># define GLM_CXX98_EXCEPTIONS</span></div>
346
- <div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"># endif</span></div>
347
- <div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
348
- <div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_rtti))</span></div>
349
- <div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="preprocessor"># define GLM_CXX98_RTTI</span></div>
350
- <div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="preprocessor"># endif</span></div>
351
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
352
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_access_control_sfinae))</span></div>
353
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="preprocessor"># define GLM_CXX11_ACCESS_CONTROL_SFINAE</span></div>
354
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="preprocessor"># endif</span></div>
355
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
356
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_alias_templates))</span></div>
357
- <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="preprocessor"># define GLM_CXX11_ALIAS_TEMPLATE</span></div>
358
- <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="preprocessor"># endif</span></div>
359
- <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div>
360
- <div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_alignas))</span></div>
361
- <div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="preprocessor"># define GLM_CXX11_ALIGNAS</span></div>
362
- <div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;<span class="preprocessor"># endif</span></div>
363
- <div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div>
364
- <div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_attributes))</span></div>
365
- <div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="preprocessor"># define GLM_CXX11_ATTRIBUTES</span></div>
366
- <div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="preprocessor"># endif</span></div>
367
- <div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div>
368
- <div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_constexpr))</span></div>
369
- <div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="preprocessor"># define GLM_CXX11_CONSTEXPR</span></div>
370
- <div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="preprocessor"># endif</span></div>
371
- <div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div>
372
- <div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_decltype))</span></div>
373
- <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="preprocessor"># define GLM_CXX11_DECLTYPE</span></div>
374
- <div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="preprocessor"># endif</span></div>
375
- <div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div>
376
- <div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_default_function_template_args))</span></div>
377
- <div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"># define GLM_CXX11_DEFAULT_FUNCTION_TEMPLATE_ARGS</span></div>
378
- <div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="preprocessor"># endif</span></div>
379
- <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
380
- <div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_defaulted_functions))</span></div>
381
- <div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="preprocessor"># define GLM_CXX11_DEFAULTED_FUNCTIONS</span></div>
382
- <div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="preprocessor"># endif</span></div>
383
- <div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div>
384
- <div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_delegating_constructors))</span></div>
385
- <div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;<span class="preprocessor"># define GLM_CXX11_DELEGATING_CONSTRUCTORS</span></div>
386
- <div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="preprocessor"># endif</span></div>
387
- <div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div>
388
- <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_deleted_functions))</span></div>
389
- <div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="preprocessor"># define GLM_CXX11_DELETED_FUNCTIONS</span></div>
390
- <div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;<span class="preprocessor"># endif</span></div>
391
- <div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div>
392
- <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_explicit_conversions))</span></div>
393
- <div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="preprocessor"># define GLM_CXX11_EXPLICIT_CONVERSIONS</span></div>
394
- <div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="preprocessor"># endif</span></div>
395
- <div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div>
396
- <div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_generalized_initializers))</span></div>
397
- <div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;<span class="preprocessor"># define GLM_CXX11_GENERALIZED_INITIALIZERS</span></div>
398
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"># endif</span></div>
399
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
400
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_implicit_moves))</span></div>
401
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;<span class="preprocessor"># define GLM_CXX11_IMPLICIT_MOVES</span></div>
402
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor"># endif</span></div>
403
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
404
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_inheriting_constructors))</span></div>
405
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="preprocessor"># define GLM_CXX11_INHERITING_CONSTRUCTORS</span></div>
406
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="preprocessor"># endif</span></div>
407
- <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div>
408
- <div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_inline_namespaces))</span></div>
409
- <div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;<span class="preprocessor"># define GLM_CXX11_INLINE_NAMESPACES</span></div>
410
- <div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor"># endif</span></div>
411
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div>
412
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_lambdas))</span></div>
413
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;<span class="preprocessor"># define GLM_CXX11_LAMBDAS</span></div>
414
- <div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor"># endif</span></div>
415
- <div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div>
416
- <div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_local_type_template_args))</span></div>
417
- <div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="preprocessor"># define GLM_CXX11_LOCAL_TYPE_TEMPLATE_ARGS</span></div>
418
- <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor"># endif</span></div>
419
- <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div>
420
- <div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_noexcept))</span></div>
421
- <div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"># define GLM_CXX11_NOEXCEPT</span></div>
422
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;<span class="preprocessor"># endif</span></div>
423
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div>
424
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_nonstatic_member_init))</span></div>
425
- <div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="preprocessor"># define GLM_CXX11_NONSTATIC_MEMBER_INIT</span></div>
426
- <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="preprocessor"># endif</span></div>
427
- <div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div>
428
- <div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_nullptr))</span></div>
429
- <div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;<span class="preprocessor"># define GLM_CXX11_NULLPTR</span></div>
430
- <div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor"># endif</span></div>
431
- <div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;</div>
432
- <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_override_control))</span></div>
433
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="preprocessor"># define GLM_CXX11_OVERRIDE_CONTROL</span></div>
434
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="preprocessor"># endif</span></div>
435
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
436
- <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_reference_qualified_functions))</span></div>
437
- <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;<span class="preprocessor"># define GLM_CXX11_REFERENCE_QUALIFIED_FUNCTIONS</span></div>
438
- <div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor"># endif</span></div>
439
- <div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div>
440
- <div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_range_for))</span></div>
441
- <div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;<span class="preprocessor"># define GLM_CXX11_RANGE_FOR</span></div>
442
- <div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"># endif</span></div>
443
- <div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div>
444
- <div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_raw_string_literals))</span></div>
445
- <div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="preprocessor"># define GLM_CXX11_RAW_STRING_LITERALS</span></div>
446
- <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;<span class="preprocessor"># endif</span></div>
447
- <div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div>
448
- <div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_rvalue_references))</span></div>
449
- <div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;<span class="preprocessor"># define GLM_CXX11_RVALUE_REFERENCES</span></div>
450
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="preprocessor"># endif</span></div>
451
- <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div>
452
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_static_assert))</span></div>
453
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;<span class="preprocessor"># define GLM_CXX11_STATIC_ASSERT</span></div>
454
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;<span class="preprocessor"># endif</span></div>
455
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
456
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_auto_type))</span></div>
457
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"># define GLM_CXX11_AUTO_TYPE</span></div>
458
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;<span class="preprocessor"># endif</span></div>
459
- <div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div>
460
- <div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_strong_enums))</span></div>
461
- <div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;<span class="preprocessor"># define GLM_CXX11_STRONG_ENUMS</span></div>
462
- <div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="preprocessor"># endif</span></div>
463
- <div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div>
464
- <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_trailing_return))</span></div>
465
- <div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;<span class="preprocessor"># define GLM_CXX11_TRAILING_RETURN</span></div>
466
- <div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;<span class="preprocessor"># endif</span></div>
467
- <div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div>
468
- <div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_unicode_literals))</span></div>
469
- <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;<span class="preprocessor"># define GLM_CXX11_UNICODE_LITERALS</span></div>
470
- <div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"># endif</span></div>
471
- <div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div>
472
- <div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_unrestricted_unions))</span></div>
473
- <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="preprocessor"># define GLM_CXX11_UNRESTRICTED_UNIONS</span></div>
474
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="preprocessor"># endif</span></div>
475
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
476
- <div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_user_literals))</span></div>
477
- <div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;<span class="preprocessor"># define GLM_CXX11_USER_LITERALS</span></div>
478
- <div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;<span class="preprocessor"># endif</span></div>
479
- <div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div>
480
- <div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="preprocessor"># if(__has_feature(cxx_variadic_templates))</span></div>
481
- <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="preprocessor"># define GLM_CXX11_VARIADIC_TEMPLATES</span></div>
482
- <div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="preprocessor"># endif</span></div>
483
- <div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div>
484
- <div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;<span class="preprocessor">#endif//(GLM_COMPILER &amp; GLM_COMPILER_CLANG)</span></div>
485
- </div><!-- fragment --></div><!-- contents -->
486
- <!-- start footer part -->
487
- <hr class="footer"/><address class="footer"><small>
488
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
489
- <img class="footer" src="doxygen.png" alt="doxygen"/>
490
- </a> 1.8.10
491
- </small></address>
492
- </body>
493
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00002_source.html DELETED
@@ -1,121 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: _fixes.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_033f5edb0915b828d2c46ed4804e5503.html">detail</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">_fixes.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &lt;cmath&gt;</span></div>
92
- <div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
93
- <div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#ifdef max</span></div>
94
- <div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#undef max</span></div>
95
- <div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#endif</span></div>
96
- <div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div>
97
- <div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#ifdef min</span></div>
98
- <div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#undef min</span></div>
99
- <div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#endif</span></div>
100
- <div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div>
101
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#ifdef isnan</span></div>
102
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#undef isnan</span></div>
103
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#endif</span></div>
104
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
105
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifdef isinf</span></div>
106
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#undef isinf</span></div>
107
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div>
108
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
109
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#ifdef log2</span></div>
110
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#undef log2</span></div>
111
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
112
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
113
- </div><!-- fragment --></div><!-- contents -->
114
- <!-- start footer part -->
115
- <hr class="footer"/><address class="footer"><small>
116
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
117
- <img class="footer" src="doxygen.png" alt="doxygen"/>
118
- </a> 1.8.10
119
- </small></address>
120
- </body>
121
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00003_source.html DELETED
@@ -1,182 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: _noise.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_033f5edb0915b828d2c46ed4804e5503.html">detail</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">_noise.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
92
- <div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
93
- <div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;../common.hpp&quot;</span></div>
94
- <div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div>
95
- <div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a>{</div>
96
- <div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">namespace </span>detail</div>
97
- <div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div>
98
- <div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
99
- <div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; GLM_FUNC_QUALIFIER T mod289(T <span class="keyword">const</span>&amp; x)</div>
100
- <div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; {</div>
101
- <div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordflow">return</span> x - <a class="code" href="a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a>(x * (static_cast&lt;T&gt;(1.0) / static_cast&lt;T&gt;(289.0))) * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(289.0);</div>
102
- <div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; }</div>
103
- <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div>
104
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
105
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; GLM_FUNC_QUALIFIER T permute(T <span class="keyword">const</span>&amp; x)</div>
106
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; {</div>
107
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
108
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; }</div>
109
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
110
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
111
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; permute(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; x)</div>
112
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; {</div>
113
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
114
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div>
115
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
116
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
117
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; permute(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; x)</div>
118
- <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; {</div>
119
- <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
120
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; }</div>
121
- <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
122
- <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
123
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; permute(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; x)</div>
124
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; {</div>
125
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">return</span> mod289(((x * static_cast&lt;T&gt;(34)) + static_cast&lt;T&gt;(1)) * x);</div>
126
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div>
127
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
128
- <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
129
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_QUALIFIER T taylorInvSqrt(T <span class="keyword">const</span>&amp; r)</div>
130
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div>
131
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.79284291400159) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(0.85373472095314) * r;</div>
132
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
133
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
134
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
135
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; taylorInvSqrt(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; r)</div>
136
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; {</div>
137
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.79284291400159) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(0.85373472095314) * r;</div>
138
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div>
139
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
140
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
141
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; taylorInvSqrt(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; r)</div>
142
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
143
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.79284291400159) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(0.85373472095314) * r;</div>
144
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
145
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
146
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
147
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; taylorInvSqrt(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; r)</div>
148
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; {</div>
149
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(1.79284291400159) - <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(0.85373472095314) * r;</div>
150
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div>
151
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div>
152
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
153
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; fade(vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; t)</div>
154
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div>
155
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(6) - static_cast&lt;T&gt;(15)) + static_cast&lt;T&gt;(10));</div>
156
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div>
157
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div>
158
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
159
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; fade(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; t)</div>
160
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div>
161
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(6) - static_cast&lt;T&gt;(15)) + static_cast&lt;T&gt;(10));</div>
162
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
163
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
164
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
165
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; fade(vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; t)</div>
166
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div>
167
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> (t * t * t) * (t * (t * <span class="keyword">static_cast&lt;</span>T<span class="keyword">&gt;</span>(6) - static_cast&lt;T&gt;(15)) + static_cast&lt;T&gt;(10));</div>
168
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div>
169
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}<span class="comment">//namespace detail</span></div>
170
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}<span class="comment">//namespace glm</span></div>
171
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
172
- <div class="ttc" id="a00241_html_gaa9d0742639e85b29c7c5de11cfd6840d"><div class="ttname"><a href="a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; floor(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
173
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
174
- </div><!-- fragment --></div><!-- contents -->
175
- <!-- start footer part -->
176
- <hr class="footer"/><address class="footer"><small>
177
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
178
- <img class="footer" src="doxygen.png" alt="doxygen"/>
179
- </a> 1.8.10
180
- </small></address>
181
- </body>
182
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00004_source.html DELETED
The diff for this file is too large to render. See raw diff
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00005_source.html DELETED
The diff for this file is too large to render. See raw diff
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00006_source.html DELETED
@@ -1,262 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: _vectorize.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_033f5edb0915b828d2c46ed4804e5503.html">detail</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">_vectorize.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#pragma once</span></div>
92
- <div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div>
93
- <div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a>{</div>
94
- <div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="keyword">namespace </span>detail</div>
95
- <div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div>
96
- <div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, length_t L, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
97
- <div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <span class="keyword">struct </span>functor1{};</div>
98
- <div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
99
- <div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
100
- <div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">struct </span>functor1&lt;vec, 1, R, T, Q&gt;</div>
101
- <div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; {</div>
102
- <div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;1, R, Q&gt; call(R (*Func) (T x), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; v)</div>
103
- <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; {</div>
104
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">return</span> vec&lt;1, R, Q&gt;(Func(v.x));</div>
105
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; }</div>
106
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; };</div>
107
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
108
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
109
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">struct </span>functor1&lt;vec, 2, R, T, Q&gt;</div>
110
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; {</div>
111
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;2, R, Q&gt; call(R (*Func) (T x), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; v)</div>
112
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; {</div>
113
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">return</span> vec&lt;2, R, Q&gt;(Func(v.x), Func(v.y));</div>
114
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div>
115
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; };</div>
116
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
117
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
118
- <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">struct </span>functor1&lt;vec, 3, R, T, Q&gt;</div>
119
- <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; {</div>
120
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;3, R, Q&gt; call(R (*Func) (T x), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; v)</div>
121
- <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; {</div>
122
- <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> vec&lt;3, R, Q&gt;(Func(v.x), Func(v.y), Func(v.z));</div>
123
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div>
124
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; };</div>
125
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
126
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> R, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
127
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">struct </span>functor1&lt;vec, 4, R, T, Q&gt;</div>
128
- <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; {</div>
129
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_QUALIFIER GLM_CONSTEXPR <span class="keyword">static</span> vec&lt;4, R, Q&gt; call(R (*Func) (T x), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; v)</div>
130
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; {</div>
131
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">return</span> vec&lt;4, R, Q&gt;(Func(v.x), Func(v.y), Func(v.z), Func(v.w));</div>
132
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div>
133
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; };</div>
134
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
135
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
136
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">struct </span>functor2{};</div>
137
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
138
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
139
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">struct </span>functor2&lt;vec, 1, T, Q&gt;</div>
140
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; {</div>
141
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
142
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; {</div>
143
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b.x));</div>
144
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div>
145
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; };</div>
146
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
147
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
148
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">struct </span>functor2&lt;vec, 2, T, Q&gt;</div>
149
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; {</div>
150
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
151
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; {</div>
152
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
153
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div>
154
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; };</div>
155
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
156
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
157
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">struct </span>functor2&lt;vec, 3, T, Q&gt;</div>
158
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; {</div>
159
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
160
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; {</div>
161
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
162
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div>
163
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; };</div>
164
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div>
165
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
166
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">struct </span>functor2&lt;vec, 4, T, Q&gt;</div>
167
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div>
168
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; b)</div>
169
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; {</div>
170
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
171
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
172
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; };</div>
173
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div>
174
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
175
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">struct </span>functor2_vec_sca{};</div>
176
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
177
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
178
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 1, T, Q&gt;</div>
179
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div>
180
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
181
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; {</div>
182
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">return</span> vec&lt;1, T, Q&gt;(Func(a.x, b));</div>
183
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div>
184
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; };</div>
185
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
186
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
187
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 2, T, Q&gt;</div>
188
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; {</div>
189
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
190
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; {</div>
191
- <div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> vec&lt;2, T, Q&gt;(Func(a.x, b), Func(a.y, b));</div>
192
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div>
193
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; };</div>
194
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
195
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
196
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 3, T, Q&gt;</div>
197
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; {</div>
198
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
199
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; {</div>
200
- <div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> vec&lt;3, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b));</div>
201
- <div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div>
202
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; };</div>
203
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
204
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt; <span class="keyword">class </span>vec, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
205
- <div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">struct </span>functor2_vec_sca&lt;vec, 4, T, Q&gt;</div>
206
- <div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; {</div>
207
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, T, Q&gt; call(T (*Func) (T x, T y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, T b)</div>
208
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; {</div>
209
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> vec&lt;4, T, Q&gt;(Func(a.x, b), Func(a.y, b), Func(a.z, b), Func(a.w, b));</div>
210
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div>
211
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; };</div>
212
- <div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
213
- <div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
214
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">struct </span>functor2_vec_int {};</div>
215
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
216
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
217
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">struct </span>functor2_vec_int&lt;1, T, Q&gt;</div>
218
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
219
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;1, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;1, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;1, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
220
- <div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; {</div>
221
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> vec&lt;1, int, Q&gt;(Func(a.x, b.x));</div>
222
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
223
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; };</div>
224
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div>
225
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
226
- <div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">struct </span>functor2_vec_int&lt;2, T, Q&gt;</div>
227
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
228
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;2, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;2, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
229
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; {</div>
230
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> vec&lt;2, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y));</div>
231
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div>
232
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; };</div>
233
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
234
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
235
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">struct </span>functor2_vec_int&lt;3, T, Q&gt;</div>
236
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; {</div>
237
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;3, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;3, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
238
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; {</div>
239
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> vec&lt;3, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z));</div>
240
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div>
241
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; };</div>
242
- <div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div>
243
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
244
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">struct </span>functor2_vec_int&lt;4, T, Q&gt;</div>
245
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; {</div>
246
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_QUALIFIER <span class="keyword">static</span> vec&lt;4, int, Q&gt; call(<span class="keywordtype">int</span> (*Func) (T x, <span class="keywordtype">int</span> y), vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; a, vec&lt;4, int, Q&gt; <span class="keyword">const</span>&amp; b)</div>
247
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
248
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> vec&lt;4, int, Q&gt;(Func(a.x, b.x), Func(a.y, b.y), Func(a.z, b.z), Func(a.w, b.w));</div>
249
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div>
250
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; };</div>
251
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;}<span class="comment">//namespace detail</span></div>
252
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}<span class="comment">//namespace glm</span></div>
253
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
254
- </div><!-- fragment --></div><!-- contents -->
255
- <!-- start footer part -->
256
- <hr class="footer"/><address class="footer"><small>
257
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
258
- <img class="footer" src="doxygen.png" alt="doxygen"/>
259
- </a> 1.8.10
260
- </small></address>
261
- </body>
262
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00007.html DELETED
@@ -1,205 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: associated_min_max.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">associated_min_max.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00308.html">GLM_GTX_associated_min_max</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00007_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
102
- <tr class="memitem:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga7d9c8785230c8db60f72ec8975f1ba45">associatedMax</a> (T x, U a, T y, U b)</td></tr>
103
- <tr class="memdesc:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00308.html#ga7d9c8785230c8db60f72ec8975f1ba45">More...</a><br /></td></tr>
104
- <tr class="separator:ga7d9c8785230c8db60f72ec8975f1ba45"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
- <tr class="memitem:ga5c6758bc50aa7fbe700f87123a045aad"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
106
- <tr class="memitem:ga5c6758bc50aa7fbe700f87123a045aad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 2, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga5c6758bc50aa7fbe700f87123a045aad">associatedMax</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, U, Q &gt; const &amp;a, vec&lt; L, T, Q &gt; const &amp;y, vec&lt; L, U, Q &gt; const &amp;b)</td></tr>
107
- <tr class="memdesc:ga5c6758bc50aa7fbe700f87123a045aad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00308.html#ga5c6758bc50aa7fbe700f87123a045aad">More...</a><br /></td></tr>
108
- <tr class="separator:ga5c6758bc50aa7fbe700f87123a045aad"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
- <tr class="memitem:ga0d169d6ce26b03248df175f39005d77f"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
110
- <tr class="memitem:ga0d169d6ce26b03248df175f39005d77f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga0d169d6ce26b03248df175f39005d77f">associatedMax</a> (T x, vec&lt; L, U, Q &gt; const &amp;a, T y, vec&lt; L, U, Q &gt; const &amp;b)</td></tr>
111
- <tr class="memdesc:ga0d169d6ce26b03248df175f39005d77f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00308.html#ga0d169d6ce26b03248df175f39005d77f">More...</a><br /></td></tr>
112
- <tr class="separator:ga0d169d6ce26b03248df175f39005d77f"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
- <tr class="memitem:ga4086269afabcb81dd7ded33cb3448653"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
114
- <tr class="memitem:ga4086269afabcb81dd7ded33cb3448653"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga4086269afabcb81dd7ded33cb3448653">associatedMax</a> (vec&lt; L, T, Q &gt; const &amp;x, U a, vec&lt; L, T, Q &gt; const &amp;y, U b)</td></tr>
115
- <tr class="memdesc:ga4086269afabcb81dd7ded33cb3448653"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 2 variables and returns 2 associated variable values. <a href="a00308.html#ga4086269afabcb81dd7ded33cb3448653">More...</a><br /></td></tr>
116
- <tr class="separator:ga4086269afabcb81dd7ded33cb3448653"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
- <tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
118
- <tr class="memitem:gaec891e363d91abbf3a4443cf2f652209"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#gaec891e363d91abbf3a4443cf2f652209">associatedMax</a> (T x, U a, T y, U b, T z, U c)</td></tr>
119
- <tr class="memdesc:gaec891e363d91abbf3a4443cf2f652209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00308.html#gaec891e363d91abbf3a4443cf2f652209">More...</a><br /></td></tr>
120
- <tr class="separator:gaec891e363d91abbf3a4443cf2f652209"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
- <tr class="memitem:gab84fdc35016a31e8cd0cbb8296bddf7c"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
122
- <tr class="memitem:gab84fdc35016a31e8cd0cbb8296bddf7c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#gab84fdc35016a31e8cd0cbb8296bddf7c">associatedMax</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, U, Q &gt; const &amp;a, vec&lt; L, T, Q &gt; const &amp;y, vec&lt; L, U, Q &gt; const &amp;b, vec&lt; L, T, Q &gt; const &amp;z, vec&lt; L, U, Q &gt; const &amp;c)</td></tr>
123
- <tr class="memdesc:gab84fdc35016a31e8cd0cbb8296bddf7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00308.html#gab84fdc35016a31e8cd0cbb8296bddf7c">More...</a><br /></td></tr>
124
- <tr class="separator:gab84fdc35016a31e8cd0cbb8296bddf7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
125
- <tr class="memitem:gadd2a2002f4f2144bbc39eb2336dd2fba"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
126
- <tr class="memitem:gadd2a2002f4f2144bbc39eb2336dd2fba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#gadd2a2002f4f2144bbc39eb2336dd2fba">associatedMax</a> (T x, vec&lt; L, U, Q &gt; const &amp;a, T y, vec&lt; L, U, Q &gt; const &amp;b, T z, vec&lt; L, U, Q &gt; const &amp;c)</td></tr>
127
- <tr class="memdesc:gadd2a2002f4f2144bbc39eb2336dd2fba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00308.html#gadd2a2002f4f2144bbc39eb2336dd2fba">More...</a><br /></td></tr>
128
- <tr class="separator:gadd2a2002f4f2144bbc39eb2336dd2fba"><td class="memSeparator" colspan="2">&#160;</td></tr>
129
- <tr class="memitem:ga19f59d1141a51a3b2108a9807af78f7f"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
130
- <tr class="memitem:ga19f59d1141a51a3b2108a9807af78f7f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga19f59d1141a51a3b2108a9807af78f7f">associatedMax</a> (vec&lt; L, T, Q &gt; const &amp;x, U a, vec&lt; L, T, Q &gt; const &amp;y, U b, vec&lt; L, T, Q &gt; const &amp;z, U c)</td></tr>
131
- <tr class="memdesc:ga19f59d1141a51a3b2108a9807af78f7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 3 variables and returns 3 associated variable values. <a href="a00308.html#ga19f59d1141a51a3b2108a9807af78f7f">More...</a><br /></td></tr>
132
- <tr class="separator:ga19f59d1141a51a3b2108a9807af78f7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
133
- <tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
134
- <tr class="memitem:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga3038ffcb43eaa6af75897a99a5047ccc">associatedMax</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
135
- <tr class="memdesc:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00308.html#ga3038ffcb43eaa6af75897a99a5047ccc">More...</a><br /></td></tr>
136
- <tr class="separator:ga3038ffcb43eaa6af75897a99a5047ccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
137
- <tr class="memitem:gaf5ab0c428f8d1cd9e3b45fcfbf6423a6"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
138
- <tr class="memitem:gaf5ab0c428f8d1cd9e3b45fcfbf6423a6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#gaf5ab0c428f8d1cd9e3b45fcfbf6423a6">associatedMax</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, U, Q &gt; const &amp;a, vec&lt; L, T, Q &gt; const &amp;y, vec&lt; L, U, Q &gt; const &amp;b, vec&lt; L, T, Q &gt; const &amp;z, vec&lt; L, U, Q &gt; const &amp;c, vec&lt; L, T, Q &gt; const &amp;w, vec&lt; L, U, Q &gt; const &amp;d)</td></tr>
139
- <tr class="memdesc:gaf5ab0c428f8d1cd9e3b45fcfbf6423a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00308.html#gaf5ab0c428f8d1cd9e3b45fcfbf6423a6">More...</a><br /></td></tr>
140
- <tr class="separator:gaf5ab0c428f8d1cd9e3b45fcfbf6423a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
141
- <tr class="memitem:ga11477c2c4b5b0bfd1b72b29df3725a9d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
142
- <tr class="memitem:ga11477c2c4b5b0bfd1b72b29df3725a9d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga11477c2c4b5b0bfd1b72b29df3725a9d">associatedMax</a> (T x, vec&lt; L, U, Q &gt; const &amp;a, T y, vec&lt; L, U, Q &gt; const &amp;b, T z, vec&lt; L, U, Q &gt; const &amp;c, T w, vec&lt; L, U, Q &gt; const &amp;d)</td></tr>
143
- <tr class="memdesc:ga11477c2c4b5b0bfd1b72b29df3725a9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00308.html#ga11477c2c4b5b0bfd1b72b29df3725a9d">More...</a><br /></td></tr>
144
- <tr class="separator:ga11477c2c4b5b0bfd1b72b29df3725a9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
145
- <tr class="memitem:gab9c3dd74cac899d2c625b5767ea3b3fb"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
146
- <tr class="memitem:gab9c3dd74cac899d2c625b5767ea3b3fb"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a> (vec&lt; L, T, Q &gt; const &amp;x, U a, vec&lt; L, T, Q &gt; const &amp;y, U b, vec&lt; L, T, Q &gt; const &amp;z, U c, vec&lt; L, T, Q &gt; const &amp;w, U d)</td></tr>
147
- <tr class="memdesc:gab9c3dd74cac899d2c625b5767ea3b3fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum comparison between 4 variables and returns 4 associated variable values. <a href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">More...</a><br /></td></tr>
148
- <tr class="separator:gab9c3dd74cac899d2c625b5767ea3b3fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
149
- <tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U , qualifier Q&gt; </td></tr>
150
- <tr class="memitem:gacc01bd272359572fc28437ae214a02df"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#gacc01bd272359572fc28437ae214a02df">associatedMin</a> (T x, U a, T y, U b)</td></tr>
151
- <tr class="memdesc:gacc01bd272359572fc28437ae214a02df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00308.html#gacc01bd272359572fc28437ae214a02df">More...</a><br /></td></tr>
152
- <tr class="separator:gacc01bd272359572fc28437ae214a02df"><td class="memSeparator" colspan="2">&#160;</td></tr>
153
- <tr class="memitem:gac2f0dff90948f2e44386a5eafd941d1c"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
154
- <tr class="memitem:gac2f0dff90948f2e44386a5eafd941d1c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 2, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#gac2f0dff90948f2e44386a5eafd941d1c">associatedMin</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, U, Q &gt; const &amp;a, vec&lt; L, T, Q &gt; const &amp;y, vec&lt; L, U, Q &gt; const &amp;b)</td></tr>
155
- <tr class="memdesc:gac2f0dff90948f2e44386a5eafd941d1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00308.html#gac2f0dff90948f2e44386a5eafd941d1c">More...</a><br /></td></tr>
156
- <tr class="separator:gac2f0dff90948f2e44386a5eafd941d1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
157
- <tr class="memitem:gacfec519c820331d023ef53a511749319"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
158
- <tr class="memitem:gacfec519c820331d023ef53a511749319"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#gacfec519c820331d023ef53a511749319">associatedMin</a> (T x, const vec&lt; L, U, Q &gt; &amp;a, T y, const vec&lt; L, U, Q &gt; &amp;b)</td></tr>
159
- <tr class="memdesc:gacfec519c820331d023ef53a511749319"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00308.html#gacfec519c820331d023ef53a511749319">More...</a><br /></td></tr>
160
- <tr class="separator:gacfec519c820331d023ef53a511749319"><td class="memSeparator" colspan="2">&#160;</td></tr>
161
- <tr class="memitem:ga4757c7cab2d809124a8525d0a9deeb37"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
162
- <tr class="memitem:ga4757c7cab2d809124a8525d0a9deeb37"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga4757c7cab2d809124a8525d0a9deeb37">associatedMin</a> (vec&lt; L, T, Q &gt; const &amp;x, U a, vec&lt; L, T, Q &gt; const &amp;y, U b)</td></tr>
163
- <tr class="memdesc:ga4757c7cab2d809124a8525d0a9deeb37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 2 variables and returns 2 associated variable values. <a href="a00308.html#ga4757c7cab2d809124a8525d0a9deeb37">More...</a><br /></td></tr>
164
- <tr class="separator:ga4757c7cab2d809124a8525d0a9deeb37"><td class="memSeparator" colspan="2">&#160;</td></tr>
165
- <tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
166
- <tr class="memitem:gad0aa8f86259a26d839d34a3577a923fc"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#gad0aa8f86259a26d839d34a3577a923fc">associatedMin</a> (T x, U a, T y, U b, T z, U c)</td></tr>
167
- <tr class="memdesc:gad0aa8f86259a26d839d34a3577a923fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 3 variables and returns 3 associated variable values. <a href="a00308.html#gad0aa8f86259a26d839d34a3577a923fc">More...</a><br /></td></tr>
168
- <tr class="separator:gad0aa8f86259a26d839d34a3577a923fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
169
- <tr class="memitem:ga723e5411cebc7ffbd5c81ffeec61127d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
170
- <tr class="memitem:ga723e5411cebc7ffbd5c81ffeec61127d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga723e5411cebc7ffbd5c81ffeec61127d">associatedMin</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, U, Q &gt; const &amp;a, vec&lt; L, T, Q &gt; const &amp;y, vec&lt; L, U, Q &gt; const &amp;b, vec&lt; L, T, Q &gt; const &amp;z, vec&lt; L, U, Q &gt; const &amp;c)</td></tr>
171
- <tr class="memdesc:ga723e5411cebc7ffbd5c81ffeec61127d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 3 variables and returns 3 associated variable values. <a href="a00308.html#ga723e5411cebc7ffbd5c81ffeec61127d">More...</a><br /></td></tr>
172
- <tr class="separator:ga723e5411cebc7ffbd5c81ffeec61127d"><td class="memSeparator" colspan="2">&#160;</td></tr>
173
- <tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplParams" colspan="2">template&lt;typename T , typename U &gt; </td></tr>
174
- <tr class="memitem:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL U&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga432224ebe2085eaa2b63a077ecbbbff6">associatedMin</a> (T x, U a, T y, U b, T z, U c, T w, U d)</td></tr>
175
- <tr class="memdesc:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00308.html#ga432224ebe2085eaa2b63a077ecbbbff6">More...</a><br /></td></tr>
176
- <tr class="separator:ga432224ebe2085eaa2b63a077ecbbbff6"><td class="memSeparator" colspan="2">&#160;</td></tr>
177
- <tr class="memitem:ga66b08118bc88f0494bcacb7cdb940556"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
178
- <tr class="memitem:ga66b08118bc88f0494bcacb7cdb940556"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga66b08118bc88f0494bcacb7cdb940556">associatedMin</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, U, Q &gt; const &amp;a, vec&lt; L, T, Q &gt; const &amp;y, vec&lt; L, U, Q &gt; const &amp;b, vec&lt; L, T, Q &gt; const &amp;z, vec&lt; L, U, Q &gt; const &amp;c, vec&lt; L, T, Q &gt; const &amp;w, vec&lt; L, U, Q &gt; const &amp;d)</td></tr>
179
- <tr class="memdesc:ga66b08118bc88f0494bcacb7cdb940556"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00308.html#ga66b08118bc88f0494bcacb7cdb940556">More...</a><br /></td></tr>
180
- <tr class="separator:ga66b08118bc88f0494bcacb7cdb940556"><td class="memSeparator" colspan="2">&#160;</td></tr>
181
- <tr class="memitem:ga78c28fde1a7080fb7420bd88e68c6c68"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
182
- <tr class="memitem:ga78c28fde1a7080fb7420bd88e68c6c68"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga78c28fde1a7080fb7420bd88e68c6c68">associatedMin</a> (T x, vec&lt; L, U, Q &gt; const &amp;a, T y, vec&lt; L, U, Q &gt; const &amp;b, T z, vec&lt; L, U, Q &gt; const &amp;c, T w, vec&lt; L, U, Q &gt; const &amp;d)</td></tr>
183
- <tr class="memdesc:ga78c28fde1a7080fb7420bd88e68c6c68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00308.html#ga78c28fde1a7080fb7420bd88e68c6c68">More...</a><br /></td></tr>
184
- <tr class="separator:ga78c28fde1a7080fb7420bd88e68c6c68"><td class="memSeparator" colspan="2">&#160;</td></tr>
185
- <tr class="memitem:ga2db7e351994baee78540a562d4bb6d3b"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , typename U , qualifier Q&gt; </td></tr>
186
- <tr class="memitem:ga2db7e351994baee78540a562d4bb6d3b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, U, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a> (vec&lt; L, T, Q &gt; const &amp;x, U a, vec&lt; L, T, Q &gt; const &amp;y, U b, vec&lt; L, T, Q &gt; const &amp;z, U c, vec&lt; L, T, Q &gt; const &amp;w, U d)</td></tr>
187
- <tr class="memdesc:ga2db7e351994baee78540a562d4bb6d3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimum comparison between 4 variables and returns 4 associated variable values. <a href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">More...</a><br /></td></tr>
188
- <tr class="separator:ga2db7e351994baee78540a562d4bb6d3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
189
- </table>
190
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
191
- <div class="textblock"><p><a class="el" href="a00308.html">GLM_GTX_associated_min_max</a> </p>
192
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd>
193
- <dd>
194
- gtx_extented_min_max (dependence) </dd></dl>
195
-
196
- <p>Definition in file <a class="el" href="a00007_source.html">associated_min_max.hpp</a>.</p>
197
- </div></div><!-- contents -->
198
- <!-- start footer part -->
199
- <hr class="footer"/><address class="footer"><small>
200
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
201
- <img class="footer" src="doxygen.png" alt="doxygen"/>
202
- </a> 1.8.10
203
- </small></address>
204
- </body>
205
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00007_source.html DELETED
@@ -1,250 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: associated_min_max.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">associated_min_max.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00007.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
94
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependency:</span></div>
95
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
96
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
97
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
98
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
99
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;)</span></div>
100
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># else</span></div>
101
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_associated_min_max extension included&quot;)</span></div>
102
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># endif</span></div>
103
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
104
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
105
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
106
- <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div>
107
- <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div>
108
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
109
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(T x, U a, T y, U b);</div>
110
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
111
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
112
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL vec&lt;2, U, Q&gt; <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(</div>
113
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
114
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b);</div>
115
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
116
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
117
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(</div>
118
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; T x, <span class="keyword">const</span> vec&lt;L, U, Q&gt;&amp; a,</div>
119
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; T y, <span class="keyword">const</span> vec&lt;L, U, Q&gt;&amp; b);</div>
120
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
121
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
122
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(</div>
123
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, U a,</div>
124
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, U b);</div>
125
- <div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div>
126
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
127
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(</div>
128
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; T x, U a,</div>
129
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; T y, U b,</div>
130
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; T z, U c);</div>
131
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
132
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
133
- <div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(</div>
134
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
135
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b,</div>
136
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; z, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; c);</div>
137
- <div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div>
138
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
139
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(</div>
140
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; T x, U a,</div>
141
- <div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; T y, U b,</div>
142
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; T z, U c,</div>
143
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; T w, U d);</div>
144
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
145
- <div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
146
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(</div>
147
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
148
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b,</div>
149
- <div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; z, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; c,</div>
150
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; w, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; d);</div>
151
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div>
152
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
153
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(</div>
154
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; T x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
155
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; T y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b,</div>
156
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; T z, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; c,</div>
157
- <div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; T w, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; d);</div>
158
- <div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
159
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
160
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">associatedMin</a>(</div>
161
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, U a,</div>
162
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, U b,</div>
163
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; z, U c,</div>
164
- <div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; w, U d);</div>
165
- <div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div>
166
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
167
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(T x, U a, T y, U b);</div>
168
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
169
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
170
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL vec&lt;2, U, Q&gt; <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
171
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
172
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b);</div>
173
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
174
- <div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
175
- <div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
176
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; T x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
177
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; T y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b);</div>
178
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
179
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
180
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
181
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, U a,</div>
182
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, U b);</div>
183
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
184
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
185
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
186
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; T x, U a,</div>
187
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; T y, U b,</div>
188
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; T z, U c);</div>
189
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
190
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
191
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
192
- <div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
193
- <div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b,</div>
194
- <div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; z, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; c);</div>
195
- <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div>
196
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
197
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
198
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; T x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
199
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; T y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b,</div>
200
- <div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; T z, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; c);</div>
201
- <div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
202
- <div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
203
- <div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
204
- <div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, U a,</div>
205
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, U b,</div>
206
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; z, U c);</div>
207
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div>
208
- <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, <span class="keyword">typename</span> U&gt;</div>
209
- <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GLM_FUNC_DECL U <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
210
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; T x, U a,</div>
211
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; T y, U b,</div>
212
- <div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; T z, U c,</div>
213
- <div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; T w, U d);</div>
214
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
215
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
216
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
217
- <div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
218
- <div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b,</div>
219
- <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; z, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; c,</div>
220
- <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; w, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; d);</div>
221
- <div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div>
222
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
223
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
224
- <div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; T x, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a,</div>
225
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; T y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; b,</div>
226
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; T z, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; c,</div>
227
- <div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; T w, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; d);</div>
228
- <div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div>
229
- <div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
230
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL vec&lt;L, U, Q&gt; <a class="code" href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">associatedMax</a>(</div>
231
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, U a,</div>
232
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, U b,</div>
233
- <div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; z, U c,</div>
234
- <div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; w, U d);</div>
235
- <div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div>
236
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;} <span class="comment">//namespace glm</span></div>
237
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
238
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="preprocessor">#include &quot;associated_min_max.inl&quot;</span></div>
239
- <div class="ttc" id="a00308_html_gab9c3dd74cac899d2c625b5767ea3b3fb"><div class="ttname"><a href="a00308.html#gab9c3dd74cac899d2c625b5767ea3b3fb">glm::associatedMax</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, U, Q &gt; associatedMax(vec&lt; L, T, Q &gt; const &amp;x, U a, vec&lt; L, T, Q &gt; const &amp;y, U b, vec&lt; L, T, Q &gt; const &amp;z, U c, vec&lt; L, T, Q &gt; const &amp;w, U d)</div><div class="ttdoc">Maximum comparison between 4 variables and returns 4 associated variable values. </div></div>
240
- <div class="ttc" id="a00308_html_ga2db7e351994baee78540a562d4bb6d3b"><div class="ttname"><a href="a00308.html#ga2db7e351994baee78540a562d4bb6d3b">glm::associatedMin</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, U, Q &gt; associatedMin(vec&lt; L, T, Q &gt; const &amp;x, U a, vec&lt; L, T, Q &gt; const &amp;y, U b, vec&lt; L, T, Q &gt; const &amp;z, U c, vec&lt; L, T, Q &gt; const &amp;w, U d)</div><div class="ttdoc">Minimum comparison between 4 variables and returns 4 associated variable values. </div></div>
241
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
242
- </div><!-- fragment --></div><!-- contents -->
243
- <!-- start footer part -->
244
- <hr class="footer"/><address class="footer"><small>
245
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
246
- <img class="footer" src="doxygen.png" alt="doxygen"/>
247
- </a> 1.8.10
248
- </small></address>
249
- </body>
250
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00008.html DELETED
@@ -1,149 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: bit.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">bit.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00309.html">GLM_GTX_bit</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00008_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
102
- <tr class="memitem:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00309.html#ga0dcc8fe7c3d3ad60dea409281efa3d05">highestBitValue</a> (genIUType Value)</td></tr>
103
- <tr class="separator:ga0dcc8fe7c3d3ad60dea409281efa3d05"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
- <tr class="memitem:ga898ef075ccf809a1e480faab48fe96bf"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
105
- <tr class="memitem:ga898ef075ccf809a1e480faab48fe96bf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00309.html#ga898ef075ccf809a1e480faab48fe96bf">highestBitValue</a> (vec&lt; L, T, Q &gt; const &amp;value)</td></tr>
106
- <tr class="memdesc:ga898ef075ccf809a1e480faab48fe96bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the highest bit set to 1 in a integer variable and return its value. <a href="a00309.html#ga898ef075ccf809a1e480faab48fe96bf">More...</a><br /></td></tr>
107
- <tr class="separator:ga898ef075ccf809a1e480faab48fe96bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
108
- <tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
109
- <tr class="memitem:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00309.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a> (genIUType Value)</td></tr>
110
- <tr class="separator:ga2ff6568089f3a9b67f5c30918855fc6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
- <tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
112
- <tr class="memitem:ga8cda2459871f574a0aecbe702ac93291"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00309.html#ga8cda2459871f574a0aecbe702ac93291">powerOfTwoAbove</a> (genIUType Value)</td></tr>
113
- <tr class="memdesc:ga8cda2459871f574a0aecbe702ac93291"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value. <a href="a00309.html#ga8cda2459871f574a0aecbe702ac93291">More...</a><br /></td></tr>
114
- <tr class="separator:ga8cda2459871f574a0aecbe702ac93291"><td class="memSeparator" colspan="2">&#160;</td></tr>
115
- <tr class="memitem:ga2bbded187c5febfefc1e524ba31b3fab"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
116
- <tr class="memitem:ga2bbded187c5febfefc1e524ba31b3fab"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00309.html#ga2bbded187c5febfefc1e524ba31b3fab">powerOfTwoAbove</a> (vec&lt; L, T, Q &gt; const &amp;value)</td></tr>
117
- <tr class="memdesc:ga2bbded187c5febfefc1e524ba31b3fab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just higher the input value. <a href="a00309.html#ga2bbded187c5febfefc1e524ba31b3fab">More...</a><br /></td></tr>
118
- <tr class="separator:ga2bbded187c5febfefc1e524ba31b3fab"><td class="memSeparator" colspan="2">&#160;</td></tr>
119
- <tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
120
- <tr class="memitem:ga3de7df63c589325101a2817a56f8e29d"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00309.html#ga3de7df63c589325101a2817a56f8e29d">powerOfTwoBelow</a> (genIUType Value)</td></tr>
121
- <tr class="memdesc:ga3de7df63c589325101a2817a56f8e29d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value. <a href="a00309.html#ga3de7df63c589325101a2817a56f8e29d">More...</a><br /></td></tr>
122
- <tr class="separator:ga3de7df63c589325101a2817a56f8e29d"><td class="memSeparator" colspan="2">&#160;</td></tr>
123
- <tr class="memitem:gaf78ddcc4152c051b2a21e68fecb10980"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
124
- <tr class="memitem:gaf78ddcc4152c051b2a21e68fecb10980"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00309.html#gaf78ddcc4152c051b2a21e68fecb10980">powerOfTwoBelow</a> (vec&lt; L, T, Q &gt; const &amp;value)</td></tr>
125
- <tr class="memdesc:gaf78ddcc4152c051b2a21e68fecb10980"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is just lower the input value. <a href="a00309.html#gaf78ddcc4152c051b2a21e68fecb10980">More...</a><br /></td></tr>
126
- <tr class="separator:gaf78ddcc4152c051b2a21e68fecb10980"><td class="memSeparator" colspan="2">&#160;</td></tr>
127
- <tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
128
- <tr class="memitem:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00309.html#ga5f65973a5d2ea38c719e6a663149ead9">powerOfTwoNearest</a> (genIUType Value)</td></tr>
129
- <tr class="memdesc:ga5f65973a5d2ea38c719e6a663149ead9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00309.html#ga5f65973a5d2ea38c719e6a663149ead9">More...</a><br /></td></tr>
130
- <tr class="separator:ga5f65973a5d2ea38c719e6a663149ead9"><td class="memSeparator" colspan="2">&#160;</td></tr>
131
- <tr class="memitem:gac87e65d11e16c3d6b91c3bcfaef7da0b"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
132
- <tr class="memitem:gac87e65d11e16c3d6b91c3bcfaef7da0b"><td class="memTemplItemLeft" align="right" valign="top">GLM_DEPRECATED GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00309.html#gac87e65d11e16c3d6b91c3bcfaef7da0b">powerOfTwoNearest</a> (vec&lt; L, T, Q &gt; const &amp;value)</td></tr>
133
- <tr class="memdesc:gac87e65d11e16c3d6b91c3bcfaef7da0b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the power of two number which value is the closet to the input value. <a href="a00309.html#gac87e65d11e16c3d6b91c3bcfaef7da0b">More...</a><br /></td></tr>
134
- <tr class="separator:gac87e65d11e16c3d6b91c3bcfaef7da0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
135
- </table>
136
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
137
- <div class="textblock"><p><a class="el" href="a00309.html">GLM_GTX_bit</a> </p>
138
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd></dl>
139
-
140
- <p>Definition in file <a class="el" href="a00008_source.html">bit.hpp</a>.</p>
141
- </div></div><!-- contents -->
142
- <!-- start footer part -->
143
- <hr class="footer"/><address class="footer"><small>
144
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
145
- <img class="footer" src="doxygen.png" alt="doxygen"/>
146
- </a> 1.8.10
147
- </small></address>
148
- </body>
149
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00008_source.html DELETED
@@ -1,154 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: bit.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">bit.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00008.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
94
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependencies</span></div>
95
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../gtc/bitfield.hpp&quot;</span></div>
96
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
97
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
98
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
99
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_bit is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;)</span></div>
100
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># else</span></div>
101
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_bit extension included&quot;)</span></div>
102
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># endif</span></div>
103
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
104
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
105
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
106
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
107
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
108
- <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
109
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00309.html#ga898ef075ccf809a1e480faab48fe96bf">highestBitValue</a>(genIUType Value);</div>
110
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
111
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
112
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00309.html#ga2ff6568089f3a9b67f5c30918855fc6f">lowestBitValue</a>(genIUType Value);</div>
113
- <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
114
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
115
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00309.html#ga898ef075ccf809a1e480faab48fe96bf">highestBitValue</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; value);</div>
116
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
117
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
118
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00309.html#ga2bbded187c5febfefc1e524ba31b3fab">powerOfTwoAbove</a>(genIUType Value);</div>
119
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
120
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
121
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00309.html#ga2bbded187c5febfefc1e524ba31b3fab">powerOfTwoAbove</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; value);</div>
122
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div>
123
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
124
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00309.html#gaf78ddcc4152c051b2a21e68fecb10980">powerOfTwoBelow</a>(genIUType Value);</div>
125
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
126
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
127
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00309.html#gaf78ddcc4152c051b2a21e68fecb10980">powerOfTwoBelow</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; value);</div>
128
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div>
129
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
130
- <div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL genIUType <a class="code" href="a00309.html#gac87e65d11e16c3d6b91c3bcfaef7da0b">powerOfTwoNearest</a>(genIUType Value);</div>
131
- <div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div>
132
- <div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
133
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; GLM_DEPRECATED GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00309.html#gac87e65d11e16c3d6b91c3bcfaef7da0b">powerOfTwoNearest</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; value);</div>
134
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
135
- <div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;} <span class="comment">//namespace glm</span></div>
136
- <div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div>
137
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
138
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#include &quot;bit.inl&quot;</span></div>
139
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
140
- <div class="ttc" id="a00309_html_ga898ef075ccf809a1e480faab48fe96bf"><div class="ttname"><a href="a00309.html#ga898ef075ccf809a1e480faab48fe96bf">glm::highestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; highestBitValue(vec&lt; L, T, Q &gt; const &amp;value)</div><div class="ttdoc">Find the highest bit set to 1 in a integer variable and return its value. </div></div>
141
- <div class="ttc" id="a00309_html_gaf78ddcc4152c051b2a21e68fecb10980"><div class="ttname"><a href="a00309.html#gaf78ddcc4152c051b2a21e68fecb10980">glm::powerOfTwoBelow</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vec&lt; L, T, Q &gt; powerOfTwoBelow(vec&lt; L, T, Q &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just lower the input value. </div></div>
142
- <div class="ttc" id="a00309_html_ga2bbded187c5febfefc1e524ba31b3fab"><div class="ttname"><a href="a00309.html#ga2bbded187c5febfefc1e524ba31b3fab">glm::powerOfTwoAbove</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vec&lt; L, T, Q &gt; powerOfTwoAbove(vec&lt; L, T, Q &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is just higher the input value. </div></div>
143
- <div class="ttc" id="a00309_html_gac87e65d11e16c3d6b91c3bcfaef7da0b"><div class="ttname"><a href="a00309.html#gac87e65d11e16c3d6b91c3bcfaef7da0b">glm::powerOfTwoNearest</a></div><div class="ttdeci">GLM_DEPRECATED GLM_FUNC_DECL vec&lt; L, T, Q &gt; powerOfTwoNearest(vec&lt; L, T, Q &gt; const &amp;value)</div><div class="ttdoc">Return the power of two number which value is the closet to the input value. </div></div>
144
- <div class="ttc" id="a00309_html_ga2ff6568089f3a9b67f5c30918855fc6f"><div class="ttname"><a href="a00309.html#ga2ff6568089f3a9b67f5c30918855fc6f">glm::lowestBitValue</a></div><div class="ttdeci">GLM_FUNC_DECL genIUType lowestBitValue(genIUType Value)</div></div>
145
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
146
- </div><!-- fragment --></div><!-- contents -->
147
- <!-- start footer part -->
148
- <hr class="footer"/><address class="footer"><small>
149
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
150
- <img class="footer" src="doxygen.png" alt="doxygen"/>
151
- </a> 1.8.10
152
- </small></address>
153
- </body>
154
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00009.html DELETED
@@ -1,223 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: bitfield.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_4c6bd29c73fa4e5a2509e1c15f846751.html">gtc</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">bitfield.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00288.html">GLM_GTC_bitfield</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00009_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:ga091d934233a2e121df91b8c7230357c8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL <a class="el" href="a00304.html#ga518b8d948a6b4ddb72f84d5c3b7b6611">glm::u8vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga091d934233a2e121df91b8c7230357c8">bitfieldDeinterleave</a> (<a class="el" href="a00263.html#ga05f6b0ae8f6a6e135b0e290c25fe0e4e">glm::uint16</a> x)</td></tr>
102
- <tr class="memdesc:ga091d934233a2e121df91b8c7230357c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinterleaves the bits of x. <a href="a00288.html#ga091d934233a2e121df91b8c7230357c8">More...</a><br /></td></tr>
103
- <tr class="separator:ga091d934233a2e121df91b8c7230357c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
104
- <tr class="memitem:ga7d1cc24dfbcdd932c3a2abbb76235f98"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL <a class="el" href="a00304.html#ga2a78447eb9d66a114b193f4a25899c16">glm::u16vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga7d1cc24dfbcdd932c3a2abbb76235f98">bitfieldDeinterleave</a> (<a class="el" href="a00263.html#ga1134b580f8da4de94ca6b1de4d37975e">glm::uint32</a> x)</td></tr>
105
- <tr class="memdesc:ga7d1cc24dfbcdd932c3a2abbb76235f98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinterleaves the bits of x. <a href="a00288.html#ga7d1cc24dfbcdd932c3a2abbb76235f98">More...</a><br /></td></tr>
106
- <tr class="separator:ga7d1cc24dfbcdd932c3a2abbb76235f98"><td class="memSeparator" colspan="2">&#160;</td></tr>
107
- <tr class="memitem:ga8dbb8c87092f33bd815dd8a840be5d60"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL <a class="el" href="a00304.html#ga2a266e46ee218d0c680f12b35c500cc0">glm::u32vec2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60">bitfieldDeinterleave</a> (<a class="el" href="a00263.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a> x)</td></tr>
108
- <tr class="memdesc:ga8dbb8c87092f33bd815dd8a840be5d60"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinterleaves the bits of x. <a href="a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60">More...</a><br /></td></tr>
109
- <tr class="separator:ga8dbb8c87092f33bd815dd8a840be5d60"><td class="memSeparator" colspan="2">&#160;</td></tr>
110
- <tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
111
- <tr class="memitem:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga46f9295abe3b5c7658f5b13c7f819f0a">bitfieldFillOne</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
112
- <tr class="memdesc:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 1 a range of bits. <a href="a00288.html#ga46f9295abe3b5c7658f5b13c7f819f0a">More...</a><br /></td></tr>
113
- <tr class="separator:ga46f9295abe3b5c7658f5b13c7f819f0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
114
- <tr class="memitem:ga3e96dd1f0a4bc892f063251ed118c0c1"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
115
- <tr class="memitem:ga3e96dd1f0a4bc892f063251ed118c0c1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga3e96dd1f0a4bc892f063251ed118c0c1">bitfieldFillOne</a> (vec&lt; L, T, Q &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
116
- <tr class="memdesc:ga3e96dd1f0a4bc892f063251ed118c0c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 1 a range of bits. <a href="a00288.html#ga3e96dd1f0a4bc892f063251ed118c0c1">More...</a><br /></td></tr>
117
- <tr class="separator:ga3e96dd1f0a4bc892f063251ed118c0c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
118
- <tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
119
- <tr class="memitem:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga697b86998b7d74ee0a69d8e9f8819fee">bitfieldFillZero</a> (genIUType Value, int FirstBit, int BitCount)</td></tr>
120
- <tr class="memdesc:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 0 a range of bits. <a href="a00288.html#ga697b86998b7d74ee0a69d8e9f8819fee">More...</a><br /></td></tr>
121
- <tr class="separator:ga697b86998b7d74ee0a69d8e9f8819fee"><td class="memSeparator" colspan="2">&#160;</td></tr>
122
- <tr class="memitem:ga0d16c9acef4be79ea9b47c082a0cf7c2"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
123
- <tr class="memitem:ga0d16c9acef4be79ea9b47c082a0cf7c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga0d16c9acef4be79ea9b47c082a0cf7c2">bitfieldFillZero</a> (vec&lt; L, T, Q &gt; const &amp;Value, int FirstBit, int BitCount)</td></tr>
124
- <tr class="memdesc:ga0d16c9acef4be79ea9b47c082a0cf7c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to 0 a range of bits. <a href="a00288.html#ga0d16c9acef4be79ea9b47c082a0cf7c2">More...</a><br /></td></tr>
125
- <tr class="separator:ga0d16c9acef4be79ea9b47c082a0cf7c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
- <tr class="memitem:ga24cad0069f9a0450abd80b3e89501adf"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga24cad0069f9a0450abd80b3e89501adf">bitfieldInterleave</a> (int8 x, int8 y)</td></tr>
127
- <tr class="memdesc:ga24cad0069f9a0450abd80b3e89501adf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00288.html#ga24cad0069f9a0450abd80b3e89501adf">More...</a><br /></td></tr>
128
- <tr class="separator:ga24cad0069f9a0450abd80b3e89501adf"><td class="memSeparator" colspan="2">&#160;</td></tr>
129
- <tr class="memitem:ga9a4976a529aec2cee56525e1165da484"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga9a4976a529aec2cee56525e1165da484">bitfieldInterleave</a> (uint8 x, uint8 y)</td></tr>
130
- <tr class="memdesc:ga9a4976a529aec2cee56525e1165da484"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00288.html#ga9a4976a529aec2cee56525e1165da484">More...</a><br /></td></tr>
131
- <tr class="separator:ga9a4976a529aec2cee56525e1165da484"><td class="memSeparator" colspan="2">&#160;</td></tr>
132
- <tr class="memitem:ga4a76bbca39c40153f3203d0a1926e142"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint16&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga4a76bbca39c40153f3203d0a1926e142">bitfieldInterleave</a> (u8vec2 const &amp;v)</td></tr>
133
- <tr class="memdesc:ga4a76bbca39c40153f3203d0a1926e142"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00288.html#ga4a76bbca39c40153f3203d0a1926e142">More...</a><br /></td></tr>
134
- <tr class="separator:ga4a76bbca39c40153f3203d0a1926e142"><td class="memSeparator" colspan="2">&#160;</td></tr>
135
- <tr class="memitem:gac51c33a394593f0631fa3aa5bb778809"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gac51c33a394593f0631fa3aa5bb778809">bitfieldInterleave</a> (int16 x, int16 y)</td></tr>
136
- <tr class="memdesc:gac51c33a394593f0631fa3aa5bb778809"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00288.html#gac51c33a394593f0631fa3aa5bb778809">More...</a><br /></td></tr>
137
- <tr class="separator:gac51c33a394593f0631fa3aa5bb778809"><td class="memSeparator" colspan="2">&#160;</td></tr>
138
- <tr class="memitem:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga94f3646a5667f4be56f8dcf3310e963f">bitfieldInterleave</a> (uint16 x, uint16 y)</td></tr>
139
- <tr class="memdesc:ga94f3646a5667f4be56f8dcf3310e963f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00288.html#ga94f3646a5667f4be56f8dcf3310e963f">More...</a><br /></td></tr>
140
- <tr class="separator:ga94f3646a5667f4be56f8dcf3310e963f"><td class="memSeparator" colspan="2">&#160;</td></tr>
141
- <tr class="memitem:ga406c4ee56af4ca37a73f449f154eca3e"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga406c4ee56af4ca37a73f449f154eca3e">bitfieldInterleave</a> (u16vec2 const &amp;v)</td></tr>
142
- <tr class="memdesc:ga406c4ee56af4ca37a73f449f154eca3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00288.html#ga406c4ee56af4ca37a73f449f154eca3e">More...</a><br /></td></tr>
143
- <tr class="separator:ga406c4ee56af4ca37a73f449f154eca3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
144
- <tr class="memitem:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gaebb756a24a0784e3d6fba8bd011ab77a">bitfieldInterleave</a> (int32 x, int32 y)</td></tr>
145
- <tr class="memdesc:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00288.html#gaebb756a24a0784e3d6fba8bd011ab77a">More...</a><br /></td></tr>
146
- <tr class="separator:gaebb756a24a0784e3d6fba8bd011ab77a"><td class="memSeparator" colspan="2">&#160;</td></tr>
147
- <tr class="memitem:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">bitfieldInterleave</a> (uint32 x, uint32 y)</td></tr>
148
- <tr class="memdesc:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00288.html#ga2f1e2b3fe699e7d897ae38b2115ddcbd">More...</a><br /></td></tr>
149
- <tr class="separator:ga2f1e2b3fe699e7d897ae38b2115ddcbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
150
- <tr class="memitem:ga8cb17574d60abd6ade84bc57c10e8f78"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga8cb17574d60abd6ade84bc57c10e8f78">bitfieldInterleave</a> (u32vec2 const &amp;v)</td></tr>
151
- <tr class="memdesc:ga8cb17574d60abd6ade84bc57c10e8f78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x and y. <a href="a00288.html#ga8cb17574d60abd6ade84bc57c10e8f78">More...</a><br /></td></tr>
152
- <tr class="separator:ga8cb17574d60abd6ade84bc57c10e8f78"><td class="memSeparator" colspan="2">&#160;</td></tr>
153
- <tr class="memitem:ga8fdb724dccd4a07d57efc01147102137"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga8fdb724dccd4a07d57efc01147102137">bitfieldInterleave</a> (int8 x, int8 y, int8 z)</td></tr>
154
- <tr class="memdesc:ga8fdb724dccd4a07d57efc01147102137"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00288.html#ga8fdb724dccd4a07d57efc01147102137">More...</a><br /></td></tr>
155
- <tr class="separator:ga8fdb724dccd4a07d57efc01147102137"><td class="memSeparator" colspan="2">&#160;</td></tr>
156
- <tr class="memitem:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z)</td></tr>
157
- <tr class="memdesc:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00288.html#ga9fc2a0dd5dcf8b00e113f272a5feca93">More...</a><br /></td></tr>
158
- <tr class="separator:ga9fc2a0dd5dcf8b00e113f272a5feca93"><td class="memSeparator" colspan="2">&#160;</td></tr>
159
- <tr class="memitem:gaa901c36a842fa5d126ea650549f17b24"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gaa901c36a842fa5d126ea650549f17b24">bitfieldInterleave</a> (int16 x, int16 y, int16 z)</td></tr>
160
- <tr class="memdesc:gaa901c36a842fa5d126ea650549f17b24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00288.html#gaa901c36a842fa5d126ea650549f17b24">More...</a><br /></td></tr>
161
- <tr class="separator:gaa901c36a842fa5d126ea650549f17b24"><td class="memSeparator" colspan="2">&#160;</td></tr>
162
- <tr class="memitem:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga3afd6d38881fe3948c53d4214d2197fd">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z)</td></tr>
163
- <tr class="memdesc:ga3afd6d38881fe3948c53d4214d2197fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00288.html#ga3afd6d38881fe3948c53d4214d2197fd">More...</a><br /></td></tr>
164
- <tr class="separator:ga3afd6d38881fe3948c53d4214d2197fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
165
- <tr class="memitem:gad2075d96a6640121edaa98ea534102ca"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gad2075d96a6640121edaa98ea534102ca">bitfieldInterleave</a> (int32 x, int32 y, int32 z)</td></tr>
166
- <tr class="memdesc:gad2075d96a6640121edaa98ea534102ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00288.html#gad2075d96a6640121edaa98ea534102ca">More...</a><br /></td></tr>
167
- <tr class="separator:gad2075d96a6640121edaa98ea534102ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
168
- <tr class="memitem:gab19fbc739fc0cf7247978602c36f7da8"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gab19fbc739fc0cf7247978602c36f7da8">bitfieldInterleave</a> (uint32 x, uint32 y, uint32 z)</td></tr>
169
- <tr class="memdesc:gab19fbc739fc0cf7247978602c36f7da8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y and z. <a href="a00288.html#gab19fbc739fc0cf7247978602c36f7da8">More...</a><br /></td></tr>
170
- <tr class="separator:gab19fbc739fc0cf7247978602c36f7da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
171
- <tr class="memitem:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga8a44ae22f5c953b296c42d067dccbe6d">bitfieldInterleave</a> (int8 x, int8 y, int8 z, int8 w)</td></tr>
172
- <tr class="memdesc:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00288.html#ga8a44ae22f5c953b296c42d067dccbe6d">More...</a><br /></td></tr>
173
- <tr class="separator:ga8a44ae22f5c953b296c42d067dccbe6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
174
- <tr class="memitem:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">bitfieldInterleave</a> (uint8 x, uint8 y, uint8 z, uint8 w)</td></tr>
175
- <tr class="memdesc:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00288.html#ga14bb274d54a3c26f4919dd7ed0dd0c36">More...</a><br /></td></tr>
176
- <tr class="separator:ga14bb274d54a3c26f4919dd7ed0dd0c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
177
- <tr class="memitem:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga180a63161e1319fbd5a53c84d0429c7a">bitfieldInterleave</a> (int16 x, int16 y, int16 z, int16 w)</td></tr>
178
- <tr class="memdesc:ga180a63161e1319fbd5a53c84d0429c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00288.html#ga180a63161e1319fbd5a53c84d0429c7a">More...</a><br /></td></tr>
179
- <tr class="separator:ga180a63161e1319fbd5a53c84d0429c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
180
- <tr class="memitem:gafca8768671a14c8016facccb66a89f26"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint64&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a> (uint16 x, uint16 y, uint16 z, uint16 w)</td></tr>
181
- <tr class="memdesc:gafca8768671a14c8016facccb66a89f26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interleaves the bits of x, y, z and w. <a href="a00288.html#gafca8768671a14c8016facccb66a89f26">More...</a><br /></td></tr>
182
- <tr class="separator:gafca8768671a14c8016facccb66a89f26"><td class="memSeparator" colspan="2">&#160;</td></tr>
183
- <tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
184
- <tr class="memitem:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga2eb49678a344ce1495bdb5586d9896b9">bitfieldRotateLeft</a> (genIUType In, int Shift)</td></tr>
185
- <tr class="memdesc:ga2eb49678a344ce1495bdb5586d9896b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the left. <a href="a00288.html#ga2eb49678a344ce1495bdb5586d9896b9">More...</a><br /></td></tr>
186
- <tr class="separator:ga2eb49678a344ce1495bdb5586d9896b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
187
- <tr class="memitem:gae186317091b1a39214ebf79008d44a1e"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
188
- <tr class="memitem:gae186317091b1a39214ebf79008d44a1e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gae186317091b1a39214ebf79008d44a1e">bitfieldRotateLeft</a> (vec&lt; L, T, Q &gt; const &amp;In, int Shift)</td></tr>
189
- <tr class="memdesc:gae186317091b1a39214ebf79008d44a1e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the left. <a href="a00288.html#gae186317091b1a39214ebf79008d44a1e">More...</a><br /></td></tr>
190
- <tr class="separator:gae186317091b1a39214ebf79008d44a1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
191
- <tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
192
- <tr class="memitem:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">bitfieldRotateRight</a> (genIUType In, int Shift)</td></tr>
193
- <tr class="memdesc:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the right. <a href="a00288.html#ga1c33d075c5fb8bd8dbfd5092bfc851ca">More...</a><br /></td></tr>
194
- <tr class="separator:ga1c33d075c5fb8bd8dbfd5092bfc851ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
195
- <tr class="memitem:ga590488e1fc00a6cfe5d3bcaf93fbfe88"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
196
- <tr class="memitem:ga590488e1fc00a6cfe5d3bcaf93fbfe88"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga590488e1fc00a6cfe5d3bcaf93fbfe88">bitfieldRotateRight</a> (vec&lt; L, T, Q &gt; const &amp;In, int Shift)</td></tr>
197
- <tr class="memdesc:ga590488e1fc00a6cfe5d3bcaf93fbfe88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rotate all bits to the right. <a href="a00288.html#ga590488e1fc00a6cfe5d3bcaf93fbfe88">More...</a><br /></td></tr>
198
- <tr class="separator:ga590488e1fc00a6cfe5d3bcaf93fbfe88"><td class="memSeparator" colspan="2">&#160;</td></tr>
199
- <tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplParams" colspan="2">template&lt;typename genIUType &gt; </td></tr>
200
- <tr class="memitem:gad7eba518a0b71662114571ee76939f8a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genIUType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#gad7eba518a0b71662114571ee76939f8a">mask</a> (genIUType Bits)</td></tr>
201
- <tr class="memdesc:gad7eba518a0b71662114571ee76939f8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a mask of 'count' bits. <a href="a00288.html#gad7eba518a0b71662114571ee76939f8a">More...</a><br /></td></tr>
202
- <tr class="separator:gad7eba518a0b71662114571ee76939f8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
203
- <tr class="memitem:ga2e64e3b922a296033b825311e7f5fff1"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
204
- <tr class="memitem:ga2e64e3b922a296033b825311e7f5fff1"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00288.html#ga2e64e3b922a296033b825311e7f5fff1">mask</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
205
- <tr class="memdesc:ga2e64e3b922a296033b825311e7f5fff1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a mask of 'count' bits. <a href="a00288.html#ga2e64e3b922a296033b825311e7f5fff1">More...</a><br /></td></tr>
206
- <tr class="separator:ga2e64e3b922a296033b825311e7f5fff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
207
- </table>
208
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
209
- <div class="textblock"><p><a class="el" href="a00288.html">GLM_GTC_bitfield</a> </p>
210
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd>
211
- <dd>
212
- <a class="el" href="a00288.html" title="Include <glm/gtc/bitfield.hpp> to use the features of this extension. ">GLM_GTC_bitfield</a> (dependence) </dd></dl>
213
-
214
- <p>Definition in file <a class="el" href="a00009_source.html">bitfield.hpp</a>.</p>
215
- </div></div><!-- contents -->
216
- <!-- start footer part -->
217
- <hr class="footer"/><address class="footer"><small>
218
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
219
- <img class="footer" src="doxygen.png" alt="doxygen"/>
220
- </a> 1.8.10
221
- </small></address>
222
- </body>
223
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00009_source.html DELETED
@@ -1,212 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: bitfield.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_4c6bd29c73fa4e5a2509e1c15f846751.html">gtc</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">bitfield.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00009.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
93
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
94
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#pragma once</span></div>
95
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
96
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment">// Dependencies</span></div>
97
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../ext/scalar_int_sized.hpp&quot;</span></div>
98
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../ext/scalar_uint_sized.hpp&quot;</span></div>
99
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../detail/qualifier.hpp&quot;</span></div>
100
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;../detail/_vectorize.hpp&quot;</span></div>
101
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="a00174.html">type_precision.hpp</a>&quot;</span></div>
102
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
103
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
104
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
105
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_bitfield extension included&quot;)</span></div>
106
- <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
107
- <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
108
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
109
- <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
110
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
111
- <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
112
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00288.html#ga2e64e3b922a296033b825311e7f5fff1">mask</a>(genIUType Bits);</div>
113
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
114
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
115
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00288.html#ga2e64e3b922a296033b825311e7f5fff1">mask</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
116
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
117
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
118
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00288.html#ga590488e1fc00a6cfe5d3bcaf93fbfe88">bitfieldRotateRight</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
119
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
120
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
121
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00288.html#ga590488e1fc00a6cfe5d3bcaf93fbfe88">bitfieldRotateRight</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; In, <span class="keywordtype">int</span> Shift);</div>
122
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
123
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
124
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00288.html#gae186317091b1a39214ebf79008d44a1e">bitfieldRotateLeft</a>(genIUType In, <span class="keywordtype">int</span> Shift);</div>
125
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
126
- <div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
127
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00288.html#gae186317091b1a39214ebf79008d44a1e">bitfieldRotateLeft</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; In, <span class="keywordtype">int</span> Shift);</div>
128
- <div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div>
129
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
130
- <div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00288.html#ga3e96dd1f0a4bc892f063251ed118c0c1">bitfieldFillOne</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
131
- <div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div>
132
- <div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
133
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00288.html#ga3e96dd1f0a4bc892f063251ed118c0c1">bitfieldFillOne</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
134
- <div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div>
135
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genIUType&gt;</div>
136
- <div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLM_FUNC_DECL genIUType <a class="code" href="a00288.html#ga0d16c9acef4be79ea9b47c082a0cf7c2">bitfieldFillZero</a>(genIUType Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
137
- <div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
138
- <div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
139
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00288.html#ga0d16c9acef4be79ea9b47c082a0cf7c2">bitfieldFillZero</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; Value, <span class="keywordtype">int</span> FirstBit, <span class="keywordtype">int</span> BitCount);</div>
140
- <div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div>
141
- <div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GLM_FUNC_DECL int16 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y);</div>
142
- <div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div>
143
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y);</div>
144
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
145
- <div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; GLM_FUNC_DECL uint16 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(<a class="code" href="a00304.html#ga518b8d948a6b4ddb72f84d5c3b7b6611">u8vec2</a> <span class="keyword">const</span>&amp; v);</div>
146
- <div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div>
147
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; GLM_FUNC_DECL <a class="code" href="a00304.html#ga518b8d948a6b4ddb72f84d5c3b7b6611">glm::u8vec2</a> <a class="code" href="a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60">bitfieldDeinterleave</a>(<a class="code" href="a00263.html#ga05f6b0ae8f6a6e135b0e290c25fe0e4e">glm::uint16</a> x);</div>
148
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div>
149
- <div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; GLM_FUNC_DECL int32 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y);</div>
150
- <div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
151
- <div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y);</div>
152
- <div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div>
153
- <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(<a class="code" href="a00304.html#ga2a78447eb9d66a114b193f4a25899c16">u16vec2</a> <span class="keyword">const</span>&amp; v);</div>
154
- <div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div>
155
- <div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GLM_FUNC_DECL <a class="code" href="a00304.html#ga2a78447eb9d66a114b193f4a25899c16">glm::u16vec2</a> <a class="code" href="a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60">bitfieldDeinterleave</a>(<a class="code" href="a00263.html#ga1134b580f8da4de94ca6b1de4d37975e">glm::uint32</a> x);</div>
156
- <div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div>
157
- <div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; GLM_FUNC_DECL <a class="code" href="a00260.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a> <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y);</div>
158
- <div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div>
159
- <div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; GLM_FUNC_DECL <a class="code" href="a00263.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y);</div>
160
- <div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div>
161
- <div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; GLM_FUNC_DECL <a class="code" href="a00263.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(<a class="code" href="a00304.html#ga2a266e46ee218d0c680f12b35c500cc0">u32vec2</a> <span class="keyword">const</span>&amp; v);</div>
162
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div>
163
- <div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; GLM_FUNC_DECL <a class="code" href="a00304.html#ga2a266e46ee218d0c680f12b35c500cc0">glm::u32vec2</a> <a class="code" href="a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60">bitfieldDeinterleave</a>(<a class="code" href="a00263.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a> x);</div>
164
- <div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div>
165
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; GLM_FUNC_DECL int32 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z);</div>
166
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div>
167
- <div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z);</div>
168
- <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div>
169
- <div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; GLM_FUNC_DECL <a class="code" href="a00260.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a> <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z);</div>
170
- <div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div>
171
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; GLM_FUNC_DECL <a class="code" href="a00263.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z);</div>
172
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
173
- <div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; GLM_FUNC_DECL <a class="code" href="a00260.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a> <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int32 x, int32 y, int32 z);</div>
174
- <div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div>
175
- <div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; GLM_FUNC_DECL <a class="code" href="a00263.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint32 x, uint32 y, uint32 z);</div>
176
- <div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
177
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; GLM_FUNC_DECL int32 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int8 x, int8 y, int8 z, int8 w);</div>
178
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
179
- <div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; GLM_FUNC_DECL uint32 <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint8 x, uint8 y, uint8 z, uint8 w);</div>
180
- <div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div>
181
- <div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; GLM_FUNC_DECL <a class="code" href="a00260.html#gaff5189f97f9e842d9636a0f240001b2e">int64</a> <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(int16 x, int16 y, int16 z, int16 w);</div>
182
- <div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div>
183
- <div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; GLM_FUNC_DECL <a class="code" href="a00263.html#gab630f76c26b50298187f7889104d4b9c">uint64</a> <a class="code" href="a00288.html#gafca8768671a14c8016facccb66a89f26">bitfieldInterleave</a>(uint16 x, uint16 y, uint16 z, uint16 w);</div>
184
- <div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div>
185
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;} <span class="comment">//namespace glm</span></div>
186
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
187
- <div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="preprocessor">#include &quot;bitfield.inl&quot;</span></div>
188
- <div class="ttc" id="a00263_html_ga1134b580f8da4de94ca6b1de4d37975e"><div class="ttname"><a href="a00263.html#ga1134b580f8da4de94ca6b1de4d37975e">glm::uint32</a></div><div class="ttdeci">detail::uint32 uint32</div><div class="ttdoc">32 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00151_source.html#l00064">scalar_uint_sized.hpp:64</a></div></div>
189
- <div class="ttc" id="a00288_html_gafca8768671a14c8016facccb66a89f26"><div class="ttname"><a href="a00288.html#gafca8768671a14c8016facccb66a89f26">glm::bitfieldInterleave</a></div><div class="ttdeci">GLM_FUNC_DECL uint64 bitfieldInterleave(uint16 x, uint16 y, uint16 z, uint16 w)</div><div class="ttdoc">Interleaves the bits of x, y, z and w. </div></div>
190
- <div class="ttc" id="a00288_html_ga8dbb8c87092f33bd815dd8a840be5d60"><div class="ttname"><a href="a00288.html#ga8dbb8c87092f33bd815dd8a840be5d60">glm::bitfieldDeinterleave</a></div><div class="ttdeci">GLM_FUNC_DECL glm::u32vec2 bitfieldDeinterleave(glm::uint64 x)</div><div class="ttdoc">Deinterleaves the bits of x. </div></div>
191
- <div class="ttc" id="a00288_html_ga0d16c9acef4be79ea9b47c082a0cf7c2"><div class="ttname"><a href="a00288.html#ga0d16c9acef4be79ea9b47c082a0cf7c2">glm::bitfieldFillZero</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; bitfieldFillZero(vec&lt; L, T, Q &gt; const &amp;Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 0 a range of bits. </div></div>
192
- <div class="ttc" id="a00263_html_ga05f6b0ae8f6a6e135b0e290c25fe0e4e"><div class="ttname"><a href="a00263.html#ga05f6b0ae8f6a6e135b0e290c25fe0e4e">glm::uint16</a></div><div class="ttdeci">detail::uint16 uint16</div><div class="ttdoc">16 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00151_source.html#l00061">scalar_uint_sized.hpp:61</a></div></div>
193
- <div class="ttc" id="a00304_html_ga518b8d948a6b4ddb72f84d5c3b7b6611"><div class="ttname"><a href="a00304.html#ga518b8d948a6b4ddb72f84d5c3b7b6611">glm::u8vec2</a></div><div class="ttdeci">vec&lt; 2, u8, defaultp &gt; u8vec2</div><div class="ttdoc">Default qualifier 8 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00035_source.html#l00340">fwd.hpp:340</a></div></div>
194
- <div class="ttc" id="a00288_html_gae186317091b1a39214ebf79008d44a1e"><div class="ttname"><a href="a00288.html#gae186317091b1a39214ebf79008d44a1e">glm::bitfieldRotateLeft</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; bitfieldRotateLeft(vec&lt; L, T, Q &gt; const &amp;In, int Shift)</div><div class="ttdoc">Rotate all bits to the left. </div></div>
195
- <div class="ttc" id="a00288_html_ga2e64e3b922a296033b825311e7f5fff1"><div class="ttname"><a href="a00288.html#ga2e64e3b922a296033b825311e7f5fff1">glm::mask</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; mask(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Build a mask of &#39;count&#39; bits. </div></div>
196
- <div class="ttc" id="a00263_html_gab630f76c26b50298187f7889104d4b9c"><div class="ttname"><a href="a00263.html#gab630f76c26b50298187f7889104d4b9c">glm::uint64</a></div><div class="ttdeci">detail::uint64 uint64</div><div class="ttdoc">64 bit unsigned integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00151_source.html#l00067">scalar_uint_sized.hpp:67</a></div></div>
197
- <div class="ttc" id="a00288_html_ga3e96dd1f0a4bc892f063251ed118c0c1"><div class="ttname"><a href="a00288.html#ga3e96dd1f0a4bc892f063251ed118c0c1">glm::bitfieldFillOne</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; bitfieldFillOne(vec&lt; L, T, Q &gt; const &amp;Value, int FirstBit, int BitCount)</div><div class="ttdoc">Set to 1 a range of bits. </div></div>
198
- <div class="ttc" id="a00174_html"><div class="ttname"><a href="a00174.html">type_precision.hpp</a></div><div class="ttdoc">GLM_GTC_type_precision </div></div>
199
- <div class="ttc" id="a00260_html_gaff5189f97f9e842d9636a0f240001b2e"><div class="ttname"><a href="a00260.html#gaff5189f97f9e842d9636a0f240001b2e">glm::int64</a></div><div class="ttdeci">detail::int64 int64</div><div class="ttdoc">64 bit signed integer type. </div><div class="ttdef"><b>Definition:</b> <a href="a00146_source.html#l00067">scalar_int_sized.hpp:67</a></div></div>
200
- <div class="ttc" id="a00304_html_ga2a266e46ee218d0c680f12b35c500cc0"><div class="ttname"><a href="a00304.html#ga2a266e46ee218d0c680f12b35c500cc0">glm::u32vec2</a></div><div class="ttdeci">vec&lt; 2, u32, defaultp &gt; u32vec2</div><div class="ttdoc">Default qualifier 32 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00035_source.html#l00380">fwd.hpp:380</a></div></div>
201
- <div class="ttc" id="a00288_html_ga590488e1fc00a6cfe5d3bcaf93fbfe88"><div class="ttname"><a href="a00288.html#ga590488e1fc00a6cfe5d3bcaf93fbfe88">glm::bitfieldRotateRight</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; bitfieldRotateRight(vec&lt; L, T, Q &gt; const &amp;In, int Shift)</div><div class="ttdoc">Rotate all bits to the right. </div></div>
202
- <div class="ttc" id="a00304_html_ga2a78447eb9d66a114b193f4a25899c16"><div class="ttname"><a href="a00304.html#ga2a78447eb9d66a114b193f4a25899c16">glm::u16vec2</a></div><div class="ttdeci">vec&lt; 2, u16, defaultp &gt; u16vec2</div><div class="ttdoc">Default qualifier 16 bit unsigned integer vector of 2 components type. </div><div class="ttdef"><b>Definition:</b> <a href="a00035_source.html#l00360">fwd.hpp:360</a></div></div>
203
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
204
- </div><!-- fragment --></div><!-- contents -->
205
- <!-- start footer part -->
206
- <hr class="footer"/><address class="footer"><small>
207
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
208
- <img class="footer" src="doxygen.png" alt="doxygen"/>
209
- </a> 1.8.10
210
- </small></address>
211
- </body>
212
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00010.html DELETED
@@ -1,124 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: closest_point.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">closest_point.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00310.html">GLM_GTX_closest_point</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00010_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:ga36529c278ef716986151d58d151d697d"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
102
- <tr class="memitem:ga36529c278ef716986151d58d151d697d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00310.html#ga36529c278ef716986151d58d151d697d">closestPointOnLine</a> (vec&lt; 3, T, Q &gt; const &amp;point, vec&lt; 3, T, Q &gt; const &amp;a, vec&lt; 3, T, Q &gt; const &amp;b)</td></tr>
103
- <tr class="memdesc:ga36529c278ef716986151d58d151d697d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the point on a straight line which is the closet of a point. <a href="a00310.html#ga36529c278ef716986151d58d151d697d">More...</a><br /></td></tr>
104
- <tr class="separator:ga36529c278ef716986151d58d151d697d"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
- <tr class="memitem:ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0"></a>
106
- template&lt;typename T , qualifier Q&gt; </td></tr>
107
- <tr class="memitem:ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 2, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00310.html#ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0">closestPointOnLine</a> (vec&lt; 2, T, Q &gt; const &amp;point, vec&lt; 2, T, Q &gt; const &amp;a, vec&lt; 2, T, Q &gt; const &amp;b)</td></tr>
108
- <tr class="memdesc:ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0"><td class="mdescLeft">&#160;</td><td class="mdescRight">2d lines work as well <br /></td></tr>
109
- <tr class="separator:ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
110
- </table>
111
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
112
- <div class="textblock"><p><a class="el" href="a00310.html">GLM_GTX_closest_point</a> </p>
113
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd></dl>
114
-
115
- <p>Definition in file <a class="el" href="a00010_source.html">closest_point.hpp</a>.</p>
116
- </div></div><!-- contents -->
117
- <!-- start footer part -->
118
- <hr class="footer"/><address class="footer"><small>
119
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
120
- <img class="footer" src="doxygen.png" alt="doxygen"/>
121
- </a> 1.8.10
122
- </small></address>
123
- </body>
124
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00010_source.html DELETED
@@ -1,133 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: closest_point.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">closest_point.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00010.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
94
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
95
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
96
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
97
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
98
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
99
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;)</span></div>
100
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># else</span></div>
101
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_closest_point extension included&quot;)</span></div>
102
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># endif</span></div>
103
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
104
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
105
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
106
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
107
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
108
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
109
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00310.html#ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0">closestPointOnLine</a>(</div>
110
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; point,</div>
111
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; a,</div>
112
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; b);</div>
113
- <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
114
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
115
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL vec&lt;2, T, Q&gt; <a class="code" href="a00310.html#ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0">closestPointOnLine</a>(</div>
116
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; point,</div>
117
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; a,</div>
118
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; vec&lt;2, T, Q&gt; <span class="keyword">const</span>&amp; b);</div>
119
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div>
120
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}<span class="comment">// namespace glm</span></div>
121
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
122
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &quot;closest_point.inl&quot;</span></div>
123
- <div class="ttc" id="a00310_html_ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0"><div class="ttname"><a href="a00310.html#ga55bcbcc5fc06cb7ff7bc7a6e0e155eb0">glm::closestPointOnLine</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 2, T, Q &gt; closestPointOnLine(vec&lt; 2, T, Q &gt; const &amp;point, vec&lt; 2, T, Q &gt; const &amp;a, vec&lt; 2, T, Q &gt; const &amp;b)</div><div class="ttdoc">2d lines work as well </div></div>
124
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
125
- </div><!-- fragment --></div><!-- contents -->
126
- <!-- start footer part -->
127
- <hr class="footer"/><address class="footer"><small>
128
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
129
- <img class="footer" src="doxygen.png" alt="doxygen"/>
130
- </a> 1.8.10
131
- </small></address>
132
- </body>
133
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00011.html DELETED
@@ -1,137 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: color_encoding.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">color_encoding.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00311.html">GLM_GTX_color_encoding</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00011_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:gad12f4f65022b2c80e33fcba2ced0dc48"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad12f4f65022b2c80e33fcba2ced0dc48"></a>
102
- template&lt;typename T , qualifier Q&gt; </td></tr>
103
- <tr class="memitem:gad12f4f65022b2c80e33fcba2ced0dc48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00311.html#gad12f4f65022b2c80e33fcba2ced0dc48">convertD65XYZToD50XYZ</a> (vec&lt; 3, T, Q &gt; const &amp;ColorD65XYZ)</td></tr>
104
- <tr class="memdesc:gad12f4f65022b2c80e33fcba2ced0dc48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a D65 YUV color to D50 YUV. <br /></td></tr>
105
- <tr class="separator:gad12f4f65022b2c80e33fcba2ced0dc48"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
- <tr class="memitem:ga5265386fc3ac29e4c580d37ed470859c"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5265386fc3ac29e4c580d37ed470859c"></a>
107
- template&lt;typename T , qualifier Q&gt; </td></tr>
108
- <tr class="memitem:ga5265386fc3ac29e4c580d37ed470859c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00311.html#ga5265386fc3ac29e4c580d37ed470859c">convertD65XYZToLinearSRGB</a> (vec&lt; 3, T, Q &gt; const &amp;ColorD65XYZ)</td></tr>
109
- <tr class="memdesc:ga5265386fc3ac29e4c580d37ed470859c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a D65 YUV color to linear sRGB. <br /></td></tr>
110
- <tr class="separator:ga5265386fc3ac29e4c580d37ed470859c"><td class="memSeparator" colspan="2">&#160;</td></tr>
111
- <tr class="memitem:ga1522ba180e3d83d554a734056da031f9"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga1522ba180e3d83d554a734056da031f9"></a>
112
- template&lt;typename T , qualifier Q&gt; </td></tr>
113
- <tr class="memitem:ga1522ba180e3d83d554a734056da031f9"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00311.html#ga1522ba180e3d83d554a734056da031f9">convertLinearSRGBToD50XYZ</a> (vec&lt; 3, T, Q &gt; const &amp;ColorLinearSRGB)</td></tr>
114
- <tr class="memdesc:ga1522ba180e3d83d554a734056da031f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear sRGB color to D50 YUV. <br /></td></tr>
115
- <tr class="separator:ga1522ba180e3d83d554a734056da031f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
116
- <tr class="memitem:gaf9e130d9d4ccf51cc99317de7449f369"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf9e130d9d4ccf51cc99317de7449f369"></a>
117
- template&lt;typename T , qualifier Q&gt; </td></tr>
118
- <tr class="memitem:gaf9e130d9d4ccf51cc99317de7449f369"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00311.html#gaf9e130d9d4ccf51cc99317de7449f369">convertLinearSRGBToD65XYZ</a> (vec&lt; 3, T, Q &gt; const &amp;ColorLinearSRGB)</td></tr>
119
- <tr class="memdesc:gaf9e130d9d4ccf51cc99317de7449f369"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear sRGB color to D65 YUV. <br /></td></tr>
120
- <tr class="separator:gaf9e130d9d4ccf51cc99317de7449f369"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
- </table>
122
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
123
- <div class="textblock"><p><a class="el" href="a00311.html">GLM_GTX_color_encoding</a> </p>
124
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd>
125
- <dd>
126
- <a class="el" href="a00311.html" title="Include <glm/gtx/color_encoding.hpp> to use the features of this extension. ">GLM_GTX_color_encoding</a> (dependence) </dd></dl>
127
-
128
- <p>Definition in file <a class="el" href="a00011_source.html">color_encoding.hpp</a>.</p>
129
- </div></div><!-- contents -->
130
- <!-- start footer part -->
131
- <hr class="footer"/><address class="footer"><small>
132
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
133
- <img class="footer" src="doxygen.png" alt="doxygen"/>
134
- </a> 1.8.10
135
- </small></address>
136
- </body>
137
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00011_source.html DELETED
@@ -1,139 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: color_encoding.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">color_encoding.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00011.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
94
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
95
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
96
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/qualifier.hpp&quot;</span></div>
97
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
98
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
99
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div>
100
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
101
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
102
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_color_encoding is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;)</span></div>
103
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># else</span></div>
104
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_color_encoding extension included&quot;)</span></div>
105
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor"># endif</span></div>
106
- <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif</span></div>
107
- <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div>
108
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
109
- <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div>
110
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
111
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
112
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00311.html#gaf9e130d9d4ccf51cc99317de7449f369">convertLinearSRGBToD65XYZ</a>(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; ColorLinearSRGB);</div>
113
- <div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div>
114
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
115
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00311.html#ga1522ba180e3d83d554a734056da031f9">convertLinearSRGBToD50XYZ</a>(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; ColorLinearSRGB);</div>
116
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
117
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
118
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00311.html#ga5265386fc3ac29e4c580d37ed470859c">convertD65XYZToLinearSRGB</a>(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; ColorD65XYZ);</div>
119
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
120
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
121
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00311.html#gad12f4f65022b2c80e33fcba2ced0dc48">convertD65XYZToD50XYZ</a>(vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; ColorD65XYZ);</div>
122
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div>
123
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;} <span class="comment">//namespace glm</span></div>
124
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div>
125
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#include &quot;color_encoding.inl&quot;</span></div>
126
- <div class="ttc" id="a00311_html_ga5265386fc3ac29e4c580d37ed470859c"><div class="ttname"><a href="a00311.html#ga5265386fc3ac29e4c580d37ed470859c">glm::convertD65XYZToLinearSRGB</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; convertD65XYZToLinearSRGB(vec&lt; 3, T, Q &gt; const &amp;ColorD65XYZ)</div><div class="ttdoc">Convert a D65 YUV color to linear sRGB. </div></div>
127
- <div class="ttc" id="a00311_html_ga1522ba180e3d83d554a734056da031f9"><div class="ttname"><a href="a00311.html#ga1522ba180e3d83d554a734056da031f9">glm::convertLinearSRGBToD50XYZ</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; convertLinearSRGBToD50XYZ(vec&lt; 3, T, Q &gt; const &amp;ColorLinearSRGB)</div><div class="ttdoc">Convert a linear sRGB color to D50 YUV. </div></div>
128
- <div class="ttc" id="a00311_html_gaf9e130d9d4ccf51cc99317de7449f369"><div class="ttname"><a href="a00311.html#gaf9e130d9d4ccf51cc99317de7449f369">glm::convertLinearSRGBToD65XYZ</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; convertLinearSRGBToD65XYZ(vec&lt; 3, T, Q &gt; const &amp;ColorLinearSRGB)</div><div class="ttdoc">Convert a linear sRGB color to D65 YUV. </div></div>
129
- <div class="ttc" id="a00311_html_gad12f4f65022b2c80e33fcba2ced0dc48"><div class="ttname"><a href="a00311.html#gad12f4f65022b2c80e33fcba2ced0dc48">glm::convertD65XYZToD50XYZ</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; convertD65XYZToD50XYZ(vec&lt; 3, T, Q &gt; const &amp;ColorD65XYZ)</div><div class="ttdoc">Convert a D65 YUV color to D50 YUV. </div></div>
130
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
131
- </div><!-- fragment --></div><!-- contents -->
132
- <!-- start footer part -->
133
- <hr class="footer"/><address class="footer"><small>
134
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
135
- <img class="footer" src="doxygen.png" alt="doxygen"/>
136
- </a> 1.8.10
137
- </small></address>
138
- </body>
139
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00012.html DELETED
@@ -1,134 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: color_space.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_4c6bd29c73fa4e5a2509e1c15f846751.html">gtc</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">gtc/color_space.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00289.html">GLM_GTC_color_space</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00012_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:ga42239e7b3da900f7ef37cec7e2476579"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
102
- <tr class="memitem:ga42239e7b3da900f7ef37cec7e2476579"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga42239e7b3da900f7ef37cec7e2476579">convertLinearToSRGB</a> (vec&lt; L, T, Q &gt; const &amp;ColorLinear)</td></tr>
103
- <tr class="memdesc:ga42239e7b3da900f7ef37cec7e2476579"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear color to sRGB color using a standard gamma correction. <a href="a00289.html#ga42239e7b3da900f7ef37cec7e2476579">More...</a><br /></td></tr>
104
- <tr class="separator:ga42239e7b3da900f7ef37cec7e2476579"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
- <tr class="memitem:gaace0a21167d13d26116c283009af57f6"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
106
- <tr class="memitem:gaace0a21167d13d26116c283009af57f6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gaace0a21167d13d26116c283009af57f6">convertLinearToSRGB</a> (vec&lt; L, T, Q &gt; const &amp;ColorLinear, T Gamma)</td></tr>
107
- <tr class="memdesc:gaace0a21167d13d26116c283009af57f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a linear color to sRGB color using a custom gamma correction. <a href="a00289.html#gaace0a21167d13d26116c283009af57f6">More...</a><br /></td></tr>
108
- <tr class="separator:gaace0a21167d13d26116c283009af57f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
- <tr class="memitem:ga16c798b7a226b2c3079dedc55083d187"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
110
- <tr class="memitem:ga16c798b7a226b2c3079dedc55083d187"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#ga16c798b7a226b2c3079dedc55083d187">convertSRGBToLinear</a> (vec&lt; L, T, Q &gt; const &amp;ColorSRGB)</td></tr>
111
- <tr class="memdesc:ga16c798b7a226b2c3079dedc55083d187"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a sRGB color to linear color using a standard gamma correction. <a href="a00289.html#ga16c798b7a226b2c3079dedc55083d187">More...</a><br /></td></tr>
112
- <tr class="separator:ga16c798b7a226b2c3079dedc55083d187"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
- <tr class="memitem:gad1b91f27a9726c9cb403f9fee6e2e200"><td class="memTemplParams" colspan="2"><a class="anchor" id="gad1b91f27a9726c9cb403f9fee6e2e200"></a>
114
- template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
115
- <tr class="memitem:gad1b91f27a9726c9cb403f9fee6e2e200"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00289.html#gad1b91f27a9726c9cb403f9fee6e2e200">convertSRGBToLinear</a> (vec&lt; L, T, Q &gt; const &amp;ColorSRGB, T Gamma)</td></tr>
116
- <tr class="memdesc:gad1b91f27a9726c9cb403f9fee6e2e200"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a sRGB color to linear color using a custom gamma correction. <br /></td></tr>
117
- <tr class="separator:gad1b91f27a9726c9cb403f9fee6e2e200"><td class="memSeparator" colspan="2">&#160;</td></tr>
118
- </table>
119
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
120
- <div class="textblock"><p><a class="el" href="a00289.html">GLM_GTC_color_space</a> </p>
121
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd>
122
- <dd>
123
- <a class="el" href="a00289.html" title="Include <glm/gtc/color_space.hpp> to use the features of this extension. ">GLM_GTC_color_space</a> (dependence) </dd></dl>
124
-
125
- <p>Definition in file <a class="el" href="a00012_source.html">gtc/color_space.hpp</a>.</p>
126
- </div></div><!-- contents -->
127
- <!-- start footer part -->
128
- <hr class="footer"/><address class="footer"><small>
129
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
130
- <img class="footer" src="doxygen.png" alt="doxygen"/>
131
- </a> 1.8.10
132
- </small></address>
133
- </body>
134
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00012_source.html DELETED
@@ -1,136 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: color_space.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_4c6bd29c73fa4e5a2509e1c15f846751.html">gtc</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">gtc/color_space.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00012.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div>
94
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// Dependencies</span></div>
95
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../detail/setup.hpp&quot;</span></div>
96
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../detail/qualifier.hpp&quot;</span></div>
97
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../exponential.hpp&quot;</span></div>
98
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
99
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
100
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;limits&gt;</span></div>
101
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div>
102
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
103
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTC_color_space extension included&quot;)</span></div>
104
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#endif</span></div>
105
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div>
106
- <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
107
- <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div>
108
- <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
109
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
110
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00289.html#gaace0a21167d13d26116c283009af57f6">convertLinearToSRGB</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; ColorLinear);</div>
111
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div>
112
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
113
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00289.html#gaace0a21167d13d26116c283009af57f6">convertLinearToSRGB</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; ColorLinear, T Gamma);</div>
114
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
115
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
116
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00289.html#gad1b91f27a9726c9cb403f9fee6e2e200">convertSRGBToLinear</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; ColorSRGB);</div>
117
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div>
118
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// IEC 61966-2-1:1999 / Rec. 709 specification https://www.w3.org/Graphics/Color/srgb</span></div>
119
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
120
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00289.html#gad1b91f27a9726c9cb403f9fee6e2e200">convertSRGBToLinear</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; ColorSRGB, T Gamma);</div>
121
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
122
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;} <span class="comment">//namespace glm</span></div>
123
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
124
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#include &quot;color_space.inl&quot;</span></div>
125
- <div class="ttc" id="a00289_html_gaace0a21167d13d26116c283009af57f6"><div class="ttname"><a href="a00289.html#gaace0a21167d13d26116c283009af57f6">glm::convertLinearToSRGB</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; convertLinearToSRGB(vec&lt; L, T, Q &gt; const &amp;ColorLinear, T Gamma)</div><div class="ttdoc">Convert a linear color to sRGB color using a custom gamma correction. </div></div>
126
- <div class="ttc" id="a00289_html_gad1b91f27a9726c9cb403f9fee6e2e200"><div class="ttname"><a href="a00289.html#gad1b91f27a9726c9cb403f9fee6e2e200">glm::convertSRGBToLinear</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; convertSRGBToLinear(vec&lt; L, T, Q &gt; const &amp;ColorSRGB, T Gamma)</div><div class="ttdoc">Convert a sRGB color to linear color using a custom gamma correction. </div></div>
127
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
128
- </div><!-- fragment --></div><!-- contents -->
129
- <!-- start footer part -->
130
- <hr class="footer"/><address class="footer"><small>
131
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
132
- <img class="footer" src="doxygen.png" alt="doxygen"/>
133
- </a> 1.8.10
134
- </small></address>
135
- </body>
136
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00013.html DELETED
@@ -1,139 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: color_space.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">gtx/color_space.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00312.html">GLM_GTX_color_space</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00013_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:ga789802bec2d4fe0f9741c731b4a8a7d8"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
102
- <tr class="memitem:ga789802bec2d4fe0f9741c731b4a8a7d8"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00312.html#ga789802bec2d4fe0f9741c731b4a8a7d8">hsvColor</a> (vec&lt; 3, T, Q &gt; const &amp;rgbValue)</td></tr>
103
- <tr class="memdesc:ga789802bec2d4fe0f9741c731b4a8a7d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a color from RGB color space to its color in HSV color space. <a href="a00312.html#ga789802bec2d4fe0f9741c731b4a8a7d8">More...</a><br /></td></tr>
104
- <tr class="separator:ga789802bec2d4fe0f9741c731b4a8a7d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
- <tr class="memitem:gad028e0a4f1a9c812b39439b746295b34"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
106
- <tr class="memitem:gad028e0a4f1a9c812b39439b746295b34"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00312.html#gad028e0a4f1a9c812b39439b746295b34">luminosity</a> (vec&lt; 3, T, Q &gt; const &amp;color)</td></tr>
107
- <tr class="memdesc:gad028e0a4f1a9c812b39439b746295b34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. <a href="a00312.html#gad028e0a4f1a9c812b39439b746295b34">More...</a><br /></td></tr>
108
- <tr class="separator:gad028e0a4f1a9c812b39439b746295b34"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
- <tr class="memitem:ga5f9193be46f45f0655c05a0cdca006db"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
110
- <tr class="memitem:ga5f9193be46f45f0655c05a0cdca006db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00312.html#ga5f9193be46f45f0655c05a0cdca006db">rgbColor</a> (vec&lt; 3, T, Q &gt; const &amp;hsvValue)</td></tr>
111
- <tr class="memdesc:ga5f9193be46f45f0655c05a0cdca006db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts a color from HSV color space to its color in RGB color space. <a href="a00312.html#ga5f9193be46f45f0655c05a0cdca006db">More...</a><br /></td></tr>
112
- <tr class="separator:ga5f9193be46f45f0655c05a0cdca006db"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
- <tr class="memitem:ga01a97152b44e1550edcac60bd849e884"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
114
- <tr class="memitem:ga01a97152b44e1550edcac60bd849e884"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL mat&lt; 4, 4, T, defaultp &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00312.html#ga01a97152b44e1550edcac60bd849e884">saturation</a> (T const s)</td></tr>
115
- <tr class="memdesc:ga01a97152b44e1550edcac60bd849e884"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build a saturation matrix. <a href="a00312.html#ga01a97152b44e1550edcac60bd849e884">More...</a><br /></td></tr>
116
- <tr class="separator:ga01a97152b44e1550edcac60bd849e884"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
- <tr class="memitem:ga2156cea600e90148ece5bc96fd6db43a"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
118
- <tr class="memitem:ga2156cea600e90148ece5bc96fd6db43a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00312.html#ga2156cea600e90148ece5bc96fd6db43a">saturation</a> (T const s, vec&lt; 3, T, Q &gt; const &amp;color)</td></tr>
119
- <tr class="memdesc:ga2156cea600e90148ece5bc96fd6db43a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the saturation of a color. <a href="a00312.html#ga2156cea600e90148ece5bc96fd6db43a">More...</a><br /></td></tr>
120
- <tr class="separator:ga2156cea600e90148ece5bc96fd6db43a"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
- <tr class="memitem:gaba0eacee0736dae860e9371cc1ae4785"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
122
- <tr class="memitem:gaba0eacee0736dae860e9371cc1ae4785"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 4, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00312.html#gaba0eacee0736dae860e9371cc1ae4785">saturation</a> (T const s, vec&lt; 4, T, Q &gt; const &amp;color)</td></tr>
123
- <tr class="memdesc:gaba0eacee0736dae860e9371cc1ae4785"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify the saturation of a color. <a href="a00312.html#gaba0eacee0736dae860e9371cc1ae4785">More...</a><br /></td></tr>
124
- <tr class="separator:gaba0eacee0736dae860e9371cc1ae4785"><td class="memSeparator" colspan="2">&#160;</td></tr>
125
- </table>
126
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
127
- <div class="textblock"><p><a class="el" href="a00312.html">GLM_GTX_color_space</a> </p>
128
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd></dl>
129
-
130
- <p>Definition in file <a class="el" href="a00013_source.html">gtx/color_space.hpp</a>.</p>
131
- </div></div><!-- contents -->
132
- <!-- start footer part -->
133
- <hr class="footer"/><address class="footer"><small>
134
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
135
- <img class="footer" src="doxygen.png" alt="doxygen"/>
136
- </a> 1.8.10
137
- </small></address>
138
- </body>
139
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00013_source.html DELETED
@@ -1,150 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: color_space.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">gtx/color_space.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00013.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
94
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
95
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
96
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
97
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
98
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
99
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;)</span></div>
100
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># else</span></div>
101
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space extension included&quot;)</span></div>
102
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># endif</span></div>
103
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
104
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
105
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
106
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
107
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
108
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
109
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00312.html#ga5f9193be46f45f0655c05a0cdca006db">rgbColor</a>(</div>
110
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; hsvValue);</div>
111
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
112
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
113
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00312.html#ga789802bec2d4fe0f9741c731b4a8a7d8">hsvColor</a>(</div>
114
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; rgbValue);</div>
115
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
116
- <div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
117
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; GLM_FUNC_DECL mat&lt;4, 4, T, defaultp&gt; <a class="code" href="a00312.html#gaba0eacee0736dae860e9371cc1ae4785">saturation</a>(</div>
118
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; T <span class="keyword">const</span> s);</div>
119
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div>
120
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
121
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00312.html#gaba0eacee0736dae860e9371cc1ae4785">saturation</a>(</div>
122
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; T <span class="keyword">const</span> s,</div>
123
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; color);</div>
124
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
125
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
126
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GLM_FUNC_DECL vec&lt;4, T, Q&gt; <a class="code" href="a00312.html#gaba0eacee0736dae860e9371cc1ae4785">saturation</a>(</div>
127
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; T <span class="keyword">const</span> s,</div>
128
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; vec&lt;4, T, Q&gt; <span class="keyword">const</span>&amp; color);</div>
129
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
130
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
131
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; GLM_FUNC_DECL T <a class="code" href="a00312.html#gad028e0a4f1a9c812b39439b746295b34">luminosity</a>(</div>
132
- <div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; color);</div>
133
- <div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div>
134
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}<span class="comment">//namespace glm</span></div>
135
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div>
136
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#include &quot;color_space.inl&quot;</span></div>
137
- <div class="ttc" id="a00312_html_gad028e0a4f1a9c812b39439b746295b34"><div class="ttname"><a href="a00312.html#gad028e0a4f1a9c812b39439b746295b34">glm::luminosity</a></div><div class="ttdeci">GLM_FUNC_DECL T luminosity(vec&lt; 3, T, Q &gt; const &amp;color)</div><div class="ttdoc">Compute color luminosity associating ratios (0.33, 0.59, 0.11) to RGB canals. </div></div>
138
- <div class="ttc" id="a00312_html_gaba0eacee0736dae860e9371cc1ae4785"><div class="ttname"><a href="a00312.html#gaba0eacee0736dae860e9371cc1ae4785">glm::saturation</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 4, T, Q &gt; saturation(T const s, vec&lt; 4, T, Q &gt; const &amp;color)</div><div class="ttdoc">Modify the saturation of a color. </div></div>
139
- <div class="ttc" id="a00312_html_ga5f9193be46f45f0655c05a0cdca006db"><div class="ttname"><a href="a00312.html#ga5f9193be46f45f0655c05a0cdca006db">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; rgbColor(vec&lt; 3, T, Q &gt; const &amp;hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
140
- <div class="ttc" id="a00312_html_ga789802bec2d4fe0f9741c731b4a8a7d8"><div class="ttname"><a href="a00312.html#ga789802bec2d4fe0f9741c731b4a8a7d8">glm::hsvColor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; hsvColor(vec&lt; 3, T, Q &gt; const &amp;rgbValue)</div><div class="ttdoc">Converts a color from RGB color space to its color in HSV color space. </div></div>
141
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
142
- </div><!-- fragment --></div><!-- contents -->
143
- <!-- start footer part -->
144
- <hr class="footer"/><address class="footer"><small>
145
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
146
- <img class="footer" src="doxygen.png" alt="doxygen"/>
147
- </a> 1.8.10
148
- </small></address>
149
- </body>
150
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00014.html DELETED
@@ -1,131 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: color_space_YCoCg.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">color_space_YCoCg.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00313.html">GLM_GTX_color_space_YCoCg</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00014_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:ga0606353ec2a9b9eaa84f1b02ec391bc5"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
102
- <tr class="memitem:ga0606353ec2a9b9eaa84f1b02ec391bc5"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00313.html#ga0606353ec2a9b9eaa84f1b02ec391bc5">rgb2YCoCg</a> (vec&lt; 3, T, Q &gt; const &amp;rgbColor)</td></tr>
103
- <tr class="memdesc:ga0606353ec2a9b9eaa84f1b02ec391bc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from RGB color space to YCoCg color space. <a href="a00313.html#ga0606353ec2a9b9eaa84f1b02ec391bc5">More...</a><br /></td></tr>
104
- <tr class="separator:ga0606353ec2a9b9eaa84f1b02ec391bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
- <tr class="memitem:ga0389772e44ca0fd2ba4a79bdd8efe898"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
106
- <tr class="memitem:ga0389772e44ca0fd2ba4a79bdd8efe898"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00313.html#ga0389772e44ca0fd2ba4a79bdd8efe898">rgb2YCoCgR</a> (vec&lt; 3, T, Q &gt; const &amp;rgbColor)</td></tr>
107
- <tr class="memdesc:ga0389772e44ca0fd2ba4a79bdd8efe898"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from RGB color space to YCoCgR color space. <a href="a00313.html#ga0389772e44ca0fd2ba4a79bdd8efe898">More...</a><br /></td></tr>
108
- <tr class="separator:ga0389772e44ca0fd2ba4a79bdd8efe898"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
- <tr class="memitem:ga163596b804c7241810b2534a99eb1343"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
110
- <tr class="memitem:ga163596b804c7241810b2534a99eb1343"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00313.html#ga163596b804c7241810b2534a99eb1343">YCoCg2rgb</a> (vec&lt; 3, T, Q &gt; const &amp;YCoCgColor)</td></tr>
111
- <tr class="memdesc:ga163596b804c7241810b2534a99eb1343"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from YCoCg color space to RGB color space. <a href="a00313.html#ga163596b804c7241810b2534a99eb1343">More...</a><br /></td></tr>
112
- <tr class="separator:ga163596b804c7241810b2534a99eb1343"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
- <tr class="memitem:gaf8d30574c8576838097d8e20c295384a"><td class="memTemplParams" colspan="2">template&lt;typename T , qualifier Q&gt; </td></tr>
114
- <tr class="memitem:gaf8d30574c8576838097d8e20c295384a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00313.html#gaf8d30574c8576838097d8e20c295384a">YCoCgR2rgb</a> (vec&lt; 3, T, Q &gt; const &amp;YCoCgColor)</td></tr>
115
- <tr class="memdesc:gaf8d30574c8576838097d8e20c295384a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a color from YCoCgR color space to RGB color space. <a href="a00313.html#gaf8d30574c8576838097d8e20c295384a">More...</a><br /></td></tr>
116
- <tr class="separator:gaf8d30574c8576838097d8e20c295384a"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
- </table>
118
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
119
- <div class="textblock"><p><a class="el" href="a00313.html">GLM_GTX_color_space_YCoCg</a> </p>
120
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd></dl>
121
-
122
- <p>Definition in file <a class="el" href="a00014_source.html">color_space_YCoCg.hpp</a>.</p>
123
- </div></div><!-- contents -->
124
- <!-- start footer part -->
125
- <hr class="footer"/><address class="footer"><small>
126
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
127
- <img class="footer" src="doxygen.png" alt="doxygen"/>
128
- </a> 1.8.10
129
- </small></address>
130
- </body>
131
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00014_source.html DELETED
@@ -1,141 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: color_space_YCoCg.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">color_space_YCoCg.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00014.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
94
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
95
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
96
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
97
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
98
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor"># ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
99
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space_YCoCg is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;)</span></div>
100
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># else</span></div>
101
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_color_space_YCoCg extension included&quot;)</span></div>
102
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># endif</span></div>
103
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif</span></div>
104
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
105
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
106
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
107
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div>
108
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
109
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00313.html#ga0606353ec2a9b9eaa84f1b02ec391bc5">rgb2YCoCg</a>(</div>
110
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; <a class="code" href="a00312.html#ga5f9193be46f45f0655c05a0cdca006db">rgbColor</a>);</div>
111
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
112
- <div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
113
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00313.html#ga163596b804c7241810b2534a99eb1343">YCoCg2rgb</a>(</div>
114
- <div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; YCoCgColor);</div>
115
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div>
116
- <div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
117
- <div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00313.html#ga0389772e44ca0fd2ba4a79bdd8efe898">rgb2YCoCgR</a>(</div>
118
- <div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; <a class="code" href="a00312.html#ga5f9193be46f45f0655c05a0cdca006db">rgbColor</a>);</div>
119
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
120
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt;</div>
121
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL vec&lt;3, T, Q&gt; <a class="code" href="a00313.html#gaf8d30574c8576838097d8e20c295384a">YCoCgR2rgb</a>(</div>
122
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; vec&lt;3, T, Q&gt; <span class="keyword">const</span>&amp; YCoCgColor);</div>
123
- <div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div>
124
- <div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}<span class="comment">//namespace glm</span></div>
125
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
126
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#include &quot;color_space_YCoCg.inl&quot;</span></div>
127
- <div class="ttc" id="a00313_html_gaf8d30574c8576838097d8e20c295384a"><div class="ttname"><a href="a00313.html#gaf8d30574c8576838097d8e20c295384a">glm::YCoCgR2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; YCoCgR2rgb(vec&lt; 3, T, Q &gt; const &amp;YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCgR color space to RGB color space. </div></div>
128
- <div class="ttc" id="a00313_html_ga163596b804c7241810b2534a99eb1343"><div class="ttname"><a href="a00313.html#ga163596b804c7241810b2534a99eb1343">glm::YCoCg2rgb</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; YCoCg2rgb(vec&lt; 3, T, Q &gt; const &amp;YCoCgColor)</div><div class="ttdoc">Convert a color from YCoCg color space to RGB color space. </div></div>
129
- <div class="ttc" id="a00312_html_ga5f9193be46f45f0655c05a0cdca006db"><div class="ttname"><a href="a00312.html#ga5f9193be46f45f0655c05a0cdca006db">glm::rgbColor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; rgbColor(vec&lt; 3, T, Q &gt; const &amp;hsvValue)</div><div class="ttdoc">Converts a color from HSV color space to its color in RGB color space. </div></div>
130
- <div class="ttc" id="a00313_html_ga0606353ec2a9b9eaa84f1b02ec391bc5"><div class="ttname"><a href="a00313.html#ga0606353ec2a9b9eaa84f1b02ec391bc5">glm::rgb2YCoCg</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; rgb2YCoCg(vec&lt; 3, T, Q &gt; const &amp;rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCg color space. </div></div>
131
- <div class="ttc" id="a00313_html_ga0389772e44ca0fd2ba4a79bdd8efe898"><div class="ttname"><a href="a00313.html#ga0389772e44ca0fd2ba4a79bdd8efe898">glm::rgb2YCoCgR</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 3, T, Q &gt; rgb2YCoCgR(vec&lt; 3, T, Q &gt; const &amp;rgbColor)</div><div class="ttdoc">Convert a color from RGB color space to YCoCgR color space. </div></div>
132
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
133
- </div><!-- fragment --></div><!-- contents -->
134
- <!-- start footer part -->
135
- <hr class="footer"/><address class="footer"><small>
136
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
137
- <img class="footer" src="doxygen.png" alt="doxygen"/>
138
- </a> 1.8.10
139
- </small></address>
140
- </body>
141
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00015.html DELETED
@@ -1,267 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: common.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">common.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00280.html">Core features</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00015_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:ga439e60a72eadecfeda2df5449c613a64"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
102
- <tr class="memitem:ga439e60a72eadecfeda2df5449c613a64"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga439e60a72eadecfeda2df5449c613a64">abs</a> (genType x)</td></tr>
103
- <tr class="memdesc:ga439e60a72eadecfeda2df5449c613a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x. <a href="a00241.html#ga439e60a72eadecfeda2df5449c613a64">More...</a><br /></td></tr>
104
- <tr class="separator:ga439e60a72eadecfeda2df5449c613a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
- <tr class="memitem:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
106
- <tr class="memitem:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
107
- <tr class="memdesc:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x if x &gt;= 0; otherwise, it returns -x. <a href="a00241.html#ga81d3abddd0ef0c8de579bc541ecadab6">More...</a><br /></td></tr>
108
- <tr class="separator:ga81d3abddd0ef0c8de579bc541ecadab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
- <tr class="memitem:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
110
- <tr class="memitem:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gafb9d2a645a23aca12d4d6de0104b7657">ceil</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
111
- <tr class="memdesc:gafb9d2a645a23aca12d4d6de0104b7657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is greater than or equal to x. <a href="a00241.html#gafb9d2a645a23aca12d4d6de0104b7657">More...</a><br /></td></tr>
112
- <tr class="separator:gafb9d2a645a23aca12d4d6de0104b7657"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
- <tr class="memitem:ga7cd77683da6361e297c56443fc70806d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
114
- <tr class="memitem:ga7cd77683da6361e297c56443fc70806d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga7cd77683da6361e297c56443fc70806d">clamp</a> (genType x, genType minVal, genType maxVal)</td></tr>
115
- <tr class="memdesc:ga7cd77683da6361e297c56443fc70806d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. <a href="a00241.html#ga7cd77683da6361e297c56443fc70806d">More...</a><br /></td></tr>
116
- <tr class="separator:ga7cd77683da6361e297c56443fc70806d"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
- <tr class="memitem:gafba2e0674deb5953878d89483cd6323d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
118
- <tr class="memitem:gafba2e0674deb5953878d89483cd6323d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gafba2e0674deb5953878d89483cd6323d">clamp</a> (vec&lt; L, T, Q &gt; const &amp;x, T minVal, T maxVal)</td></tr>
119
- <tr class="memdesc:gafba2e0674deb5953878d89483cd6323d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. <a href="a00241.html#gafba2e0674deb5953878d89483cd6323d">More...</a><br /></td></tr>
120
- <tr class="separator:gafba2e0674deb5953878d89483cd6323d"><td class="memSeparator" colspan="2">&#160;</td></tr>
121
- <tr class="memitem:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
122
- <tr class="memitem:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;minVal, vec&lt; L, T, Q &gt; const &amp;maxVal)</td></tr>
123
- <tr class="memdesc:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal and maxVal. <a href="a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">More...</a><br /></td></tr>
124
- <tr class="separator:gaa0f2f12e9108b09e22a3f0b2008a0b5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
125
- <tr class="memitem:ga1425c1c3160ec51214b03a0469a3013d"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga1425c1c3160ec51214b03a0469a3013d">floatBitsToInt</a> (float const &amp;v)</td></tr>
126
- <tr class="memdesc:ga1425c1c3160ec51214b03a0469a3013d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value. <a href="a00241.html#ga1425c1c3160ec51214b03a0469a3013d">More...</a><br /></td></tr>
127
- <tr class="separator:ga1425c1c3160ec51214b03a0469a3013d"><td class="memSeparator" colspan="2">&#160;</td></tr>
128
- <tr class="memitem:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
129
- <tr class="memitem:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, int, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a> (vec&lt; L, float, Q &gt; const &amp;v)</td></tr>
130
- <tr class="memdesc:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a signed integer value representing the encoding of a floating-point value. <a href="a00241.html#ga99f7d62f78ac5ea3b49bae715c9488ed">More...</a><br /></td></tr>
131
- <tr class="separator:ga99f7d62f78ac5ea3b49bae715c9488ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
132
- <tr class="memitem:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL uint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga70e0271c34af52f3100c7960e18c3f2b">floatBitsToUint</a> (float const &amp;v)</td></tr>
133
- <tr class="memdesc:ga70e0271c34af52f3100c7960e18c3f2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value. <a href="a00241.html#ga70e0271c34af52f3100c7960e18c3f2b">More...</a><br /></td></tr>
134
- <tr class="separator:ga70e0271c34af52f3100c7960e18c3f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
135
- <tr class="memitem:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
136
- <tr class="memitem:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, uint, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a> (vec&lt; L, float, Q &gt; const &amp;v)</td></tr>
137
- <tr class="memdesc:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a unsigned integer value representing the encoding of a floating-point value. <a href="a00241.html#ga49418ba4c8a60fbbb5d57b705f3e26db">More...</a><br /></td></tr>
138
- <tr class="separator:ga49418ba4c8a60fbbb5d57b705f3e26db"><td class="memSeparator" colspan="2">&#160;</td></tr>
139
- <tr class="memitem:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
140
- <tr class="memitem:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
141
- <tr class="memdesc:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer that is less then or equal to x. <a href="a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d">More...</a><br /></td></tr>
142
- <tr class="separator:gaa9d0742639e85b29c7c5de11cfd6840d"><td class="memSeparator" colspan="2">&#160;</td></tr>
143
- <tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
144
- <tr class="memitem:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a> (genType const &amp;a, genType const &amp;b, genType const &amp;c)</td></tr>
145
- <tr class="memdesc:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes and returns a * b + c. <a href="a00241.html#gad0f444d4b81cc53c3b6edf5aa25078c2">More...</a><br /></td></tr>
146
- <tr class="separator:gad0f444d4b81cc53c3b6edf5aa25078c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
147
- <tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
148
- <tr class="memitem:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga8ba89e40e55ae5cdf228548f9b7639c7">fract</a> (genType x)</td></tr>
149
- <tr class="memdesc:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x). <a href="a00241.html#ga8ba89e40e55ae5cdf228548f9b7639c7">More...</a><br /></td></tr>
150
- <tr class="separator:ga8ba89e40e55ae5cdf228548f9b7639c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
151
- <tr class="memitem:ga2df623004f634b440d61e018d62c751b"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
152
- <tr class="memitem:ga2df623004f634b440d61e018d62c751b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga2df623004f634b440d61e018d62c751b">fract</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
153
- <tr class="memdesc:ga2df623004f634b440d61e018d62c751b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return x - floor(x). <a href="a00241.html#ga2df623004f634b440d61e018d62c751b">More...</a><br /></td></tr>
154
- <tr class="separator:ga2df623004f634b440d61e018d62c751b"><td class="memSeparator" colspan="2">&#160;</td></tr>
155
- <tr class="memitem:gaddf5ef73283c171730e0bcc11833fa81"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
156
- <tr class="memitem:gaddf5ef73283c171730e0bcc11833fa81"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a> (genType x, int &amp;exp)</td></tr>
157
- <tr class="memdesc:gaddf5ef73283c171730e0bcc11833fa81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two, such that: x = significand * exp(2, exponent) <a href="a00241.html#gaddf5ef73283c171730e0bcc11833fa81">More...</a><br /></td></tr>
158
- <tr class="separator:gaddf5ef73283c171730e0bcc11833fa81"><td class="memSeparator" colspan="2">&#160;</td></tr>
159
- <tr class="memitem:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">intBitsToFloat</a> (int const &amp;v)</td></tr>
160
- <tr class="memdesc:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. <a href="a00241.html#ga4fb7c21c2dce064b26fd9ccdaf9adcd4">More...</a><br /></td></tr>
161
- <tr class="separator:ga4fb7c21c2dce064b26fd9ccdaf9adcd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
162
- <tr class="memitem:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
163
- <tr class="memitem:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, float, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a> (vec&lt; L, int, Q &gt; const &amp;v)</td></tr>
164
- <tr class="memdesc:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value. <a href="a00241.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">More...</a><br /></td></tr>
165
- <tr class="separator:ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
166
- <tr class="memitem:ga2885587c23a106301f20443896365b62"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
167
- <tr class="memitem:ga2885587c23a106301f20443896365b62"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga2885587c23a106301f20443896365b62">isinf</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
168
- <tr class="memdesc:ga2885587c23a106301f20443896365b62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a positive infinity or negative infinity representation in the underlying implementation's set of floating point representations. <a href="a00241.html#ga2885587c23a106301f20443896365b62">More...</a><br /></td></tr>
169
- <tr class="separator:ga2885587c23a106301f20443896365b62"><td class="memSeparator" colspan="2">&#160;</td></tr>
170
- <tr class="memitem:ga29ef934c00306490de837b4746b4e14d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
171
- <tr class="memitem:ga29ef934c00306490de837b4746b4e14d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga29ef934c00306490de837b4746b4e14d">isnan</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
172
- <tr class="memdesc:ga29ef934c00306490de837b4746b4e14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x holds a NaN (not a number) representation in the underlying implementation's set of floating point representations. <a href="a00241.html#ga29ef934c00306490de837b4746b4e14d">More...</a><br /></td></tr>
173
- <tr class="separator:ga29ef934c00306490de837b4746b4e14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
174
- <tr class="memitem:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
175
- <tr class="memitem:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a> (genType const &amp;x, int const &amp;exp)</td></tr>
176
- <tr class="memdesc:gac3010e0a0c35a1b514540f2fb579c58c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a floating-point number from x and the corresponding integral exponent of two in exp, returning: significand * exp(2, exponent) <a href="a00241.html#gac3010e0a0c35a1b514540f2fb579c58c">More...</a><br /></td></tr>
177
- <tr class="separator:gac3010e0a0c35a1b514540f2fb579c58c"><td class="memSeparator" colspan="2">&#160;</td></tr>
178
- <tr class="memitem:gae02d42887fc5570451f880e3c624b9ac"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
179
- <tr class="memitem:gae02d42887fc5570451f880e3c624b9ac"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gae02d42887fc5570451f880e3c624b9ac">max</a> (genType x, genType y)</td></tr>
180
- <tr class="memdesc:gae02d42887fc5570451f880e3c624b9ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x. <a href="a00241.html#gae02d42887fc5570451f880e3c624b9ac">More...</a><br /></td></tr>
181
- <tr class="separator:gae02d42887fc5570451f880e3c624b9ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
182
- <tr class="memitem:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
183
- <tr class="memitem:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga03e45d6e60d1c36edb00c52edeea0f31">max</a> (vec&lt; L, T, Q &gt; const &amp;x, T y)</td></tr>
184
- <tr class="memdesc:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x. <a href="a00241.html#ga03e45d6e60d1c36edb00c52edeea0f31">More...</a><br /></td></tr>
185
- <tr class="separator:ga03e45d6e60d1c36edb00c52edeea0f31"><td class="memSeparator" colspan="2">&#160;</td></tr>
186
- <tr class="memitem:gac1fec0c3303b572a6d4697a637213870"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
187
- <tr class="memitem:gac1fec0c3303b572a6d4697a637213870"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gac1fec0c3303b572a6d4697a637213870">max</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
188
- <tr class="memdesc:gac1fec0c3303b572a6d4697a637213870"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if x &lt; y; otherwise, it returns x. <a href="a00241.html#gac1fec0c3303b572a6d4697a637213870">More...</a><br /></td></tr>
189
- <tr class="separator:gac1fec0c3303b572a6d4697a637213870"><td class="memSeparator" colspan="2">&#160;</td></tr>
190
- <tr class="memitem:ga6cf8098827054a270ee36b18e30d471d"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
191
- <tr class="memitem:ga6cf8098827054a270ee36b18e30d471d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga6cf8098827054a270ee36b18e30d471d">min</a> (genType x, genType y)</td></tr>
192
- <tr class="memdesc:ga6cf8098827054a270ee36b18e30d471d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x. <a href="a00241.html#ga6cf8098827054a270ee36b18e30d471d">More...</a><br /></td></tr>
193
- <tr class="separator:ga6cf8098827054a270ee36b18e30d471d"><td class="memSeparator" colspan="2">&#160;</td></tr>
194
- <tr class="memitem:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
195
- <tr class="memitem:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaa7d015eba1f9f48519251f4abe69b14d">min</a> (vec&lt; L, T, Q &gt; const &amp;x, T y)</td></tr>
196
- <tr class="memdesc:gaa7d015eba1f9f48519251f4abe69b14d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x. <a href="a00241.html#gaa7d015eba1f9f48519251f4abe69b14d">More...</a><br /></td></tr>
197
- <tr class="separator:gaa7d015eba1f9f48519251f4abe69b14d"><td class="memSeparator" colspan="2">&#160;</td></tr>
198
- <tr class="memitem:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
199
- <tr class="memitem:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
200
- <tr class="memdesc:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns y if y &lt; x; otherwise, it returns x. <a href="a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48">More...</a><br /></td></tr>
201
- <tr class="separator:ga31f49ef9e7d1beb003160c5e009b0c48"><td class="memSeparator" colspan="2">&#160;</td></tr>
202
- <tr class="memitem:ga8e93f374aae27d1a88b921860351f8d4"><td class="memTemplParams" colspan="2">template&lt;typename genTypeT , typename genTypeU &gt; </td></tr>
203
- <tr class="memitem:ga8e93f374aae27d1a88b921860351f8d4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genTypeT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a> (genTypeT x, genTypeT y, genTypeU a)</td></tr>
204
- <tr class="memdesc:ga8e93f374aae27d1a88b921860351f8d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. <a href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">More...</a><br /></td></tr>
205
- <tr class="separator:ga8e93f374aae27d1a88b921860351f8d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
206
- <tr class="memitem:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
207
- <tr class="memitem:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a> (vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</td></tr>
208
- <tr class="memdesc:ga9b197a452cd52db3c5c18bac72bd7798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modulus. <a href="a00241.html#ga9b197a452cd52db3c5c18bac72bd7798">More...</a><br /></td></tr>
209
- <tr class="separator:ga9b197a452cd52db3c5c18bac72bd7798"><td class="memSeparator" colspan="2">&#160;</td></tr>
210
- <tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
211
- <tr class="memitem:ga85e33f139b8db1b39b590a5713b9e679"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a> (genType x, genType &amp;i)</td></tr>
212
- <tr class="memdesc:ga85e33f139b8db1b39b590a5713b9e679"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the fractional part of x and sets i to the integer part (as a whole number floating point value). <a href="a00241.html#ga85e33f139b8db1b39b590a5713b9e679">More...</a><br /></td></tr>
213
- <tr class="separator:ga85e33f139b8db1b39b590a5713b9e679"><td class="memSeparator" colspan="2">&#160;</td></tr>
214
- <tr class="memitem:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
215
- <tr class="memitem:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gafa03aca8c4713e1cc892aa92ca135a7e">round</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
216
- <tr class="memdesc:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00241.html#gafa03aca8c4713e1cc892aa92ca135a7e">More...</a><br /></td></tr>
217
- <tr class="separator:gafa03aca8c4713e1cc892aa92ca135a7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
218
- <tr class="memitem:ga76b81785045a057989a84d99aeeb1578"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
219
- <tr class="memitem:ga76b81785045a057989a84d99aeeb1578"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga76b81785045a057989a84d99aeeb1578">roundEven</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
220
- <tr class="memdesc:ga76b81785045a057989a84d99aeeb1578"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x. <a href="a00241.html#ga76b81785045a057989a84d99aeeb1578">More...</a><br /></td></tr>
221
- <tr class="separator:ga76b81785045a057989a84d99aeeb1578"><td class="memSeparator" colspan="2">&#160;</td></tr>
222
- <tr class="memitem:ga1e2e5cfff800056540e32f6c9b604b28"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
223
- <tr class="memitem:ga1e2e5cfff800056540e32f6c9b604b28"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga1e2e5cfff800056540e32f6c9b604b28">sign</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
224
- <tr class="memdesc:ga1e2e5cfff800056540e32f6c9b604b28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 1.0 if x &gt; 0, 0.0 if x == 0, or -1.0 if x &lt; 0. <a href="a00241.html#ga1e2e5cfff800056540e32f6c9b604b28">More...</a><br /></td></tr>
225
- <tr class="separator:ga1e2e5cfff800056540e32f6c9b604b28"><td class="memSeparator" colspan="2">&#160;</td></tr>
226
- <tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
227
- <tr class="memitem:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a> (genType edge0, genType edge1, genType x)</td></tr>
228
- <tr class="memdesc:ga562edf7eca082cc5b7a0aaf180436daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt;= edge0 and 1.0 if x &gt;= edge1 and performs smooth Hermite interpolation between 0 and 1 when edge0 &lt; x &lt; edge1. <a href="a00241.html#ga562edf7eca082cc5b7a0aaf180436daf">More...</a><br /></td></tr>
229
- <tr class="separator:ga562edf7eca082cc5b7a0aaf180436daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
230
- <tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
231
- <tr class="memitem:ga015a1261ff23e12650211aa872863cce"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga015a1261ff23e12650211aa872863cce">step</a> (genType edge, genType x)</td></tr>
232
- <tr class="memdesc:ga015a1261ff23e12650211aa872863cce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0 for each component of a genType. <a href="a00241.html#ga015a1261ff23e12650211aa872863cce">More...</a><br /></td></tr>
233
- <tr class="separator:ga015a1261ff23e12650211aa872863cce"><td class="memSeparator" colspan="2">&#160;</td></tr>
234
- <tr class="memitem:ga8f9a911a48ef244b51654eaefc81c551"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
235
- <tr class="memitem:ga8f9a911a48ef244b51654eaefc81c551"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga8f9a911a48ef244b51654eaefc81c551">step</a> (T edge, vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
236
- <tr class="memdesc:ga8f9a911a48ef244b51654eaefc81c551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0. <a href="a00241.html#ga8f9a911a48ef244b51654eaefc81c551">More...</a><br /></td></tr>
237
- <tr class="separator:ga8f9a911a48ef244b51654eaefc81c551"><td class="memSeparator" colspan="2">&#160;</td></tr>
238
- <tr class="memitem:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
239
- <tr class="memitem:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a> (vec&lt; L, T, Q &gt; const &amp;edge, vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
240
- <tr class="memdesc:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns 0.0 if x &lt; edge, otherwise it returns 1.0. <a href="a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">More...</a><br /></td></tr>
241
- <tr class="separator:gaf4a5fc81619c7d3e8b22f53d4a098c7f"><td class="memSeparator" colspan="2">&#160;</td></tr>
242
- <tr class="memitem:gaf9375e3e06173271d49e6ffa3a334259"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
243
- <tr class="memitem:gaf9375e3e06173271d49e6ffa3a334259"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#gaf9375e3e06173271d49e6ffa3a334259">trunc</a> (vec&lt; L, T, Q &gt; const &amp;x)</td></tr>
244
- <tr class="memdesc:gaf9375e3e06173271d49e6ffa3a334259"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolute value of x. <a href="a00241.html#gaf9375e3e06173271d49e6ffa3a334259">More...</a><br /></td></tr>
245
- <tr class="separator:gaf9375e3e06173271d49e6ffa3a334259"><td class="memSeparator" colspan="2">&#160;</td></tr>
246
- <tr class="memitem:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memItemLeft" align="right" valign="top">GLM_FUNC_DECL float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00241.html#gab2bae0d15dcdca6093f88f76b3975d97">uintBitsToFloat</a> (uint const &amp;v)</td></tr>
247
- <tr class="memdesc:gab2bae0d15dcdca6093f88f76b3975d97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. <a href="a00241.html#gab2bae0d15dcdca6093f88f76b3975d97">More...</a><br /></td></tr>
248
- <tr class="separator:gab2bae0d15dcdca6093f88f76b3975d97"><td class="memSeparator" colspan="2">&#160;</td></tr>
249
- <tr class="memitem:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memTemplParams" colspan="2">template&lt;length_t L, qualifier Q&gt; </td></tr>
250
- <tr class="memitem:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, float, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00241.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a> (vec&lt; L, uint, Q &gt; const &amp;v)</td></tr>
251
- <tr class="memdesc:ga97f46b5f7b42fe44482e13356eb394ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value. <a href="a00241.html#ga97f46b5f7b42fe44482e13356eb394ae">More...</a><br /></td></tr>
252
- <tr class="separator:ga97f46b5f7b42fe44482e13356eb394ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
253
- </table>
254
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
255
- <div class="textblock"><p><a class="el" href="a00280.html">Core features</a> </p>
256
- <dl class="section see"><dt>See also</dt><dd><a href="http://www.opengl.org/registry/doc/GLSLangSpec.4.20.8.pdf">GLSL 4.20.8 specification, section 8.3 Common Functions</a> </dd></dl>
257
-
258
- <p>Definition in file <a class="el" href="a00015_source.html">common.hpp</a>.</p>
259
- </div></div><!-- contents -->
260
- <!-- start footer part -->
261
- <hr class="footer"/><address class="footer"><small>
262
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
263
- <img class="footer" src="doxygen.png" alt="doxygen"/>
264
- </a> 1.8.10
265
- </small></address>
266
- </body>
267
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00015_source.html DELETED
@@ -1,276 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: common.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">common.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00015.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div>
94
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;detail/qualifier.hpp&quot;</span></div>
95
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;detail/_fixes.hpp&quot;</span></div>
96
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div>
97
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
98
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div>
99
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
100
- <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
101
- <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00241.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a>(genType x);</div>
102
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
103
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
104
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga81d3abddd0ef0c8de579bc541ecadab6">abs</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
105
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
106
- <div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
107
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga1e2e5cfff800056540e32f6c9b604b28">sign</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
108
- <div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
109
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
110
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d">floor</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
111
- <div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div>
112
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
113
- <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gaf9375e3e06173271d49e6ffa3a334259">trunc</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
114
- <div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div>
115
- <div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
116
- <div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gafa03aca8c4713e1cc892aa92ca135a7e">round</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
117
- <div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div>
118
- <div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
119
- <div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga76b81785045a057989a84d99aeeb1578">roundEven</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
120
- <div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div>
121
- <div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
122
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gafb9d2a645a23aca12d4d6de0104b7657">ceil</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
123
- <div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
124
- <div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
125
- <div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga2df623004f634b440d61e018d62c751b">fract</a>(genType x);</div>
126
- <div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div>
127
- <div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
128
- <div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga2df623004f634b440d61e018d62c751b">fract</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
129
- <div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div>
130
- <div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
131
- <div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(genType x, genType y);</div>
132
- <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div>
133
- <div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
134
- <div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
135
- <div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div>
136
- <div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
137
- <div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga9b197a452cd52db3c5c18bac72bd7798">mod</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
138
- <div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div>
139
- <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
140
- <div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga85e33f139b8db1b39b590a5713b9e679">modf</a>(genType x, genType&amp; i);</div>
141
- <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div>
142
- <div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
143
- <div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(genType x, genType y);</div>
144
- <div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div>
145
- <div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
146
- <div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
147
- <div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
148
- <div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
149
- <div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48">min</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
150
- <div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
151
- <div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
152
- <div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00241.html#gac1fec0c3303b572a6d4697a637213870">max</a>(genType x, genType y);</div>
153
- <div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
154
- <div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
155
- <div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gac1fec0c3303b572a6d4697a637213870">max</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T y);</div>
156
- <div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div>
157
- <div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
158
- <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gac1fec0c3303b572a6d4697a637213870">max</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y);</div>
159
- <div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div>
160
- <div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
161
- <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR genType <a class="code" href="a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(genType x, genType minVal, genType maxVal);</div>
162
- <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div>
163
- <div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
164
- <div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, T minVal, T maxVal);</div>
165
- <div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div>
166
- <div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
167
- <div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; GLM_FUNC_DECL GLM_CONSTEXPR vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">clamp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; minVal, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; maxVal);</div>
168
- <div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div>
169
- <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genTypeT, <span class="keyword">typename</span> genTypeU&gt;</div>
170
- <div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; GLM_FUNC_DECL genTypeT <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(genTypeT x, genTypeT y, genTypeU a);</div>
171
- <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div>
172
- <div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
173
- <div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, vec&lt;L, U, Q&gt; <span class="keyword">const</span>&amp; a);</div>
174
- <div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div>
175
- <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, <span class="keyword">typename</span> U, qualifier Q&gt;</div>
176
- <div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; y, U a);</div>
177
- <div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div>
178
- <div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
179
- <div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(genType edge, genType x);</div>
180
- <div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
181
- <div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
182
- <div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(T edge, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
183
- <div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div>
184
- <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
185
- <div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">step</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
186
- <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div>
187
- <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
188
- <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(genType edge0, genType edge1, genType x);</div>
189
- <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div>
190
- <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
191
- <div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(T edge0, T edge1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
192
- <div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
193
- <div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
194
- <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#ga562edf7eca082cc5b7a0aaf180436daf">smoothstep</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge0, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; edge1, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
195
- <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
196
- <div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
197
- <div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00241.html#ga29ef934c00306490de837b4746b4e14d">isnan</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
198
- <div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div>
199
- <div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
200
- <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00241.html#ga2885587c23a106301f20443896365b62">isinf</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; x);</div>
201
- <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div>
202
- <div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; GLM_FUNC_DECL <span class="keywordtype">int</span> <a class="code" href="a00241.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a>(<span class="keywordtype">float</span> <span class="keyword">const</span>&amp; v);</div>
203
- <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div>
204
- <div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
205
- <div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; GLM_FUNC_DECL vec&lt;L, int, Q&gt; <a class="code" href="a00241.html#ga99f7d62f78ac5ea3b49bae715c9488ed">floatBitsToInt</a>(vec&lt;L, float, Q&gt; <span class="keyword">const</span>&amp; v);</div>
206
- <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;</div>
207
- <div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; GLM_FUNC_DECL uint <a class="code" href="a00241.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a>(<span class="keywordtype">float</span> <span class="keyword">const</span>&amp; v);</div>
208
- <div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div>
209
- <div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
210
- <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; GLM_FUNC_DECL vec&lt;L, uint, Q&gt; <a class="code" href="a00241.html#ga49418ba4c8a60fbbb5d57b705f3e26db">floatBitsToUint</a>(vec&lt;L, float, Q&gt; <span class="keyword">const</span>&amp; v);</div>
211
- <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div>
212
- <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00241.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a>(<span class="keywordtype">int</span> <span class="keyword">const</span>&amp; v);</div>
213
- <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div>
214
- <div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
215
- <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; GLM_FUNC_DECL vec&lt;L, float, Q&gt; <a class="code" href="a00241.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">intBitsToFloat</a>(vec&lt;L, int, Q&gt; <span class="keyword">const</span>&amp; v);</div>
216
- <div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div>
217
- <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; GLM_FUNC_DECL <span class="keywordtype">float</span> <a class="code" href="a00241.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a>(uint <span class="keyword">const</span>&amp; v);</div>
218
- <div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div>
219
- <div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keyword">template</span>&lt;length_t L, qualifier Q&gt;</div>
220
- <div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; GLM_FUNC_DECL vec&lt;L, float, Q&gt; <a class="code" href="a00241.html#ga97f46b5f7b42fe44482e13356eb394ae">uintBitsToFloat</a>(vec&lt;L, uint, Q&gt; <span class="keyword">const</span>&amp; v);</div>
221
- <div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div>
222
- <div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
223
- <div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#gad0f444d4b81cc53c3b6edf5aa25078c2">fma</a>(genType <span class="keyword">const</span>&amp; a, genType <span class="keyword">const</span>&amp; b, genType <span class="keyword">const</span>&amp; c);</div>
224
- <div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div>
225
- <div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
226
- <div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a>(genType x, <span class="keywordtype">int</span>&amp; <a class="code" href="a00242.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
227
- <div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; </div>
228
- <div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
229
- <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gaddf5ef73283c171730e0bcc11833fa81">frexp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;L, int, Q&gt;&amp; <a class="code" href="a00242.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
230
- <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div>
231
- <div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
232
- <div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; GLM_FUNC_DECL genType <a class="code" href="a00241.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a>(genType <span class="keyword">const</span>&amp; x, <span class="keywordtype">int</span> <span class="keyword">const</span>&amp; <a class="code" href="a00242.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
233
- <div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; </div>
234
- <div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
235
- <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00241.html#gac3010e0a0c35a1b514540f2fb579c58c">ldexp</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v, vec&lt;L, int, Q&gt; <span class="keyword">const</span>&amp; <a class="code" href="a00242.html#ga071566cadc7505455e611f2a0353f4d4">exp</a>);</div>
236
- <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div>
237
- <div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;}<span class="comment">//namespace glm</span></div>
238
- <div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div>
239
- <div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;<span class="preprocessor">#include &quot;detail/func_common.inl&quot;</span></div>
240
- <div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div>
241
- <div class="ttc" id="a00241_html_gaa9d0742639e85b29c7c5de11cfd6840d"><div class="ttname"><a href="a00241.html#gaa9d0742639e85b29c7c5de11cfd6840d">glm::floor</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; floor(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is less then or equal to x. </div></div>
242
- <div class="ttc" id="a00241_html_gad0f444d4b81cc53c3b6edf5aa25078c2"><div class="ttname"><a href="a00241.html#gad0f444d4b81cc53c3b6edf5aa25078c2">glm::fma</a></div><div class="ttdeci">GLM_FUNC_DECL genType fma(genType const &amp;a, genType const &amp;b, genType const &amp;c)</div><div class="ttdoc">Computes and returns a * b + c. </div></div>
243
- <div class="ttc" id="a00241_html_gaf9375e3e06173271d49e6ffa3a334259"><div class="ttname"><a href="a00241.html#gaf9375e3e06173271d49e6ffa3a334259">glm::trunc</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; trunc(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut...</div></div>
244
- <div class="ttc" id="a00241_html_ga9b197a452cd52db3c5c18bac72bd7798"><div class="ttname"><a href="a00241.html#ga9b197a452cd52db3c5c18bac72bd7798">glm::mod</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; mod(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Modulus. </div></div>
245
- <div class="ttc" id="a00241_html_gaa0f2f12e9108b09e22a3f0b2008a0b5d"><div class="ttname"><a href="a00241.html#gaa0f2f12e9108b09e22a3f0b2008a0b5d">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; clamp(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;minVal, vec&lt; L, T, Q &gt; const &amp;maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
246
- <div class="ttc" id="a00241_html_gafa03aca8c4713e1cc892aa92ca135a7e"><div class="ttname"><a href="a00241.html#gafa03aca8c4713e1cc892aa92ca135a7e">glm::round</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; round(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
247
- <div class="ttc" id="a00241_html_ga97f46b5f7b42fe44482e13356eb394ae"><div class="ttname"><a href="a00241.html#ga97f46b5f7b42fe44482e13356eb394ae">glm::uintBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, float, Q &gt; uintBitsToFloat(vec&lt; L, uint, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a unsigned integer encoding of a floating-point value...</div></div>
248
- <div class="ttc" id="a00241_html_ga1e2e5cfff800056540e32f6c9b604b28"><div class="ttname"><a href="a00241.html#ga1e2e5cfff800056540e32f6c9b604b28">glm::sign</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; sign(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0. </div></div>
249
- <div class="ttc" id="a00241_html_ga2885587c23a106301f20443896365b62"><div class="ttname"><a href="a00241.html#ga2885587c23a106301f20443896365b62">glm::isinf</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; isinf(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a positive infinity or negative infinity representation in the underlying imp...</div></div>
250
- <div class="ttc" id="a00241_html_ga76b81785045a057989a84d99aeeb1578"><div class="ttname"><a href="a00241.html#ga76b81785045a057989a84d99aeeb1578">glm::roundEven</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; roundEven(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer to x. </div></div>
251
- <div class="ttc" id="a00241_html_ga85e33f139b8db1b39b590a5713b9e679"><div class="ttname"><a href="a00241.html#ga85e33f139b8db1b39b590a5713b9e679">glm::modf</a></div><div class="ttdeci">GLM_FUNC_DECL genType modf(genType x, genType &amp;i)</div><div class="ttdoc">Returns the fractional part of x and sets i to the integer part (as a whole number floating point val...</div></div>
252
- <div class="ttc" id="a00241_html_gafb9d2a645a23aca12d4d6de0104b7657"><div class="ttname"><a href="a00241.html#gafb9d2a645a23aca12d4d6de0104b7657">glm::ceil</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; ceil(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns a value equal to the nearest integer that is greater than or equal to x. </div></div>
253
- <div class="ttc" id="a00241_html_ga31f49ef9e7d1beb003160c5e009b0c48"><div class="ttname"><a href="a00241.html#ga31f49ef9e7d1beb003160c5e009b0c48">glm::min</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; min(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Returns y if y < x; otherwise, it returns x. </div></div>
254
- <div class="ttc" id="a00241_html_ga7a0a8291a1cf3e1c2aee33030a1bd7b0"><div class="ttname"><a href="a00241.html#ga7a0a8291a1cf3e1c2aee33030a1bd7b0">glm::intBitsToFloat</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, float, Q &gt; intBitsToFloat(vec&lt; L, int, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a floating-point value corresponding to a signed integer encoding of a floating-point value...</div></div>
255
- <div class="ttc" id="a00241_html_ga29ef934c00306490de837b4746b4e14d"><div class="ttname"><a href="a00241.html#ga29ef934c00306490de837b4746b4e14d">glm::isnan</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; isnan(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns true if x holds a NaN (not a number) representation in the underlying implementation&#39;s set of...</div></div>
256
- <div class="ttc" id="a00242_html_ga071566cadc7505455e611f2a0353f4d4"><div class="ttname"><a href="a00242.html#ga071566cadc7505455e611f2a0353f4d4">glm::exp</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; exp(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Returns the natural exponentiation of x, i.e., e^x. </div></div>
257
- <div class="ttc" id="a00241_html_ga49418ba4c8a60fbbb5d57b705f3e26db"><div class="ttname"><a href="a00241.html#ga49418ba4c8a60fbbb5d57b705f3e26db">glm::floatBitsToUint</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, uint, Q &gt; floatBitsToUint(vec&lt; L, float, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a unsigned integer value representing the encoding of a floating-point value. </div></div>
258
- <div class="ttc" id="a00241_html_ga562edf7eca082cc5b7a0aaf180436daf"><div class="ttname"><a href="a00241.html#ga562edf7eca082cc5b7a0aaf180436daf">glm::smoothstep</a></div><div class="ttdeci">GLM_FUNC_DECL genType smoothstep(genType edge0, genType edge1, genType x)</div><div class="ttdoc">Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a...</div></div>
259
- <div class="ttc" id="a00241_html_ga81d3abddd0ef0c8de579bc541ecadab6"><div class="ttname"><a href="a00241.html#ga81d3abddd0ef0c8de579bc541ecadab6">glm::abs</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; abs(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns x if x >= 0; otherwise, it returns -x. </div></div>
260
- <div class="ttc" id="a00241_html_gac1fec0c3303b572a6d4697a637213870"><div class="ttname"><a href="a00241.html#gac1fec0c3303b572a6d4697a637213870">glm::max</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR vec&lt; L, T, Q &gt; max(vec&lt; L, T, Q &gt; const &amp;x, vec&lt; L, T, Q &gt; const &amp;y)</div><div class="ttdoc">Returns y if x < y; otherwise, it returns x. </div></div>
261
- <div class="ttc" id="a00241_html_gaf4a5fc81619c7d3e8b22f53d4a098c7f"><div class="ttname"><a href="a00241.html#gaf4a5fc81619c7d3e8b22f53d4a098c7f">glm::step</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; step(vec&lt; L, T, Q &gt; const &amp;edge, vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Returns 0.0 if x < edge, otherwise it returns 1.0. </div></div>
262
- <div class="ttc" id="a00241_html_ga2df623004f634b440d61e018d62c751b"><div class="ttname"><a href="a00241.html#ga2df623004f634b440d61e018d62c751b">glm::fract</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; fract(vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Return x - floor(x). </div></div>
263
- <div class="ttc" id="a00241_html_gac3010e0a0c35a1b514540f2fb579c58c"><div class="ttname"><a href="a00241.html#gac3010e0a0c35a1b514540f2fb579c58c">glm::ldexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType ldexp(genType const &amp;x, int const &amp;exp)</div><div class="ttdoc">Builds a floating-point number from x and the corresponding integral exponent of two in exp...</div></div>
264
- <div class="ttc" id="a00241_html_ga99f7d62f78ac5ea3b49bae715c9488ed"><div class="ttname"><a href="a00241.html#ga99f7d62f78ac5ea3b49bae715c9488ed">glm::floatBitsToInt</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, int, Q &gt; floatBitsToInt(vec&lt; L, float, Q &gt; const &amp;v)</div><div class="ttdoc">Returns a signed integer value representing the encoding of a floating-point value. </div></div>
265
- <div class="ttc" id="a00241_html_ga8e93f374aae27d1a88b921860351f8d4"><div class="ttname"><a href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
266
- <div class="ttc" id="a00241_html_gaddf5ef73283c171730e0bcc11833fa81"><div class="ttname"><a href="a00241.html#gaddf5ef73283c171730e0bcc11833fa81">glm::frexp</a></div><div class="ttdeci">GLM_FUNC_DECL genType frexp(genType x, int &amp;exp)</div><div class="ttdoc">Splits x into a floating-point significand in the range [0.5, 1.0) and an integral exponent of two...</div></div>
267
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
268
- </div><!-- fragment --></div><!-- contents -->
269
- <!-- start footer part -->
270
- <hr class="footer"/><address class="footer"><small>
271
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
272
- <img class="footer" src="doxygen.png" alt="doxygen"/>
273
- </a> 1.8.10
274
- </small></address>
275
- </body>
276
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00016.html DELETED
@@ -1,131 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: common.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#func-members">Functions</a> </div>
89
- <div class="headertitle">
90
- <div class="title">gtx/common.hpp File Reference</div> </div>
91
- </div><!--header-->
92
- <div class="contents">
93
-
94
- <p><a class="el" href="a00314.html">GLM_GTX_common</a>
95
- <a href="#details">More...</a></p>
96
-
97
- <p><a href="a00016_source.html">Go to the source code of this file.</a></p>
98
- <table class="memberdecls">
99
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
100
- Functions</h2></td></tr>
101
- <tr class="memitem:gab7d89c14c48ad01f720fb5daf8813161"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
102
- <tr class="memitem:gab7d89c14c48ad01f720fb5daf8813161"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00314.html#gab7d89c14c48ad01f720fb5daf8813161">closeBounded</a> (vec&lt; L, T, Q &gt; const &amp;Value, vec&lt; L, T, Q &gt; const &amp;Min, vec&lt; L, T, Q &gt; const &amp;Max)</td></tr>
103
- <tr class="memdesc:gab7d89c14c48ad01f720fb5daf8813161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether vector components values are within an interval. <a href="a00314.html#gab7d89c14c48ad01f720fb5daf8813161">More...</a><br /></td></tr>
104
- <tr class="separator:gab7d89c14c48ad01f720fb5daf8813161"><td class="memSeparator" colspan="2">&#160;</td></tr>
105
- <tr class="memitem:gae5e80425df9833164ad469e83b475fb4"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
106
- <tr class="memitem:gae5e80425df9833164ad469e83b475fb4"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00314.html#gae5e80425df9833164ad469e83b475fb4">fmod</a> (vec&lt; L, T, Q &gt; const &amp;v)</td></tr>
107
- <tr class="memdesc:gae5e80425df9833164ad469e83b475fb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Similar to 'mod' but with a different rounding and integer support. <a href="a00314.html#gae5e80425df9833164ad469e83b475fb4">More...</a><br /></td></tr>
108
- <tr class="separator:gae5e80425df9833164ad469e83b475fb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
109
- <tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplParams" colspan="2">template&lt;typename genType &gt; </td></tr>
110
- <tr class="memitem:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL genType::bool_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00314.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a> (genType const &amp;x)</td></tr>
111
- <tr class="memdesc:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if x is a denormalized number Numbers whose absolute value is too small to be represented in the normal format are represented in an alternate, denormalized format. <a href="a00314.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">More...</a><br /></td></tr>
112
- <tr class="separator:ga74aa7c7462245d83bd5a9edf9c6c2d91"><td class="memSeparator" colspan="2">&#160;</td></tr>
113
- <tr class="memitem:gafd303042ba2ba695bf53b2315f53f93f"><td class="memTemplParams" colspan="2">template&lt;length_t L, typename T , qualifier Q&gt; </td></tr>
114
- <tr class="memitem:gafd303042ba2ba695bf53b2315f53f93f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; L, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00314.html#gafd303042ba2ba695bf53b2315f53f93f">openBounded</a> (vec&lt; L, T, Q &gt; const &amp;Value, vec&lt; L, T, Q &gt; const &amp;Min, vec&lt; L, T, Q &gt; const &amp;Max)</td></tr>
115
- <tr class="memdesc:gafd303042ba2ba695bf53b2315f53f93f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether vector components values are within an interval. <a href="a00314.html#gafd303042ba2ba695bf53b2315f53f93f">More...</a><br /></td></tr>
116
- <tr class="separator:gafd303042ba2ba695bf53b2315f53f93f"><td class="memSeparator" colspan="2">&#160;</td></tr>
117
- </table>
118
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
119
- <div class="textblock"><p><a class="el" href="a00314.html">GLM_GTX_common</a> </p>
120
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd></dl>
121
-
122
- <p>Definition in file <a class="el" href="a00016_source.html">gtx/common.hpp</a>.</p>
123
- </div></div><!-- contents -->
124
- <!-- start footer part -->
125
- <hr class="footer"/><address class="footer"><small>
126
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
127
- <img class="footer" src="doxygen.png" alt="doxygen"/>
128
- </a> 1.8.10
129
- </small></address>
130
- </body>
131
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00016_source.html DELETED
@@ -1,139 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: common.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">gtx/common.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00016.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
94
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependencies:</span></div>
95
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../vec2.hpp&quot;</span></div>
96
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../vec3.hpp&quot;</span></div>
97
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;../vec4.hpp&quot;</span></div>
98
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;../gtc/vec1.hpp&quot;</span></div>
99
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div>
100
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
101
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
102
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_common is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;)</span></div>
103
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># else</span></div>
104
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_common extension included&quot;)</span></div>
105
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor"># endif</span></div>
106
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif</span></div>
107
- <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div>
108
- <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
109
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div>
110
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div>
111
- <div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt;</div>
112
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GLM_FUNC_DECL <span class="keyword">typename</span> genType::bool_type <a class="code" href="a00314.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">isdenormal</a>(genType <span class="keyword">const</span>&amp; x);</div>
113
- <div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div>
114
- <div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span>&lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
115
- <div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; GLM_FUNC_DECL vec&lt;L, T, Q&gt; <a class="code" href="a00314.html#gae5e80425df9833164ad469e83b475fb4">fmod</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; v);</div>
116
- <div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div>
117
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span> &lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
118
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00314.html#gafd303042ba2ba695bf53b2315f53f93f">openBounded</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; Value, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; Min, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; Max);</div>
119
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div>
120
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">template</span> &lt;length_t L, <span class="keyword">typename</span> T, qualifier Q&gt;</div>
121
- <div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; GLM_FUNC_DECL vec&lt;L, bool, Q&gt; <a class="code" href="a00314.html#gab7d89c14c48ad01f720fb5daf8813161">closeBounded</a>(vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; Value, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; Min, vec&lt;L, T, Q&gt; <span class="keyword">const</span>&amp; Max);</div>
122
- <div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div>
123
- <div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}<span class="comment">//namespace glm</span></div>
124
- <div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
125
- <div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &quot;common.inl&quot;</span></div>
126
- <div class="ttc" id="a00314_html_gae5e80425df9833164ad469e83b475fb4"><div class="ttname"><a href="a00314.html#gae5e80425df9833164ad469e83b475fb4">glm::fmod</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; fmod(vec&lt; L, T, Q &gt; const &amp;v)</div><div class="ttdoc">Similar to &#39;mod&#39; but with a different rounding and integer support. </div></div>
127
- <div class="ttc" id="a00314_html_gafd303042ba2ba695bf53b2315f53f93f"><div class="ttname"><a href="a00314.html#gafd303042ba2ba695bf53b2315f53f93f">glm::openBounded</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; openBounded(vec&lt; L, T, Q &gt; const &amp;Value, vec&lt; L, T, Q &gt; const &amp;Min, vec&lt; L, T, Q &gt; const &amp;Max)</div><div class="ttdoc">Returns whether vector components values are within an interval. </div></div>
128
- <div class="ttc" id="a00314_html_ga74aa7c7462245d83bd5a9edf9c6c2d91"><div class="ttname"><a href="a00314.html#ga74aa7c7462245d83bd5a9edf9c6c2d91">glm::isdenormal</a></div><div class="ttdeci">GLM_FUNC_DECL genType::bool_type isdenormal(genType const &amp;x)</div><div class="ttdoc">Returns true if x is a denormalized number Numbers whose absolute value is too small to be represente...</div></div>
129
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
130
- <div class="ttc" id="a00314_html_gab7d89c14c48ad01f720fb5daf8813161"><div class="ttname"><a href="a00314.html#gab7d89c14c48ad01f720fb5daf8813161">glm::closeBounded</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, bool, Q &gt; closeBounded(vec&lt; L, T, Q &gt; const &amp;Value, vec&lt; L, T, Q &gt; const &amp;Min, vec&lt; L, T, Q &gt; const &amp;Max)</div><div class="ttdoc">Returns whether vector components values are within an interval. </div></div>
131
- </div><!-- fragment --></div><!-- contents -->
132
- <!-- start footer part -->
133
- <hr class="footer"/><address class="footer"><small>
134
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
135
- <img class="footer" src="doxygen.png" alt="doxygen"/>
136
- </a> 1.8.10
137
- </small></address>
138
- </body>
139
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00017.html DELETED
@@ -1,443 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: compatibility.hpp File Reference</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="summary">
88
- <a href="#typedef-members">Typedefs</a> &#124;
89
- <a href="#func-members">Functions</a> </div>
90
- <div class="headertitle">
91
- <div class="title">compatibility.hpp File Reference</div> </div>
92
- </div><!--header-->
93
- <div class="contents">
94
-
95
- <p><a class="el" href="a00315.html">GLM_GTX_compatibility</a>
96
- <a href="#details">More...</a></p>
97
-
98
- <p><a href="a00017_source.html">Go to the source code of this file.</a></p>
99
- <table class="memberdecls">
100
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
101
- Typedefs</h2></td></tr>
102
- <tr class="memitem:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaddcd7aa2e30e61af5b38660613d3979e"></a>
103
- typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a></td></tr>
104
- <tr class="memdesc:gaddcd7aa2e30e61af5b38660613d3979e"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
105
- <tr class="separator:gaddcd7aa2e30e61af5b38660613d3979e"><td class="memSeparator" colspan="2">&#160;</td></tr>
106
- <tr class="memitem:ga7f895c936f0c29c8729afbbf22806090"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7f895c936f0c29c8729afbbf22806090"></a>
107
- typedef bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a></td></tr>
108
- <tr class="memdesc:ga7f895c936f0c29c8729afbbf22806090"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
109
- <tr class="separator:ga7f895c936f0c29c8729afbbf22806090"><td class="memSeparator" colspan="2">&#160;</td></tr>
110
- <tr class="memitem:gaa09ab65ec9c3c54305ff502e2b1fe6d9"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa09ab65ec9c3c54305ff502e2b1fe6d9"></a>
111
- typedef vec&lt; 2, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gaa09ab65ec9c3c54305ff502e2b1fe6d9">bool2</a></td></tr>
112
- <tr class="memdesc:gaa09ab65ec9c3c54305ff502e2b1fe6d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
113
- <tr class="separator:gaa09ab65ec9c3c54305ff502e2b1fe6d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
114
- <tr class="memitem:gadb3703955e513632f98ba12fe051ba3e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gadb3703955e513632f98ba12fe051ba3e"></a>
115
- typedef mat&lt; 2, 2, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gadb3703955e513632f98ba12fe051ba3e">bool2x2</a></td></tr>
116
- <tr class="memdesc:gadb3703955e513632f98ba12fe051ba3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
117
- <tr class="separator:gadb3703955e513632f98ba12fe051ba3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
118
- <tr class="memitem:ga9ae6ee155d0f90cb1ae5b6c4546738a0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9ae6ee155d0f90cb1ae5b6c4546738a0"></a>
119
- typedef mat&lt; 2, 3, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga9ae6ee155d0f90cb1ae5b6c4546738a0">bool2x3</a></td></tr>
120
- <tr class="memdesc:ga9ae6ee155d0f90cb1ae5b6c4546738a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
121
- <tr class="separator:ga9ae6ee155d0f90cb1ae5b6c4546738a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
122
- <tr class="memitem:ga4d7fa65be8e8e4ad6d920b45c44e471f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4d7fa65be8e8e4ad6d920b45c44e471f"></a>
123
- typedef mat&lt; 2, 4, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga4d7fa65be8e8e4ad6d920b45c44e471f">bool2x4</a></td></tr>
124
- <tr class="memdesc:ga4d7fa65be8e8e4ad6d920b45c44e471f"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
125
- <tr class="separator:ga4d7fa65be8e8e4ad6d920b45c44e471f"><td class="memSeparator" colspan="2">&#160;</td></tr>
126
- <tr class="memitem:ga99629f818737f342204071ef8296b2ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga99629f818737f342204071ef8296b2ed"></a>
127
- typedef vec&lt; 3, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga99629f818737f342204071ef8296b2ed">bool3</a></td></tr>
128
- <tr class="memdesc:ga99629f818737f342204071ef8296b2ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
129
- <tr class="separator:ga99629f818737f342204071ef8296b2ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
130
- <tr class="memitem:gac7d7311f7e0fa8b6163d96dab033a755"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac7d7311f7e0fa8b6163d96dab033a755"></a>
131
- typedef mat&lt; 3, 2, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gac7d7311f7e0fa8b6163d96dab033a755">bool3x2</a></td></tr>
132
- <tr class="memdesc:gac7d7311f7e0fa8b6163d96dab033a755"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
133
- <tr class="separator:gac7d7311f7e0fa8b6163d96dab033a755"><td class="memSeparator" colspan="2">&#160;</td></tr>
134
- <tr class="memitem:ga6c97b99aac3e302053ffb58aace9033c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6c97b99aac3e302053ffb58aace9033c"></a>
135
- typedef mat&lt; 3, 3, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga6c97b99aac3e302053ffb58aace9033c">bool3x3</a></td></tr>
136
- <tr class="memdesc:ga6c97b99aac3e302053ffb58aace9033c"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
137
- <tr class="separator:ga6c97b99aac3e302053ffb58aace9033c"><td class="memSeparator" colspan="2">&#160;</td></tr>
138
- <tr class="memitem:gae7d6b679463d37d6c527d478fb470fdf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae7d6b679463d37d6c527d478fb470fdf"></a>
139
- typedef mat&lt; 3, 4, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gae7d6b679463d37d6c527d478fb470fdf">bool3x4</a></td></tr>
140
- <tr class="memdesc:gae7d6b679463d37d6c527d478fb470fdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
141
- <tr class="separator:gae7d6b679463d37d6c527d478fb470fdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
142
- <tr class="memitem:ga13c3200b82708f73faac6d7f09ec91a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga13c3200b82708f73faac6d7f09ec91a3"></a>
143
- typedef vec&lt; 4, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga13c3200b82708f73faac6d7f09ec91a3">bool4</a></td></tr>
144
- <tr class="memdesc:ga13c3200b82708f73faac6d7f09ec91a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean type with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
145
- <tr class="separator:ga13c3200b82708f73faac6d7f09ec91a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
146
- <tr class="memitem:ga9ed830f52408b2f83c085063a3eaf1d0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9ed830f52408b2f83c085063a3eaf1d0"></a>
147
- typedef mat&lt; 4, 2, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga9ed830f52408b2f83c085063a3eaf1d0">bool4x2</a></td></tr>
148
- <tr class="memdesc:ga9ed830f52408b2f83c085063a3eaf1d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
149
- <tr class="separator:ga9ed830f52408b2f83c085063a3eaf1d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
150
- <tr class="memitem:gad0f5dc7f22c2065b1b06d57f1c0658fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad0f5dc7f22c2065b1b06d57f1c0658fe"></a>
151
- typedef mat&lt; 4, 3, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gad0f5dc7f22c2065b1b06d57f1c0658fe">bool4x3</a></td></tr>
152
- <tr class="memdesc:gad0f5dc7f22c2065b1b06d57f1c0658fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
153
- <tr class="separator:gad0f5dc7f22c2065b1b06d57f1c0658fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
154
- <tr class="memitem:ga7d2a7d13986602ae2896bfaa394235d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7d2a7d13986602ae2896bfaa394235d4"></a>
155
- typedef mat&lt; 4, 4, bool, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga7d2a7d13986602ae2896bfaa394235d4">bool4x4</a></td></tr>
156
- <tr class="memdesc:ga7d2a7d13986602ae2896bfaa394235d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
157
- <tr class="separator:ga7d2a7d13986602ae2896bfaa394235d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
158
- <tr class="memitem:ga20b861a9b6e2a300323671c57a02525b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga20b861a9b6e2a300323671c57a02525b"></a>
159
- typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga20b861a9b6e2a300323671c57a02525b">double1</a></td></tr>
160
- <tr class="memdesc:ga20b861a9b6e2a300323671c57a02525b"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
161
- <tr class="separator:ga20b861a9b6e2a300323671c57a02525b"><td class="memSeparator" colspan="2">&#160;</td></tr>
162
- <tr class="memitem:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga45f16a4dd0db1f199afaed9fd12fe9a8"></a>
163
- typedef double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a></td></tr>
164
- <tr class="memdesc:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
165
- <tr class="separator:ga45f16a4dd0db1f199afaed9fd12fe9a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
166
- <tr class="memitem:ga31b729b04facccda73f07ed26958b3c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga31b729b04facccda73f07ed26958b3c2"></a>
167
- typedef vec&lt; 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga31b729b04facccda73f07ed26958b3c2">double2</a></td></tr>
168
- <tr class="memdesc:ga31b729b04facccda73f07ed26958b3c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
169
- <tr class="separator:ga31b729b04facccda73f07ed26958b3c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
170
- <tr class="memitem:gae57d0201096834d25f2b91b319e7cdbd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae57d0201096834d25f2b91b319e7cdbd"></a>
171
- typedef mat&lt; 2, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gae57d0201096834d25f2b91b319e7cdbd">double2x2</a></td></tr>
172
- <tr class="memdesc:gae57d0201096834d25f2b91b319e7cdbd"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
173
- <tr class="separator:gae57d0201096834d25f2b91b319e7cdbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
174
- <tr class="memitem:ga3655bc324008553ca61f39952d0b2d08"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3655bc324008553ca61f39952d0b2d08"></a>
175
- typedef mat&lt; 2, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga3655bc324008553ca61f39952d0b2d08">double2x3</a></td></tr>
176
- <tr class="memdesc:ga3655bc324008553ca61f39952d0b2d08"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
177
- <tr class="separator:ga3655bc324008553ca61f39952d0b2d08"><td class="memSeparator" colspan="2">&#160;</td></tr>
178
- <tr class="memitem:gacd33061fc64a7b2dcfd7322c49d9557a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacd33061fc64a7b2dcfd7322c49d9557a"></a>
179
- typedef mat&lt; 2, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gacd33061fc64a7b2dcfd7322c49d9557a">double2x4</a></td></tr>
180
- <tr class="memdesc:gacd33061fc64a7b2dcfd7322c49d9557a"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
181
- <tr class="separator:gacd33061fc64a7b2dcfd7322c49d9557a"><td class="memSeparator" colspan="2">&#160;</td></tr>
182
- <tr class="memitem:ga3d8b9028a1053a44a98902cd1c389472"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3d8b9028a1053a44a98902cd1c389472"></a>
183
- typedef vec&lt; 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga3d8b9028a1053a44a98902cd1c389472">double3</a></td></tr>
184
- <tr class="memdesc:ga3d8b9028a1053a44a98902cd1c389472"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
185
- <tr class="separator:ga3d8b9028a1053a44a98902cd1c389472"><td class="memSeparator" colspan="2">&#160;</td></tr>
186
- <tr class="memitem:ga5ec08fc39c9d783dfcc488be240fe975"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5ec08fc39c9d783dfcc488be240fe975"></a>
187
- typedef mat&lt; 3, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga5ec08fc39c9d783dfcc488be240fe975">double3x2</a></td></tr>
188
- <tr class="memdesc:ga5ec08fc39c9d783dfcc488be240fe975"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
189
- <tr class="separator:ga5ec08fc39c9d783dfcc488be240fe975"><td class="memSeparator" colspan="2">&#160;</td></tr>
190
- <tr class="memitem:ga4bad5bb20c6ddaecfe4006c93841d180"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4bad5bb20c6ddaecfe4006c93841d180"></a>
191
- typedef mat&lt; 3, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga4bad5bb20c6ddaecfe4006c93841d180">double3x3</a></td></tr>
192
- <tr class="memdesc:ga4bad5bb20c6ddaecfe4006c93841d180"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
193
- <tr class="separator:ga4bad5bb20c6ddaecfe4006c93841d180"><td class="memSeparator" colspan="2">&#160;</td></tr>
194
- <tr class="memitem:ga2ef022e453d663d70aec414b2a80f756"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2ef022e453d663d70aec414b2a80f756"></a>
195
- typedef mat&lt; 3, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga2ef022e453d663d70aec414b2a80f756">double3x4</a></td></tr>
196
- <tr class="memdesc:ga2ef022e453d663d70aec414b2a80f756"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
197
- <tr class="separator:ga2ef022e453d663d70aec414b2a80f756"><td class="memSeparator" colspan="2">&#160;</td></tr>
198
- <tr class="memitem:gaf92f58af24f35617518aeb3d4f63fda6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf92f58af24f35617518aeb3d4f63fda6"></a>
199
- typedef vec&lt; 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gaf92f58af24f35617518aeb3d4f63fda6">double4</a></td></tr>
200
- <tr class="memdesc:gaf92f58af24f35617518aeb3d4f63fda6"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
201
- <tr class="separator:gaf92f58af24f35617518aeb3d4f63fda6"><td class="memSeparator" colspan="2">&#160;</td></tr>
202
- <tr class="memitem:gabca29ccceea53669618b751aae0ba83d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gabca29ccceea53669618b751aae0ba83d"></a>
203
- typedef mat&lt; 4, 2, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gabca29ccceea53669618b751aae0ba83d">double4x2</a></td></tr>
204
- <tr class="memdesc:gabca29ccceea53669618b751aae0ba83d"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
205
- <tr class="separator:gabca29ccceea53669618b751aae0ba83d"><td class="memSeparator" colspan="2">&#160;</td></tr>
206
- <tr class="memitem:gafad66a02ccd360c86d6ab9ff9cfbc19c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafad66a02ccd360c86d6ab9ff9cfbc19c"></a>
207
- typedef mat&lt; 4, 3, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gafad66a02ccd360c86d6ab9ff9cfbc19c">double4x3</a></td></tr>
208
- <tr class="memdesc:gafad66a02ccd360c86d6ab9ff9cfbc19c"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
209
- <tr class="separator:gafad66a02ccd360c86d6ab9ff9cfbc19c"><td class="memSeparator" colspan="2">&#160;</td></tr>
210
- <tr class="memitem:gaab541bed2e788e4537852a2492860806"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaab541bed2e788e4537852a2492860806"></a>
211
- typedef mat&lt; 4, 4, double, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gaab541bed2e788e4537852a2492860806">double4x4</a></td></tr>
212
- <tr class="memdesc:gaab541bed2e788e4537852a2492860806"><td class="mdescLeft">&#160;</td><td class="mdescRight">double-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
213
- <tr class="separator:gaab541bed2e788e4537852a2492860806"><td class="memSeparator" colspan="2">&#160;</td></tr>
214
- <tr class="memitem:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf5208d01f6c6fbcb7bb55d610b9c0ead"></a>
215
- typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a></td></tr>
216
- <tr class="memdesc:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
217
- <tr class="separator:gaf5208d01f6c6fbcb7bb55d610b9c0ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
218
- <tr class="memitem:ga73720b8dc4620835b17f74d428f98c0c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga73720b8dc4620835b17f74d428f98c0c"></a>
219
- typedef float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a></td></tr>
220
- <tr class="memdesc:ga73720b8dc4620835b17f74d428f98c0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
221
- <tr class="separator:ga73720b8dc4620835b17f74d428f98c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
222
- <tr class="memitem:ga02d3c013982c183906c61d74aa3166ce"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga02d3c013982c183906c61d74aa3166ce"></a>
223
- typedef vec&lt; 2, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga02d3c013982c183906c61d74aa3166ce">float2</a></td></tr>
224
- <tr class="memdesc:ga02d3c013982c183906c61d74aa3166ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
225
- <tr class="separator:ga02d3c013982c183906c61d74aa3166ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
226
- <tr class="memitem:ga33d43ecbb60a85a1366ff83f8a0ec85f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga33d43ecbb60a85a1366ff83f8a0ec85f"></a>
227
- typedef mat&lt; 2, 2, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga33d43ecbb60a85a1366ff83f8a0ec85f">float2x2</a></td></tr>
228
- <tr class="memdesc:ga33d43ecbb60a85a1366ff83f8a0ec85f"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
229
- <tr class="separator:ga33d43ecbb60a85a1366ff83f8a0ec85f"><td class="memSeparator" colspan="2">&#160;</td></tr>
230
- <tr class="memitem:ga939b0cff15cee3030f75c1b2e36f89fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga939b0cff15cee3030f75c1b2e36f89fe"></a>
231
- typedef mat&lt; 2, 3, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga939b0cff15cee3030f75c1b2e36f89fe">float2x3</a></td></tr>
232
- <tr class="memdesc:ga939b0cff15cee3030f75c1b2e36f89fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
233
- <tr class="separator:ga939b0cff15cee3030f75c1b2e36f89fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
234
- <tr class="memitem:gafec3cfd901ab334a92e0242b8f2269b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafec3cfd901ab334a92e0242b8f2269b4"></a>
235
- typedef mat&lt; 2, 4, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gafec3cfd901ab334a92e0242b8f2269b4">float2x4</a></td></tr>
236
- <tr class="memdesc:gafec3cfd901ab334a92e0242b8f2269b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
237
- <tr class="separator:gafec3cfd901ab334a92e0242b8f2269b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
238
- <tr class="memitem:ga821ff110fc8533a053cbfcc93e078cc0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga821ff110fc8533a053cbfcc93e078cc0"></a>
239
- typedef vec&lt; 3, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga821ff110fc8533a053cbfcc93e078cc0">float3</a></td></tr>
240
- <tr class="memdesc:ga821ff110fc8533a053cbfcc93e078cc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
241
- <tr class="separator:ga821ff110fc8533a053cbfcc93e078cc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
242
- <tr class="memitem:gaa6c69f04ba95f3faedf95dae874de576"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa6c69f04ba95f3faedf95dae874de576"></a>
243
- typedef mat&lt; 3, 2, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gaa6c69f04ba95f3faedf95dae874de576">float3x2</a></td></tr>
244
- <tr class="memdesc:gaa6c69f04ba95f3faedf95dae874de576"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
245
- <tr class="separator:gaa6c69f04ba95f3faedf95dae874de576"><td class="memSeparator" colspan="2">&#160;</td></tr>
246
- <tr class="memitem:ga6ceb5d38a58becdf420026e12a6562f3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6ceb5d38a58becdf420026e12a6562f3"></a>
247
- typedef mat&lt; 3, 3, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga6ceb5d38a58becdf420026e12a6562f3">float3x3</a></td></tr>
248
- <tr class="memdesc:ga6ceb5d38a58becdf420026e12a6562f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
249
- <tr class="separator:ga6ceb5d38a58becdf420026e12a6562f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
250
- <tr class="memitem:ga4d2679c321b793ca3784fe0315bb5332"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4d2679c321b793ca3784fe0315bb5332"></a>
251
- typedef mat&lt; 3, 4, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga4d2679c321b793ca3784fe0315bb5332">float3x4</a></td></tr>
252
- <tr class="memdesc:ga4d2679c321b793ca3784fe0315bb5332"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
253
- <tr class="separator:ga4d2679c321b793ca3784fe0315bb5332"><td class="memSeparator" colspan="2">&#160;</td></tr>
254
- <tr class="memitem:gae2da7345087db3815a25d8837a727ef1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae2da7345087db3815a25d8837a727ef1"></a>
255
- typedef vec&lt; 4, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gae2da7345087db3815a25d8837a727ef1">float4</a></td></tr>
256
- <tr class="memdesc:gae2da7345087db3815a25d8837a727ef1"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
257
- <tr class="separator:gae2da7345087db3815a25d8837a727ef1"><td class="memSeparator" colspan="2">&#160;</td></tr>
258
- <tr class="memitem:ga308b9af0c221145bcfe9bfc129d9098e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga308b9af0c221145bcfe9bfc129d9098e"></a>
259
- typedef mat&lt; 4, 2, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga308b9af0c221145bcfe9bfc129d9098e">float4x2</a></td></tr>
260
- <tr class="memdesc:ga308b9af0c221145bcfe9bfc129d9098e"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
261
- <tr class="separator:ga308b9af0c221145bcfe9bfc129d9098e"><td class="memSeparator" colspan="2">&#160;</td></tr>
262
- <tr class="memitem:gac0a51b4812038aa81d73ffcc37f741ac"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac0a51b4812038aa81d73ffcc37f741ac"></a>
263
- typedef mat&lt; 4, 3, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gac0a51b4812038aa81d73ffcc37f741ac">float4x3</a></td></tr>
264
- <tr class="memdesc:gac0a51b4812038aa81d73ffcc37f741ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
265
- <tr class="separator:gac0a51b4812038aa81d73ffcc37f741ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
266
- <tr class="memitem:gad3051649b3715d828a4ab92cdae7c3bf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad3051649b3715d828a4ab92cdae7c3bf"></a>
267
- typedef mat&lt; 4, 4, float, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gad3051649b3715d828a4ab92cdae7c3bf">float4x4</a></td></tr>
268
- <tr class="memdesc:gad3051649b3715d828a4ab92cdae7c3bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">single-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
269
- <tr class="separator:gad3051649b3715d828a4ab92cdae7c3bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
270
- <tr class="memitem:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0670a2111b5e4a6410bd027fa0232fc3"></a>
271
- typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a></td></tr>
272
- <tr class="memdesc:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
273
- <tr class="separator:ga0670a2111b5e4a6410bd027fa0232fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
274
- <tr class="memitem:ga056ffe02d3a45af626f8e62221881c7a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga056ffe02d3a45af626f8e62221881c7a"></a>
275
- typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a></td></tr>
276
- <tr class="memdesc:ga056ffe02d3a45af626f8e62221881c7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 1 component. (From GLM_GTX_compatibility extension) <br /></td></tr>
277
- <tr class="separator:ga056ffe02d3a45af626f8e62221881c7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
278
- <tr class="memitem:gafe3a8fd56354caafe24bfe1b1e3ad22a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafe3a8fd56354caafe24bfe1b1e3ad22a"></a>
279
- typedef vec&lt; 2, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gafe3a8fd56354caafe24bfe1b1e3ad22a">int2</a></td></tr>
280
- <tr class="memdesc:gafe3a8fd56354caafe24bfe1b1e3ad22a"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
281
- <tr class="separator:gafe3a8fd56354caafe24bfe1b1e3ad22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
282
- <tr class="memitem:ga4e5ce477c15836b21e3c42daac68554d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4e5ce477c15836b21e3c42daac68554d"></a>
283
- typedef mat&lt; 2, 2, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga4e5ce477c15836b21e3c42daac68554d">int2x2</a></td></tr>
284
- <tr class="memdesc:ga4e5ce477c15836b21e3c42daac68554d"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
285
- <tr class="separator:ga4e5ce477c15836b21e3c42daac68554d"><td class="memSeparator" colspan="2">&#160;</td></tr>
286
- <tr class="memitem:ga197ded5ad8354f6b6fb91189d7a269b3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga197ded5ad8354f6b6fb91189d7a269b3"></a>
287
- typedef mat&lt; 2, 3, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga197ded5ad8354f6b6fb91189d7a269b3">int2x3</a></td></tr>
288
- <tr class="memdesc:ga197ded5ad8354f6b6fb91189d7a269b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
289
- <tr class="separator:ga197ded5ad8354f6b6fb91189d7a269b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
290
- <tr class="memitem:ga2749d59a7fddbac44f34ba78e57ef807"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2749d59a7fddbac44f34ba78e57ef807"></a>
291
- typedef mat&lt; 2, 4, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga2749d59a7fddbac44f34ba78e57ef807">int2x4</a></td></tr>
292
- <tr class="memdesc:ga2749d59a7fddbac44f34ba78e57ef807"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
293
- <tr class="separator:ga2749d59a7fddbac44f34ba78e57ef807"><td class="memSeparator" colspan="2">&#160;</td></tr>
294
- <tr class="memitem:ga909c38a425f215a50c847145d7da09f0"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga909c38a425f215a50c847145d7da09f0"></a>
295
- typedef vec&lt; 3, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga909c38a425f215a50c847145d7da09f0">int3</a></td></tr>
296
- <tr class="memdesc:ga909c38a425f215a50c847145d7da09f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
297
- <tr class="separator:ga909c38a425f215a50c847145d7da09f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
298
- <tr class="memitem:gaa4cbe16a92cf3664376c7a2fc5126aa8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa4cbe16a92cf3664376c7a2fc5126aa8"></a>
299
- typedef mat&lt; 3, 2, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gaa4cbe16a92cf3664376c7a2fc5126aa8">int3x2</a></td></tr>
300
- <tr class="memdesc:gaa4cbe16a92cf3664376c7a2fc5126aa8"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
301
- <tr class="separator:gaa4cbe16a92cf3664376c7a2fc5126aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
302
- <tr class="memitem:ga15c9649286f0bf431bdf9b3509580048"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga15c9649286f0bf431bdf9b3509580048"></a>
303
- typedef mat&lt; 3, 3, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga15c9649286f0bf431bdf9b3509580048">int3x3</a></td></tr>
304
- <tr class="memdesc:ga15c9649286f0bf431bdf9b3509580048"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
305
- <tr class="separator:ga15c9649286f0bf431bdf9b3509580048"><td class="memSeparator" colspan="2">&#160;</td></tr>
306
- <tr class="memitem:gaacac46ddc7d15d0f9529d05c92946a0f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaacac46ddc7d15d0f9529d05c92946a0f"></a>
307
- typedef mat&lt; 3, 4, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gaacac46ddc7d15d0f9529d05c92946a0f">int3x4</a></td></tr>
308
- <tr class="memdesc:gaacac46ddc7d15d0f9529d05c92946a0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
309
- <tr class="separator:gaacac46ddc7d15d0f9529d05c92946a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
310
- <tr class="memitem:gaecdef18c819c205aeee9f94dc93de56a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaecdef18c819c205aeee9f94dc93de56a"></a>
311
- typedef vec&lt; 4, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gaecdef18c819c205aeee9f94dc93de56a">int4</a></td></tr>
312
- <tr class="memdesc:gaecdef18c819c205aeee9f94dc93de56a"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer vector with 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
313
- <tr class="separator:gaecdef18c819c205aeee9f94dc93de56a"><td class="memSeparator" colspan="2">&#160;</td></tr>
314
- <tr class="memitem:ga97a39dd9bc7d572810d80b8467cbffa1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga97a39dd9bc7d572810d80b8467cbffa1"></a>
315
- typedef mat&lt; 4, 2, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga97a39dd9bc7d572810d80b8467cbffa1">int4x2</a></td></tr>
316
- <tr class="memdesc:ga97a39dd9bc7d572810d80b8467cbffa1"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
317
- <tr class="separator:ga97a39dd9bc7d572810d80b8467cbffa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
318
- <tr class="memitem:gae4a2c53f14aeec9a17c2b81142b7e82d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gae4a2c53f14aeec9a17c2b81142b7e82d"></a>
319
- typedef mat&lt; 4, 3, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#gae4a2c53f14aeec9a17c2b81142b7e82d">int4x3</a></td></tr>
320
- <tr class="memdesc:gae4a2c53f14aeec9a17c2b81142b7e82d"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
321
- <tr class="separator:gae4a2c53f14aeec9a17c2b81142b7e82d"><td class="memSeparator" colspan="2">&#160;</td></tr>
322
- <tr class="memitem:ga04dee1552424198b8f58b377c2ee00d8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga04dee1552424198b8f58b377c2ee00d8"></a>
323
- typedef mat&lt; 4, 4, int, highp &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00315.html#ga04dee1552424198b8f58b377c2ee00d8">int4x4</a></td></tr>
324
- <tr class="memdesc:ga04dee1552424198b8f58b377c2ee00d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) <br /></td></tr>
325
- <tr class="separator:ga04dee1552424198b8f58b377c2ee00d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
326
- </table><table class="memberdecls">
327
- <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
328
- Functions</h2></td></tr>
329
- <tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac63011205bf6d0be82589dc56dd26708"></a>
330
- template&lt;typename T , qualifier Q&gt; </td></tr>
331
- <tr class="memitem:gac63011205bf6d0be82589dc56dd26708"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#gac63011205bf6d0be82589dc56dd26708">atan2</a> (T x, T y)</td></tr>
332
- <tr class="memdesc:gac63011205bf6d0be82589dc56dd26708"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility) <br /></td></tr>
333
- <tr class="separator:gac63011205bf6d0be82589dc56dd26708"><td class="memSeparator" colspan="2">&#160;</td></tr>
334
- <tr class="memitem:ga83bc41bd6f89113ee8006576b12bfc50"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga83bc41bd6f89113ee8006576b12bfc50"></a>
335
- template&lt;typename T , qualifier Q&gt; </td></tr>
336
- <tr class="memitem:ga83bc41bd6f89113ee8006576b12bfc50"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 2, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga83bc41bd6f89113ee8006576b12bfc50">atan2</a> (const vec&lt; 2, T, Q &gt; &amp;x, const vec&lt; 2, T, Q &gt; &amp;y)</td></tr>
337
- <tr class="memdesc:ga83bc41bd6f89113ee8006576b12bfc50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility) <br /></td></tr>
338
- <tr class="separator:ga83bc41bd6f89113ee8006576b12bfc50"><td class="memSeparator" colspan="2">&#160;</td></tr>
339
- <tr class="memitem:gac39314f5087e7e51e592897cabbc1927"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac39314f5087e7e51e592897cabbc1927"></a>
340
- template&lt;typename T , qualifier Q&gt; </td></tr>
341
- <tr class="memitem:gac39314f5087e7e51e592897cabbc1927"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#gac39314f5087e7e51e592897cabbc1927">atan2</a> (const vec&lt; 3, T, Q &gt; &amp;x, const vec&lt; 3, T, Q &gt; &amp;y)</td></tr>
342
- <tr class="memdesc:gac39314f5087e7e51e592897cabbc1927"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility) <br /></td></tr>
343
- <tr class="separator:gac39314f5087e7e51e592897cabbc1927"><td class="memSeparator" colspan="2">&#160;</td></tr>
344
- <tr class="memitem:gaba86c28da7bf5bdac64fecf7d56e8ff3"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaba86c28da7bf5bdac64fecf7d56e8ff3"></a>
345
- template&lt;typename T , qualifier Q&gt; </td></tr>
346
- <tr class="memitem:gaba86c28da7bf5bdac64fecf7d56e8ff3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 4, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3">atan2</a> (const vec&lt; 4, T, Q &gt; &amp;x, const vec&lt; 4, T, Q &gt; &amp;y)</td></tr>
347
- <tr class="memdesc:gaba86c28da7bf5bdac64fecf7d56e8ff3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what quadrant the angle is in. The range of values returned by this function is [-PI, PI]. Results are undefined if x and y are both 0. (From GLM_GTX_compatibility) <br /></td></tr>
348
- <tr class="separator:gaba86c28da7bf5bdac64fecf7d56e8ff3"><td class="memSeparator" colspan="2">&#160;</td></tr>
349
- <tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf4b04dcd3526996d68c1bfe17bfc8657"></a>
350
- template&lt;typename genType &gt; </td></tr>
351
- <tr class="memitem:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#gaf4b04dcd3526996d68c1bfe17bfc8657">isfinite</a> (genType const &amp;x)</td></tr>
352
- <tr class="memdesc:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
353
- <tr class="separator:gaf4b04dcd3526996d68c1bfe17bfc8657"><td class="memSeparator" colspan="2">&#160;</td></tr>
354
- <tr class="memitem:gac3b12b8ac3014418fe53c299478b6603"><td class="memTemplParams" colspan="2"><a class="anchor" id="gac3b12b8ac3014418fe53c299478b6603"></a>
355
- template&lt;typename T , qualifier Q&gt; </td></tr>
356
- <tr class="memitem:gac3b12b8ac3014418fe53c299478b6603"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 1, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#gac3b12b8ac3014418fe53c299478b6603">isfinite</a> (const vec&lt; 1, T, Q &gt; &amp;x)</td></tr>
357
- <tr class="memdesc:gac3b12b8ac3014418fe53c299478b6603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
358
- <tr class="separator:gac3b12b8ac3014418fe53c299478b6603"><td class="memSeparator" colspan="2">&#160;</td></tr>
359
- <tr class="memitem:ga8e76dc3e406ce6a4155c2b12a2e4b084"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga8e76dc3e406ce6a4155c2b12a2e4b084"></a>
360
- template&lt;typename T , qualifier Q&gt; </td></tr>
361
- <tr class="memitem:ga8e76dc3e406ce6a4155c2b12a2e4b084"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 2, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga8e76dc3e406ce6a4155c2b12a2e4b084">isfinite</a> (const vec&lt; 2, T, Q &gt; &amp;x)</td></tr>
362
- <tr class="memdesc:ga8e76dc3e406ce6a4155c2b12a2e4b084"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
363
- <tr class="separator:ga8e76dc3e406ce6a4155c2b12a2e4b084"><td class="memSeparator" colspan="2">&#160;</td></tr>
364
- <tr class="memitem:ga929ef27f896d902c1771a2e5e150fc97"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga929ef27f896d902c1771a2e5e150fc97"></a>
365
- template&lt;typename T , qualifier Q&gt; </td></tr>
366
- <tr class="memitem:ga929ef27f896d902c1771a2e5e150fc97"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 3, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga929ef27f896d902c1771a2e5e150fc97">isfinite</a> (const vec&lt; 3, T, Q &gt; &amp;x)</td></tr>
367
- <tr class="memdesc:ga929ef27f896d902c1771a2e5e150fc97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
368
- <tr class="separator:ga929ef27f896d902c1771a2e5e150fc97"><td class="memSeparator" colspan="2">&#160;</td></tr>
369
- <tr class="memitem:ga19925badbe10ce61df1d0de00be0b5ad"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga19925badbe10ce61df1d0de00be0b5ad"></a>
370
- template&lt;typename T , qualifier Q&gt; </td></tr>
371
- <tr class="memitem:ga19925badbe10ce61df1d0de00be0b5ad"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_DECL vec&lt; 4, bool, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga19925badbe10ce61df1d0de00be0b5ad">isfinite</a> (const vec&lt; 4, T, Q &gt; &amp;x)</td></tr>
372
- <tr class="memdesc:ga19925badbe10ce61df1d0de00be0b5ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility) <br /></td></tr>
373
- <tr class="separator:ga19925badbe10ce61df1d0de00be0b5ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
374
- <tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga5494ba3a95ea6594c86fc75236886864"></a>
375
- template&lt;typename T &gt; </td></tr>
376
- <tr class="memitem:ga5494ba3a95ea6594c86fc75236886864"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga5494ba3a95ea6594c86fc75236886864">lerp</a> (T x, T y, T a)</td></tr>
377
- <tr class="memdesc:ga5494ba3a95ea6594c86fc75236886864"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
378
- <tr class="separator:ga5494ba3a95ea6594c86fc75236886864"><td class="memSeparator" colspan="2">&#160;</td></tr>
379
- <tr class="memitem:gaa551c0a0e16d2d4608e49f7696df897f"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaa551c0a0e16d2d4608e49f7696df897f"></a>
380
- template&lt;typename T , qualifier Q&gt; </td></tr>
381
- <tr class="memitem:gaa551c0a0e16d2d4608e49f7696df897f"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 2, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#gaa551c0a0e16d2d4608e49f7696df897f">lerp</a> (const vec&lt; 2, T, Q &gt; &amp;x, const vec&lt; 2, T, Q &gt; &amp;y, T a)</td></tr>
382
- <tr class="memdesc:gaa551c0a0e16d2d4608e49f7696df897f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
383
- <tr class="separator:gaa551c0a0e16d2d4608e49f7696df897f"><td class="memSeparator" colspan="2">&#160;</td></tr>
384
- <tr class="memitem:ga44a8b5fd776320f1713413dec959b32a"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga44a8b5fd776320f1713413dec959b32a"></a>
385
- template&lt;typename T , qualifier Q&gt; </td></tr>
386
- <tr class="memitem:ga44a8b5fd776320f1713413dec959b32a"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga44a8b5fd776320f1713413dec959b32a">lerp</a> (const vec&lt; 3, T, Q &gt; &amp;x, const vec&lt; 3, T, Q &gt; &amp;y, T a)</td></tr>
387
- <tr class="memdesc:ga44a8b5fd776320f1713413dec959b32a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
388
- <tr class="separator:ga44a8b5fd776320f1713413dec959b32a"><td class="memSeparator" colspan="2">&#160;</td></tr>
389
- <tr class="memitem:ga89ac8e000199292ec7875519d27e214b"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga89ac8e000199292ec7875519d27e214b"></a>
390
- template&lt;typename T , qualifier Q&gt; </td></tr>
391
- <tr class="memitem:ga89ac8e000199292ec7875519d27e214b"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 4, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga89ac8e000199292ec7875519d27e214b">lerp</a> (const vec&lt; 4, T, Q &gt; &amp;x, const vec&lt; 4, T, Q &gt; &amp;y, T a)</td></tr>
392
- <tr class="memdesc:ga89ac8e000199292ec7875519d27e214b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns x * (1.0 - a) + y * a, i.e., the linear blend of x and y using the floating-point value a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
393
- <tr class="separator:ga89ac8e000199292ec7875519d27e214b"><td class="memSeparator" colspan="2">&#160;</td></tr>
394
- <tr class="memitem:gaf68de5baf72d16135368b8ef4f841604"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaf68de5baf72d16135368b8ef4f841604"></a>
395
- template&lt;typename T , qualifier Q&gt; </td></tr>
396
- <tr class="memitem:gaf68de5baf72d16135368b8ef4f841604"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 2, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#gaf68de5baf72d16135368b8ef4f841604">lerp</a> (const vec&lt; 2, T, Q &gt; &amp;x, const vec&lt; 2, T, Q &gt; &amp;y, const vec&lt; 2, T, Q &gt; &amp;a)</td></tr>
397
- <tr class="memdesc:gaf68de5baf72d16135368b8ef4f841604"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
398
- <tr class="separator:gaf68de5baf72d16135368b8ef4f841604"><td class="memSeparator" colspan="2">&#160;</td></tr>
399
- <tr class="memitem:ga4ae1a616c8540a2649eab8e0cd051bb3"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga4ae1a616c8540a2649eab8e0cd051bb3"></a>
400
- template&lt;typename T , qualifier Q&gt; </td></tr>
401
- <tr class="memitem:ga4ae1a616c8540a2649eab8e0cd051bb3"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga4ae1a616c8540a2649eab8e0cd051bb3">lerp</a> (const vec&lt; 3, T, Q &gt; &amp;x, const vec&lt; 3, T, Q &gt; &amp;y, const vec&lt; 3, T, Q &gt; &amp;a)</td></tr>
402
- <tr class="memdesc:ga4ae1a616c8540a2649eab8e0cd051bb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
403
- <tr class="separator:ga4ae1a616c8540a2649eab8e0cd051bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
404
- <tr class="memitem:gab5477ab69c40de4db5d58d3359529724"><td class="memTemplParams" colspan="2"><a class="anchor" id="gab5477ab69c40de4db5d58d3359529724"></a>
405
- template&lt;typename T , qualifier Q&gt; </td></tr>
406
- <tr class="memitem:gab5477ab69c40de4db5d58d3359529724"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 4, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#gab5477ab69c40de4db5d58d3359529724">lerp</a> (const vec&lt; 4, T, Q &gt; &amp;x, const vec&lt; 4, T, Q &gt; &amp;y, const vec&lt; 4, T, Q &gt; &amp;a)</td></tr>
407
- <tr class="memdesc:gab5477ab69c40de4db5d58d3359529724"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using vector a. The value for a is not restricted to the range [0, 1]. (From GLM_GTX_compatibility) <br /></td></tr>
408
- <tr class="separator:gab5477ab69c40de4db5d58d3359529724"><td class="memSeparator" colspan="2">&#160;</td></tr>
409
- <tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga0fd09e616d122bc2ed9726682ffd44b7"></a>
410
- template&lt;typename T , qualifier Q&gt; </td></tr>
411
- <tr class="memitem:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga0fd09e616d122bc2ed9726682ffd44b7">saturate</a> (T x)</td></tr>
412
- <tr class="memdesc:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
413
- <tr class="separator:ga0fd09e616d122bc2ed9726682ffd44b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
414
- <tr class="memitem:gaee97b8001c794a78a44f5d59f62a8aba"><td class="memTemplParams" colspan="2"><a class="anchor" id="gaee97b8001c794a78a44f5d59f62a8aba"></a>
415
- template&lt;typename T , qualifier Q&gt; </td></tr>
416
- <tr class="memitem:gaee97b8001c794a78a44f5d59f62a8aba"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 2, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#gaee97b8001c794a78a44f5d59f62a8aba">saturate</a> (const vec&lt; 2, T, Q &gt; &amp;x)</td></tr>
417
- <tr class="memdesc:gaee97b8001c794a78a44f5d59f62a8aba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
418
- <tr class="separator:gaee97b8001c794a78a44f5d59f62a8aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
419
- <tr class="memitem:ga39bfe3a421286ee31680d45c31ccc161"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga39bfe3a421286ee31680d45c31ccc161"></a>
420
- template&lt;typename T , qualifier Q&gt; </td></tr>
421
- <tr class="memitem:ga39bfe3a421286ee31680d45c31ccc161"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 3, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga39bfe3a421286ee31680d45c31ccc161">saturate</a> (const vec&lt; 3, T, Q &gt; &amp;x)</td></tr>
422
- <tr class="memdesc:ga39bfe3a421286ee31680d45c31ccc161"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
423
- <tr class="separator:ga39bfe3a421286ee31680d45c31ccc161"><td class="memSeparator" colspan="2">&#160;</td></tr>
424
- <tr class="memitem:ga356f8c3a7e7d6376d3d4b0a026407183"><td class="memTemplParams" colspan="2"><a class="anchor" id="ga356f8c3a7e7d6376d3d4b0a026407183"></a>
425
- template&lt;typename T , qualifier Q&gt; </td></tr>
426
- <tr class="memitem:ga356f8c3a7e7d6376d3d4b0a026407183"><td class="memTemplItemLeft" align="right" valign="top">GLM_FUNC_QUALIFIER vec&lt; 4, T, Q &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183">saturate</a> (const vec&lt; 4, T, Q &gt; &amp;x)</td></tr>
427
- <tr class="memdesc:ga356f8c3a7e7d6376d3d4b0a026407183"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) <br /></td></tr>
428
- <tr class="separator:ga356f8c3a7e7d6376d3d4b0a026407183"><td class="memSeparator" colspan="2">&#160;</td></tr>
429
- </table>
430
- <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
431
- <div class="textblock"><p><a class="el" href="a00315.html">GLM_GTX_compatibility</a> </p>
432
- <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00280.html" title="Features that implement in C++ the GLSL specification as closely as possible. ">Core features</a> (dependence) </dd></dl>
433
-
434
- <p>Definition in file <a class="el" href="a00017_source.html">compatibility.hpp</a>.</p>
435
- </div></div><!-- contents -->
436
- <!-- start footer part -->
437
- <hr class="footer"/><address class="footer"><small>
438
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
439
- <img class="footer" src="doxygen.png" alt="doxygen"/>
440
- </a> 1.8.10
441
- </small></address>
442
- </body>
443
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
submodules/diff-gaussian-rasterization/third_party/glm/doc/api/a00017_source.html DELETED
@@ -1,282 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.10"/>
7
- <title>0.9.9 API documentation: compatibility.hpp Source File</title>
8
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
9
- <script type="text/javascript" src="jquery.js"></script>
10
- <script type="text/javascript" src="dynsections.js"></script>
11
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
12
- <script type="text/javascript" src="search/searchdata.js"></script>
13
- <script type="text/javascript" src="search/search.js"></script>
14
- <script type="text/javascript">
15
- $(document).ready(function() { init_search(); });
16
- </script>
17
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
18
- </head>
19
- <body>
20
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
21
- <div id="titlearea">
22
- <table cellspacing="0" cellpadding="0">
23
- <tbody>
24
- <tr style="height: 56px;">
25
- <td id="projectlogo"><img alt="Logo" src="logo-mini.png"/></td>
26
- <td id="projectalign" style="padding-left: 0.5em;">
27
- <div id="projectname">0.9.9 API documentation
28
- </div>
29
- </td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </div>
34
- <!-- end header part -->
35
- <!-- Generated by Doxygen 1.8.10 -->
36
- <script type="text/javascript">
37
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
38
- </script>
39
- <div id="navrow1" class="tabs">
40
- <ul class="tablist">
41
- <li><a href="index.html"><span>Main&#160;Page</span></a></li>
42
- <li><a href="modules.html"><span>Modules</span></a></li>
43
- <li class="current"><a href="files.html"><span>Files</span></a></li>
44
- <li>
45
- <div id="MSearchBox" class="MSearchBoxInactive">
46
- <span class="left">
47
- <img id="MSearchSelect" src="search/mag_sel.png"
48
- onmouseover="return searchBox.OnSearchSelectShow()"
49
- onmouseout="return searchBox.OnSearchSelectHide()"
50
- alt=""/>
51
- <input type="text" id="MSearchField" value="Search" accesskey="S"
52
- onfocus="searchBox.OnSearchFieldFocus(true)"
53
- onblur="searchBox.OnSearchFieldFocus(false)"
54
- onkeyup="searchBox.OnSearchFieldChange(event)"/>
55
- </span><span class="right">
56
- <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
57
- </span>
58
- </div>
59
- </li>
60
- </ul>
61
- </div>
62
- <div id="navrow2" class="tabs2">
63
- <ul class="tablist">
64
- <li><a href="files.html"><span>File&#160;List</span></a></li>
65
- </ul>
66
- </div>
67
- <!-- window showing the filter options -->
68
- <div id="MSearchSelectWindow"
69
- onmouseover="return searchBox.OnSearchSelectShow()"
70
- onmouseout="return searchBox.OnSearchSelectHide()"
71
- onkeydown="return searchBox.OnSearchSelectKey(event)">
72
- </div>
73
-
74
- <!-- iframe showing the search results (closed by default) -->
75
- <div id="MSearchResultsWindow">
76
- <iframe src="javascript:void(0)" frameborder="0"
77
- name="MSearchResults" id="MSearchResults">
78
- </iframe>
79
- </div>
80
-
81
- <div id="nav-path" class="navpath">
82
- <ul>
83
- <li class="navelem"><a class="el" href="dir_3a581ba30d25676e4b797b1f96d53b45.html">F:</a></li><li class="navelem"><a class="el" href="dir_9e5fe034a00e89334fd5186c3e7db156.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_d9496f0844b48bc7e53b5af8c99b9ab2.html">Source</a></li><li class="navelem"><a class="el" href="dir_a8bee7be44182a33f3820393ae0b105d.html">G-Truc</a></li><li class="navelem"><a class="el" href="dir_44e5e654415abd9ca6fdeaddaff8565e.html">glm</a></li><li class="navelem"><a class="el" href="dir_cef2d71d502cb69a9252bca2297d9549.html">glm</a></li><li class="navelem"><a class="el" href="dir_f35778ec600a1b9bbc4524e62e226aa2.html">gtx</a></li> </ul>
84
- </div>
85
- </div><!-- top -->
86
- <div class="header">
87
- <div class="headertitle">
88
- <div class="title">compatibility.hpp</div> </div>
89
- </div><!--header-->
90
- <div class="contents">
91
- <a href="a00017.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div>
92
- <div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#pragma once</span></div>
93
- <div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
94
- <div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Dependency:</span></div>
95
- <div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;../glm.hpp&quot;</span></div>
96
- <div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;../gtc/quaternion.hpp&quot;</span></div>
97
- <div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div>
98
- <div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#if GLM_MESSAGES == GLM_ENABLE &amp;&amp; !defined(GLM_EXT_INCLUDED)</span></div>
99
- <div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor"># ifndef GLM_ENABLE_EXPERIMENTAL</span></div>
100
- <div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_compatibility is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.&quot;)</span></div>
101
- <div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor"># else</span></div>
102
- <div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor"># pragma message(&quot;GLM: GLM_GTX_compatibility extension included&quot;)</span></div>
103
- <div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor"># endif</span></div>
104
- <div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#endif</span></div>
105
- <div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div>
106
- <div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#if GLM_COMPILER &amp; GLM_COMPILER_VC</span></div>
107
- <div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor"># include &lt;cfloat&gt;</span></div>
108
- <div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#elif GLM_COMPILER &amp; GLM_COMPILER_GCC</span></div>
109
- <div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"># include &lt;cmath&gt;</span></div>
110
- <div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"># if(GLM_PLATFORM &amp; GLM_PLATFORM_ANDROID)</span></div>
111
- <div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"># undef isfinite</span></div>
112
- <div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"># endif</span></div>
113
- <div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#endif//GLM_COMPILER</span></div>
114
- <div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div>
115
- <div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">namespace </span><a class="code" href="a00236.html">glm</a></div>
116
- <div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div>
117
- <div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div>
118
- <div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="a00315.html#ga5494ba3a95ea6594c86fc75236886864"> 41</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00315.html#gab5477ab69c40de4db5d58d3359529724">lerp</a>(T x, T y, T a){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(x, y, a);} </div>
119
- <div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="a00315.html#gaa551c0a0e16d2d4608e49f7696df897f"> 42</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; <a class="code" href="a00315.html#gab5477ab69c40de4db5d58d3359529724">lerp</a>(<span class="keyword">const</span> vec&lt;2, T, Q&gt;&amp; x, <span class="keyword">const</span> vec&lt;2, T, Q&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(x, y, a);} </div>
120
- <div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
121
- <div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="a00315.html#ga44a8b5fd776320f1713413dec959b32a"> 44</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; <a class="code" href="a00315.html#gab5477ab69c40de4db5d58d3359529724">lerp</a>(<span class="keyword">const</span> vec&lt;3, T, Q&gt;&amp; x, <span class="keyword">const</span> vec&lt;3, T, Q&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(x, y, a);} </div>
122
- <div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="a00315.html#ga89ac8e000199292ec7875519d27e214b"> 45</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; <a class="code" href="a00315.html#gab5477ab69c40de4db5d58d3359529724">lerp</a>(<span class="keyword">const</span> vec&lt;4, T, Q&gt;&amp; x, <span class="keyword">const</span> vec&lt;4, T, Q&gt;&amp; y, T a){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(x, y, a);} </div>
123
- <div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="a00315.html#gaf68de5baf72d16135368b8ef4f841604"> 46</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; <a class="code" href="a00315.html#gab5477ab69c40de4db5d58d3359529724">lerp</a>(<span class="keyword">const</span> vec&lt;2, T, Q&gt;&amp; x, <span class="keyword">const</span> vec&lt;2, T, Q&gt;&amp; y, <span class="keyword">const</span> vec&lt;2, T, Q&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(x, y, a);} </div>
124
- <div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="a00315.html#ga4ae1a616c8540a2649eab8e0cd051bb3"> 47</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; <a class="code" href="a00315.html#gab5477ab69c40de4db5d58d3359529724">lerp</a>(<span class="keyword">const</span> vec&lt;3, T, Q&gt;&amp; x, <span class="keyword">const</span> vec&lt;3, T, Q&gt;&amp; y, <span class="keyword">const</span> vec&lt;3, T, Q&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(x, y, a);} </div>
125
- <div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="a00315.html#gab5477ab69c40de4db5d58d3359529724"> 48</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; <a class="code" href="a00315.html#gab5477ab69c40de4db5d58d3359529724">lerp</a>(<span class="keyword">const</span> vec&lt;4, T, Q&gt;&amp; x, <span class="keyword">const</span> vec&lt;4, T, Q&gt;&amp; y, <span class="keyword">const</span> vec&lt;4, T, Q&gt;&amp; a){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">mix</a>(x, y, a);} </div>
126
- <div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
127
- <div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="a00315.html#ga0fd09e616d122bc2ed9726682ffd44b7"> 50</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183">saturate</a>(T x){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga7cd77683da6361e297c56443fc70806d">clamp</a>(x, T(0), T(1));} </div>
128
- <div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="a00315.html#gaee97b8001c794a78a44f5d59f62a8aba"> 51</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; <a class="code" href="a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183">saturate</a>(<span class="keyword">const</span> vec&lt;2, T, Q&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga7cd77683da6361e297c56443fc70806d">clamp</a>(x, T(0), T(1));} </div>
129
- <div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="a00315.html#ga39bfe3a421286ee31680d45c31ccc161"> 52</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; <a class="code" href="a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183">saturate</a>(<span class="keyword">const</span> vec&lt;3, T, Q&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga7cd77683da6361e297c56443fc70806d">clamp</a>(x, T(0), T(1));} </div>
130
- <div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183"> 53</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; <a class="code" href="a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183">saturate</a>(<span class="keyword">const</span> vec&lt;4, T, Q&gt;&amp; x){<span class="keywordflow">return</span> <a class="code" href="a00241.html#ga7cd77683da6361e297c56443fc70806d">clamp</a>(x, T(0), T(1));} </div>
131
- <div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div>
132
- <div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="a00315.html#gac63011205bf6d0be82589dc56dd26708"> 55</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER T <a class="code" href="a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3">atan2</a>(T x, T y){<span class="keywordflow">return</span> <a class="code" href="a00373.html#gac61629f3a4aa14057e7a8cae002291db">atan</a>(x, y);} </div>
133
- <div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="a00315.html#ga83bc41bd6f89113ee8006576b12bfc50"> 56</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;2, T, Q&gt; <a class="code" href="a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3">atan2</a>(<span class="keyword">const</span> vec&lt;2, T, Q&gt;&amp; x, <span class="keyword">const</span> vec&lt;2, T, Q&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00373.html#gac61629f3a4aa14057e7a8cae002291db">atan</a>(x, y);} </div>
134
- <div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="a00315.html#gac39314f5087e7e51e592897cabbc1927"> 57</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;3, T, Q&gt; <a class="code" href="a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3">atan2</a>(<span class="keyword">const</span> vec&lt;3, T, Q&gt;&amp; x, <span class="keyword">const</span> vec&lt;3, T, Q&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00373.html#gac61629f3a4aa14057e7a8cae002291db">atan</a>(x, y);} </div>
135
- <div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3"> 58</a></span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_QUALIFIER vec&lt;4, T, Q&gt; <a class="code" href="a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3">atan2</a>(<span class="keyword">const</span> vec&lt;4, T, Q&gt;&amp; x, <span class="keyword">const</span> vec&lt;4, T, Q&gt;&amp; y){<span class="keywordflow">return</span> <a class="code" href="a00373.html#gac61629f3a4aa14057e7a8cae002291db">atan</a>(x, y);} </div>
136
- <div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
137
- <div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> genType&gt; GLM_FUNC_DECL <span class="keywordtype">bool</span> <a class="code" href="a00315.html#ga19925badbe10ce61df1d0de00be0b5ad">isfinite</a>(genType <span class="keyword">const</span>&amp; x); </div>
138
- <div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_DECL vec&lt;1, bool, Q&gt; <a class="code" href="a00315.html#ga19925badbe10ce61df1d0de00be0b5ad">isfinite</a>(<span class="keyword">const</span> vec&lt;1, T, Q&gt;&amp; x); </div>
139
- <div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_DECL vec&lt;2, bool, Q&gt; <a class="code" href="a00315.html#ga19925badbe10ce61df1d0de00be0b5ad">isfinite</a>(<span class="keyword">const</span> vec&lt;2, T, Q&gt;&amp; x); </div>
140
- <div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_DECL vec&lt;3, bool, Q&gt; <a class="code" href="a00315.html#ga19925badbe10ce61df1d0de00be0b5ad">isfinite</a>(<span class="keyword">const</span> vec&lt;3, T, Q&gt;&amp; x); </div>
141
- <div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, qualifier Q&gt; GLM_FUNC_DECL vec&lt;4, bool, Q&gt; <a class="code" href="a00315.html#ga19925badbe10ce61df1d0de00be0b5ad">isfinite</a>(<span class="keyword">const</span> vec&lt;4, T, Q&gt;&amp; x); </div>
142
- <div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div>
143
- <div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="a00315.html#gaddcd7aa2e30e61af5b38660613d3979e"> 66</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00315.html#gaddcd7aa2e30e61af5b38660613d3979e">bool1</a>; </div>
144
- <div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="a00315.html#gaa09ab65ec9c3c54305ff502e2b1fe6d9"> 67</a></span>&#160; <span class="keyword">typedef</span> vec&lt;2, bool, highp&gt; <a class="code" href="a00315.html#gaa09ab65ec9c3c54305ff502e2b1fe6d9">bool2</a>; </div>
145
- <div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="a00315.html#ga99629f818737f342204071ef8296b2ed"> 68</a></span>&#160; <span class="keyword">typedef</span> vec&lt;3, bool, highp&gt; <a class="code" href="a00315.html#ga99629f818737f342204071ef8296b2ed">bool3</a>; </div>
146
- <div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="a00315.html#ga13c3200b82708f73faac6d7f09ec91a3"> 69</a></span>&#160; <span class="keyword">typedef</span> vec&lt;4, bool, highp&gt; <a class="code" href="a00315.html#ga13c3200b82708f73faac6d7f09ec91a3">bool4</a>; </div>
147
- <div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
148
- <div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="a00315.html#ga7f895c936f0c29c8729afbbf22806090"> 71</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">bool</span> <a class="code" href="a00315.html#ga7f895c936f0c29c8729afbbf22806090">bool1x1</a>; </div>
149
- <div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="a00315.html#gadb3703955e513632f98ba12fe051ba3e"> 72</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 2, bool, highp&gt; <a class="code" href="a00315.html#gadb3703955e513632f98ba12fe051ba3e">bool2x2</a>; </div>
150
- <div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="a00315.html#ga9ae6ee155d0f90cb1ae5b6c4546738a0"> 73</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 3, bool, highp&gt; <a class="code" href="a00315.html#ga9ae6ee155d0f90cb1ae5b6c4546738a0">bool2x3</a>; </div>
151
- <div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="a00315.html#ga4d7fa65be8e8e4ad6d920b45c44e471f"> 74</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 4, bool, highp&gt; <a class="code" href="a00315.html#ga4d7fa65be8e8e4ad6d920b45c44e471f">bool2x4</a>; </div>
152
- <div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="a00315.html#gac7d7311f7e0fa8b6163d96dab033a755"> 75</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 2, bool, highp&gt; <a class="code" href="a00315.html#gac7d7311f7e0fa8b6163d96dab033a755">bool3x2</a>; </div>
153
- <div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="a00315.html#ga6c97b99aac3e302053ffb58aace9033c"> 76</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 3, bool, highp&gt; <a class="code" href="a00315.html#ga6c97b99aac3e302053ffb58aace9033c">bool3x3</a>; </div>
154
- <div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="a00315.html#gae7d6b679463d37d6c527d478fb470fdf"> 77</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 4, bool, highp&gt; <a class="code" href="a00315.html#gae7d6b679463d37d6c527d478fb470fdf">bool3x4</a>; </div>
155
- <div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="a00315.html#ga9ed830f52408b2f83c085063a3eaf1d0"> 78</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 2, bool, highp&gt; <a class="code" href="a00315.html#ga9ed830f52408b2f83c085063a3eaf1d0">bool4x2</a>; </div>
156
- <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="a00315.html#gad0f5dc7f22c2065b1b06d57f1c0658fe"> 79</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 3, bool, highp&gt; <a class="code" href="a00315.html#gad0f5dc7f22c2065b1b06d57f1c0658fe">bool4x3</a>; </div>
157
- <div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="a00315.html#ga7d2a7d13986602ae2896bfaa394235d4"> 80</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 4, bool, highp&gt; <a class="code" href="a00315.html#ga7d2a7d13986602ae2896bfaa394235d4">bool4x4</a>; </div>
158
- <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
159
- <div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="a00315.html#ga0670a2111b5e4a6410bd027fa0232fc3"> 82</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00315.html#ga0670a2111b5e4a6410bd027fa0232fc3">int1</a>; </div>
160
- <div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="a00315.html#gafe3a8fd56354caafe24bfe1b1e3ad22a"> 83</a></span>&#160; <span class="keyword">typedef</span> vec&lt;2, int, highp&gt; <a class="code" href="a00315.html#gafe3a8fd56354caafe24bfe1b1e3ad22a">int2</a>; </div>
161
- <div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="a00315.html#ga909c38a425f215a50c847145d7da09f0"> 84</a></span>&#160; <span class="keyword">typedef</span> vec&lt;3, int, highp&gt; <a class="code" href="a00315.html#ga909c38a425f215a50c847145d7da09f0">int3</a>; </div>
162
- <div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="a00315.html#gaecdef18c819c205aeee9f94dc93de56a"> 85</a></span>&#160; <span class="keyword">typedef</span> vec&lt;4, int, highp&gt; <a class="code" href="a00315.html#gaecdef18c819c205aeee9f94dc93de56a">int4</a>; </div>
163
- <div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div>
164
- <div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="a00315.html#ga056ffe02d3a45af626f8e62221881c7a"> 87</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="a00315.html#ga056ffe02d3a45af626f8e62221881c7a">int1x1</a>; </div>
165
- <div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="a00315.html#ga4e5ce477c15836b21e3c42daac68554d"> 88</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 2, int, highp&gt; <a class="code" href="a00315.html#ga4e5ce477c15836b21e3c42daac68554d">int2x2</a>; </div>
166
- <div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="a00315.html#ga197ded5ad8354f6b6fb91189d7a269b3"> 89</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 3, int, highp&gt; <a class="code" href="a00315.html#ga197ded5ad8354f6b6fb91189d7a269b3">int2x3</a>; </div>
167
- <div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="a00315.html#ga2749d59a7fddbac44f34ba78e57ef807"> 90</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 4, int, highp&gt; <a class="code" href="a00315.html#ga2749d59a7fddbac44f34ba78e57ef807">int2x4</a>; </div>
168
- <div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="a00315.html#gaa4cbe16a92cf3664376c7a2fc5126aa8"> 91</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 2, int, highp&gt; <a class="code" href="a00315.html#gaa4cbe16a92cf3664376c7a2fc5126aa8">int3x2</a>; </div>
169
- <div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="a00315.html#ga15c9649286f0bf431bdf9b3509580048"> 92</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 3, int, highp&gt; <a class="code" href="a00315.html#ga15c9649286f0bf431bdf9b3509580048">int3x3</a>; </div>
170
- <div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="a00315.html#gaacac46ddc7d15d0f9529d05c92946a0f"> 93</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 4, int, highp&gt; <a class="code" href="a00315.html#gaacac46ddc7d15d0f9529d05c92946a0f">int3x4</a>; </div>
171
- <div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="a00315.html#ga97a39dd9bc7d572810d80b8467cbffa1"> 94</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 2, int, highp&gt; <a class="code" href="a00315.html#ga97a39dd9bc7d572810d80b8467cbffa1">int4x2</a>; </div>
172
- <div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="a00315.html#gae4a2c53f14aeec9a17c2b81142b7e82d"> 95</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 3, int, highp&gt; <a class="code" href="a00315.html#gae4a2c53f14aeec9a17c2b81142b7e82d">int4x3</a>; </div>
173
- <div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="a00315.html#ga04dee1552424198b8f58b377c2ee00d8"> 96</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 4, int, highp&gt; <a class="code" href="a00315.html#ga04dee1552424198b8f58b377c2ee00d8">int4x4</a>; </div>
174
- <div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div>
175
- <div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="a00315.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead"> 98</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00315.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">float1</a>; </div>
176
- <div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="a00315.html#ga02d3c013982c183906c61d74aa3166ce"> 99</a></span>&#160; <span class="keyword">typedef</span> vec&lt;2, float, highp&gt; <a class="code" href="a00315.html#ga02d3c013982c183906c61d74aa3166ce">float2</a>; </div>
177
- <div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="a00315.html#ga821ff110fc8533a053cbfcc93e078cc0"> 100</a></span>&#160; <span class="keyword">typedef</span> vec&lt;3, float, highp&gt; <a class="code" href="a00315.html#ga821ff110fc8533a053cbfcc93e078cc0">float3</a>; </div>
178
- <div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="a00315.html#gae2da7345087db3815a25d8837a727ef1"> 101</a></span>&#160; <span class="keyword">typedef</span> vec&lt;4, float, highp&gt; <a class="code" href="a00315.html#gae2da7345087db3815a25d8837a727ef1">float4</a>; </div>
179
- <div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div>
180
- <div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="a00315.html#ga73720b8dc4620835b17f74d428f98c0c"> 103</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="a00315.html#ga73720b8dc4620835b17f74d428f98c0c">float1x1</a>; </div>
181
- <div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="a00315.html#ga33d43ecbb60a85a1366ff83f8a0ec85f"> 104</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 2, float, highp&gt; <a class="code" href="a00315.html#ga33d43ecbb60a85a1366ff83f8a0ec85f">float2x2</a>; </div>
182
- <div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="a00315.html#ga939b0cff15cee3030f75c1b2e36f89fe"> 105</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 3, float, highp&gt; <a class="code" href="a00315.html#ga939b0cff15cee3030f75c1b2e36f89fe">float2x3</a>; </div>
183
- <div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="a00315.html#gafec3cfd901ab334a92e0242b8f2269b4"> 106</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 4, float, highp&gt; <a class="code" href="a00315.html#gafec3cfd901ab334a92e0242b8f2269b4">float2x4</a>; </div>
184
- <div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="a00315.html#gaa6c69f04ba95f3faedf95dae874de576"> 107</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 2, float, highp&gt; <a class="code" href="a00315.html#gaa6c69f04ba95f3faedf95dae874de576">float3x2</a>; </div>
185
- <div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="a00315.html#ga6ceb5d38a58becdf420026e12a6562f3"> 108</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 3, float, highp&gt; <a class="code" href="a00315.html#ga6ceb5d38a58becdf420026e12a6562f3">float3x3</a>; </div>
186
- <div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="a00315.html#ga4d2679c321b793ca3784fe0315bb5332"> 109</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 4, float, highp&gt; <a class="code" href="a00315.html#ga4d2679c321b793ca3784fe0315bb5332">float3x4</a>; </div>
187
- <div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="a00315.html#ga308b9af0c221145bcfe9bfc129d9098e"> 110</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 2, float, highp&gt; <a class="code" href="a00315.html#ga308b9af0c221145bcfe9bfc129d9098e">float4x2</a>; </div>
188
- <div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="a00315.html#gac0a51b4812038aa81d73ffcc37f741ac"> 111</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 3, float, highp&gt; <a class="code" href="a00315.html#gac0a51b4812038aa81d73ffcc37f741ac">float4x3</a>; </div>
189
- <div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="a00315.html#gad3051649b3715d828a4ab92cdae7c3bf"> 112</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 4, float, highp&gt; <a class="code" href="a00315.html#gad3051649b3715d828a4ab92cdae7c3bf">float4x4</a>; </div>
190
- <div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
191
- <div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="a00315.html#ga20b861a9b6e2a300323671c57a02525b"> 114</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00315.html#ga20b861a9b6e2a300323671c57a02525b">double1</a>; </div>
192
- <div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="a00315.html#ga31b729b04facccda73f07ed26958b3c2"> 115</a></span>&#160; <span class="keyword">typedef</span> vec&lt;2, double, highp&gt; <a class="code" href="a00315.html#ga31b729b04facccda73f07ed26958b3c2">double2</a>; </div>
193
- <div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="a00315.html#ga3d8b9028a1053a44a98902cd1c389472"> 116</a></span>&#160; <span class="keyword">typedef</span> vec&lt;3, double, highp&gt; <a class="code" href="a00315.html#ga3d8b9028a1053a44a98902cd1c389472">double3</a>; </div>
194
- <div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="a00315.html#gaf92f58af24f35617518aeb3d4f63fda6"> 117</a></span>&#160; <span class="keyword">typedef</span> vec&lt;4, double, highp&gt; <a class="code" href="a00315.html#gaf92f58af24f35617518aeb3d4f63fda6">double4</a>; </div>
195
- <div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div>
196
- <div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="a00315.html#ga45f16a4dd0db1f199afaed9fd12fe9a8"> 119</a></span>&#160; <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="a00315.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">double1x1</a>; </div>
197
- <div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="a00315.html#gae57d0201096834d25f2b91b319e7cdbd"> 120</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 2, double, highp&gt; <a class="code" href="a00315.html#gae57d0201096834d25f2b91b319e7cdbd">double2x2</a>; </div>
198
- <div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="a00315.html#ga3655bc324008553ca61f39952d0b2d08"> 121</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 3, double, highp&gt; <a class="code" href="a00315.html#ga3655bc324008553ca61f39952d0b2d08">double2x3</a>; </div>
199
- <div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="a00315.html#gacd33061fc64a7b2dcfd7322c49d9557a"> 122</a></span>&#160; <span class="keyword">typedef</span> mat&lt;2, 4, double, highp&gt; <a class="code" href="a00315.html#gacd33061fc64a7b2dcfd7322c49d9557a">double2x4</a>; </div>
200
- <div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="a00315.html#ga5ec08fc39c9d783dfcc488be240fe975"> 123</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 2, double, highp&gt; <a class="code" href="a00315.html#ga5ec08fc39c9d783dfcc488be240fe975">double3x2</a>; </div>
201
- <div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="a00315.html#ga4bad5bb20c6ddaecfe4006c93841d180"> 124</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 3, double, highp&gt; <a class="code" href="a00315.html#ga4bad5bb20c6ddaecfe4006c93841d180">double3x3</a>; </div>
202
- <div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="a00315.html#ga2ef022e453d663d70aec414b2a80f756"> 125</a></span>&#160; <span class="keyword">typedef</span> mat&lt;3, 4, double, highp&gt; <a class="code" href="a00315.html#ga2ef022e453d663d70aec414b2a80f756">double3x4</a>; </div>
203
- <div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="a00315.html#gabca29ccceea53669618b751aae0ba83d"> 126</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 2, double, highp&gt; <a class="code" href="a00315.html#gabca29ccceea53669618b751aae0ba83d">double4x2</a>; </div>
204
- <div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="a00315.html#gafad66a02ccd360c86d6ab9ff9cfbc19c"> 127</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 3, double, highp&gt; <a class="code" href="a00315.html#gafad66a02ccd360c86d6ab9ff9cfbc19c">double4x3</a>; </div>
205
- <div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="a00315.html#gaab541bed2e788e4537852a2492860806"> 128</a></span>&#160; <span class="keyword">typedef</span> mat&lt;4, 4, double, highp&gt; <a class="code" href="a00315.html#gaab541bed2e788e4537852a2492860806">double4x4</a>; </div>
206
- <div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div>
207
- <div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}<span class="comment">//namespace glm</span></div>
208
- <div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div>
209
- <div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="preprocessor">#include &quot;compatibility.inl&quot;</span></div>
210
- <div class="ttc" id="a00315_html_gaab541bed2e788e4537852a2492860806"><div class="ttname"><a href="a00315.html#gaab541bed2e788e4537852a2492860806">glm::double4x4</a></div><div class="ttdeci">mat&lt; 4, 4, double, highp &gt; double4x4</div><div class="ttdoc">double-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00128">compatibility.hpp:128</a></div></div>
211
- <div class="ttc" id="a00315_html_gaacac46ddc7d15d0f9529d05c92946a0f"><div class="ttname"><a href="a00315.html#gaacac46ddc7d15d0f9529d05c92946a0f">glm::int3x4</a></div><div class="ttdeci">mat&lt; 3, 4, int, highp &gt; int3x4</div><div class="ttdoc">integer matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00093">compatibility.hpp:93</a></div></div>
212
- <div class="ttc" id="a00373_html_gac61629f3a4aa14057e7a8cae002291db"><div class="ttname"><a href="a00373.html#gac61629f3a4aa14057e7a8cae002291db">glm::atan</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; L, T, Q &gt; atan(vec&lt; L, T, Q &gt; const &amp;y, vec&lt; L, T, Q &gt; const &amp;x)</div><div class="ttdoc">Arc tangent. </div></div>
213
- <div class="ttc" id="a00315_html_gaddcd7aa2e30e61af5b38660613d3979e"><div class="ttname"><a href="a00315.html#gaddcd7aa2e30e61af5b38660613d3979e">glm::bool1</a></div><div class="ttdeci">bool bool1</div><div class="ttdoc">boolean type with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00066">compatibility.hpp:66</a></div></div>
214
- <div class="ttc" id="a00315_html_gac0a51b4812038aa81d73ffcc37f741ac"><div class="ttname"><a href="a00315.html#gac0a51b4812038aa81d73ffcc37f741ac">glm::float4x3</a></div><div class="ttdeci">mat&lt; 4, 3, float, highp &gt; float4x3</div><div class="ttdoc">single-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00111">compatibility.hpp:111</a></div></div>
215
- <div class="ttc" id="a00315_html_gad3051649b3715d828a4ab92cdae7c3bf"><div class="ttname"><a href="a00315.html#gad3051649b3715d828a4ab92cdae7c3bf">glm::float4x4</a></div><div class="ttdeci">mat&lt; 4, 4, float, highp &gt; float4x4</div><div class="ttdoc">single-qualifier floating-point matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00112">compatibility.hpp:112</a></div></div>
216
- <div class="ttc" id="a00315_html_gacd33061fc64a7b2dcfd7322c49d9557a"><div class="ttname"><a href="a00315.html#gacd33061fc64a7b2dcfd7322c49d9557a">glm::double2x4</a></div><div class="ttdeci">mat&lt; 2, 4, double, highp &gt; double2x4</div><div class="ttdoc">double-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00122">compatibility.hpp:122</a></div></div>
217
- <div class="ttc" id="a00315_html_gae57d0201096834d25f2b91b319e7cdbd"><div class="ttname"><a href="a00315.html#gae57d0201096834d25f2b91b319e7cdbd">glm::double2x2</a></div><div class="ttdeci">mat&lt; 2, 2, double, highp &gt; double2x2</div><div class="ttdoc">double-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00120">compatibility.hpp:120</a></div></div>
218
- <div class="ttc" id="a00315_html_ga5ec08fc39c9d783dfcc488be240fe975"><div class="ttname"><a href="a00315.html#ga5ec08fc39c9d783dfcc488be240fe975">glm::double3x2</a></div><div class="ttdeci">mat&lt; 3, 2, double, highp &gt; double3x2</div><div class="ttdoc">double-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00123">compatibility.hpp:123</a></div></div>
219
- <div class="ttc" id="a00315_html_gaba86c28da7bf5bdac64fecf7d56e8ff3"><div class="ttname"><a href="a00315.html#gaba86c28da7bf5bdac64fecf7d56e8ff3">glm::atan2</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER vec&lt; 4, T, Q &gt; atan2(const vec&lt; 4, T, Q &gt; &amp;x, const vec&lt; 4, T, Q &gt; &amp;y)</div><div class="ttdoc">Arc tangent. Returns an angle whose tangent is y/x. The signs of x and y are used to determine what q...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00058">compatibility.hpp:58</a></div></div>
220
- <div class="ttc" id="a00315_html_ga45f16a4dd0db1f199afaed9fd12fe9a8"><div class="ttname"><a href="a00315.html#ga45f16a4dd0db1f199afaed9fd12fe9a8">glm::double1x1</a></div><div class="ttdeci">double double1x1</div><div class="ttdoc">double-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00119">compatibility.hpp:119</a></div></div>
221
- <div class="ttc" id="a00315_html_gab5477ab69c40de4db5d58d3359529724"><div class="ttname"><a href="a00315.html#gab5477ab69c40de4db5d58d3359529724">glm::lerp</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER vec&lt; 4, T, Q &gt; lerp(const vec&lt; 4, T, Q &gt; &amp;x, const vec&lt; 4, T, Q &gt; &amp;y, const vec&lt; 4, T, Q &gt; &amp;a)</div><div class="ttdoc">Returns the component-wise result of x * (1.0 - a) + y * a, i.e., the linear blend of x and y using v...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00048">compatibility.hpp:48</a></div></div>
222
- <div class="ttc" id="a00315_html_ga4bad5bb20c6ddaecfe4006c93841d180"><div class="ttname"><a href="a00315.html#ga4bad5bb20c6ddaecfe4006c93841d180">glm::double3x3</a></div><div class="ttdeci">mat&lt; 3, 3, double, highp &gt; double3x3</div><div class="ttdoc">double-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00124">compatibility.hpp:124</a></div></div>
223
- <div class="ttc" id="a00315_html_gae2da7345087db3815a25d8837a727ef1"><div class="ttname"><a href="a00315.html#gae2da7345087db3815a25d8837a727ef1">glm::float4</a></div><div class="ttdeci">vec&lt; 4, float, highp &gt; float4</div><div class="ttdoc">single-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00101">compatibility.hpp:101</a></div></div>
224
- <div class="ttc" id="a00315_html_ga056ffe02d3a45af626f8e62221881c7a"><div class="ttname"><a href="a00315.html#ga056ffe02d3a45af626f8e62221881c7a">glm::int1x1</a></div><div class="ttdeci">int int1x1</div><div class="ttdoc">integer matrix with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00087">compatibility.hpp:87</a></div></div>
225
- <div class="ttc" id="a00315_html_ga02d3c013982c183906c61d74aa3166ce"><div class="ttname"><a href="a00315.html#ga02d3c013982c183906c61d74aa3166ce">glm::float2</a></div><div class="ttdeci">vec&lt; 2, float, highp &gt; float2</div><div class="ttdoc">single-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00099">compatibility.hpp:99</a></div></div>
226
- <div class="ttc" id="a00315_html_ga19925badbe10ce61df1d0de00be0b5ad"><div class="ttname"><a href="a00315.html#ga19925badbe10ce61df1d0de00be0b5ad">glm::isfinite</a></div><div class="ttdeci">GLM_FUNC_DECL vec&lt; 4, bool, Q &gt; isfinite(const vec&lt; 4, T, Q &gt; &amp;x)</div><div class="ttdoc">Test whether or not a scalar or each vector component is a finite value. (From GLM_GTX_compatibility)...</div></div>
227
- <div class="ttc" id="a00315_html_ga9ae6ee155d0f90cb1ae5b6c4546738a0"><div class="ttname"><a href="a00315.html#ga9ae6ee155d0f90cb1ae5b6c4546738a0">glm::bool2x3</a></div><div class="ttdeci">mat&lt; 2, 3, bool, highp &gt; bool2x3</div><div class="ttdoc">boolean matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00073">compatibility.hpp:73</a></div></div>
228
- <div class="ttc" id="a00315_html_ga197ded5ad8354f6b6fb91189d7a269b3"><div class="ttname"><a href="a00315.html#ga197ded5ad8354f6b6fb91189d7a269b3">glm::int2x3</a></div><div class="ttdeci">mat&lt; 2, 3, int, highp &gt; int2x3</div><div class="ttdoc">integer matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00089">compatibility.hpp:89</a></div></div>
229
- <div class="ttc" id="a00315_html_ga0670a2111b5e4a6410bd027fa0232fc3"><div class="ttname"><a href="a00315.html#ga0670a2111b5e4a6410bd027fa0232fc3">glm::int1</a></div><div class="ttdeci">int int1</div><div class="ttdoc">integer vector with 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00082">compatibility.hpp:82</a></div></div>
230
- <div class="ttc" id="a00315_html_ga821ff110fc8533a053cbfcc93e078cc0"><div class="ttname"><a href="a00315.html#ga821ff110fc8533a053cbfcc93e078cc0">glm::float3</a></div><div class="ttdeci">vec&lt; 3, float, highp &gt; float3</div><div class="ttdoc">single-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00100">compatibility.hpp:100</a></div></div>
231
- <div class="ttc" id="a00315_html_gafec3cfd901ab334a92e0242b8f2269b4"><div class="ttname"><a href="a00315.html#gafec3cfd901ab334a92e0242b8f2269b4">glm::float2x4</a></div><div class="ttdeci">mat&lt; 2, 4, float, highp &gt; float2x4</div><div class="ttdoc">single-qualifier floating-point matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00106">compatibility.hpp:106</a></div></div>
232
- <div class="ttc" id="a00315_html_gadb3703955e513632f98ba12fe051ba3e"><div class="ttname"><a href="a00315.html#gadb3703955e513632f98ba12fe051ba3e">glm::bool2x2</a></div><div class="ttdeci">mat&lt; 2, 2, bool, highp &gt; bool2x2</div><div class="ttdoc">boolean matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00072">compatibility.hpp:72</a></div></div>
233
- <div class="ttc" id="a00315_html_ga7d2a7d13986602ae2896bfaa394235d4"><div class="ttname"><a href="a00315.html#ga7d2a7d13986602ae2896bfaa394235d4">glm::bool4x4</a></div><div class="ttdeci">mat&lt; 4, 4, bool, highp &gt; bool4x4</div><div class="ttdoc">boolean matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00080">compatibility.hpp:80</a></div></div>
234
- <div class="ttc" id="a00315_html_gaf5208d01f6c6fbcb7bb55d610b9c0ead"><div class="ttname"><a href="a00315.html#gaf5208d01f6c6fbcb7bb55d610b9c0ead">glm::float1</a></div><div class="ttdeci">float float1</div><div class="ttdoc">single-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00098">compatibility.hpp:98</a></div></div>
235
- <div class="ttc" id="a00315_html_ga73720b8dc4620835b17f74d428f98c0c"><div class="ttname"><a href="a00315.html#ga73720b8dc4620835b17f74d428f98c0c">glm::float1x1</a></div><div class="ttdeci">float float1x1</div><div class="ttdoc">single-qualifier floating-point matrix with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00103">compatibility.hpp:103</a></div></div>
236
- <div class="ttc" id="a00315_html_gabca29ccceea53669618b751aae0ba83d"><div class="ttname"><a href="a00315.html#gabca29ccceea53669618b751aae0ba83d">glm::double4x2</a></div><div class="ttdeci">mat&lt; 4, 2, double, highp &gt; double4x2</div><div class="ttdoc">double-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00126">compatibility.hpp:126</a></div></div>
237
- <div class="ttc" id="a00315_html_gae4a2c53f14aeec9a17c2b81142b7e82d"><div class="ttname"><a href="a00315.html#gae4a2c53f14aeec9a17c2b81142b7e82d">glm::int4x3</a></div><div class="ttdeci">mat&lt; 4, 3, int, highp &gt; int4x3</div><div class="ttdoc">integer matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00095">compatibility.hpp:95</a></div></div>
238
- <div class="ttc" id="a00315_html_ga9ed830f52408b2f83c085063a3eaf1d0"><div class="ttname"><a href="a00315.html#ga9ed830f52408b2f83c085063a3eaf1d0">glm::bool4x2</a></div><div class="ttdeci">mat&lt; 4, 2, bool, highp &gt; bool4x2</div><div class="ttdoc">boolean matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00078">compatibility.hpp:78</a></div></div>
239
- <div class="ttc" id="a00315_html_ga33d43ecbb60a85a1366ff83f8a0ec85f"><div class="ttname"><a href="a00315.html#ga33d43ecbb60a85a1366ff83f8a0ec85f">glm::float2x2</a></div><div class="ttdeci">mat&lt; 2, 2, float, highp &gt; float2x2</div><div class="ttdoc">single-qualifier floating-point matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00104">compatibility.hpp:104</a></div></div>
240
- <div class="ttc" id="a00315_html_ga909c38a425f215a50c847145d7da09f0"><div class="ttname"><a href="a00315.html#ga909c38a425f215a50c847145d7da09f0">glm::int3</a></div><div class="ttdeci">vec&lt; 3, int, highp &gt; int3</div><div class="ttdoc">integer vector with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00084">compatibility.hpp:84</a></div></div>
241
- <div class="ttc" id="a00315_html_ga308b9af0c221145bcfe9bfc129d9098e"><div class="ttname"><a href="a00315.html#ga308b9af0c221145bcfe9bfc129d9098e">glm::float4x2</a></div><div class="ttdeci">mat&lt; 4, 2, float, highp &gt; float4x2</div><div class="ttdoc">single-qualifier floating-point matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00110">compatibility.hpp:110</a></div></div>
242
- <div class="ttc" id="a00315_html_ga3655bc324008553ca61f39952d0b2d08"><div class="ttname"><a href="a00315.html#ga3655bc324008553ca61f39952d0b2d08">glm::double2x3</a></div><div class="ttdeci">mat&lt; 2, 3, double, highp &gt; double2x3</div><div class="ttdoc">double-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00121">compatibility.hpp:121</a></div></div>
243
- <div class="ttc" id="a00315_html_ga939b0cff15cee3030f75c1b2e36f89fe"><div class="ttname"><a href="a00315.html#ga939b0cff15cee3030f75c1b2e36f89fe">glm::float2x3</a></div><div class="ttdeci">mat&lt; 2, 3, float, highp &gt; float2x3</div><div class="ttdoc">single-qualifier floating-point matrix with 2 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00105">compatibility.hpp:105</a></div></div>
244
- <div class="ttc" id="a00315_html_gaa4cbe16a92cf3664376c7a2fc5126aa8"><div class="ttname"><a href="a00315.html#gaa4cbe16a92cf3664376c7a2fc5126aa8">glm::int3x2</a></div><div class="ttdeci">mat&lt; 3, 2, int, highp &gt; int3x2</div><div class="ttdoc">integer matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00091">compatibility.hpp:91</a></div></div>
245
- <div class="ttc" id="a00315_html_ga13c3200b82708f73faac6d7f09ec91a3"><div class="ttname"><a href="a00315.html#ga13c3200b82708f73faac6d7f09ec91a3">glm::bool4</a></div><div class="ttdeci">vec&lt; 4, bool, highp &gt; bool4</div><div class="ttdoc">boolean type with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00069">compatibility.hpp:69</a></div></div>
246
- <div class="ttc" id="a00315_html_ga97a39dd9bc7d572810d80b8467cbffa1"><div class="ttname"><a href="a00315.html#ga97a39dd9bc7d572810d80b8467cbffa1">glm::int4x2</a></div><div class="ttdeci">mat&lt; 4, 2, int, highp &gt; int4x2</div><div class="ttdoc">integer matrix with 4 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00094">compatibility.hpp:94</a></div></div>
247
- <div class="ttc" id="a00315_html_ga7f895c936f0c29c8729afbbf22806090"><div class="ttname"><a href="a00315.html#ga7f895c936f0c29c8729afbbf22806090">glm::bool1x1</a></div><div class="ttdeci">bool bool1x1</div><div class="ttdoc">boolean matrix with 1 x 1 component. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00071">compatibility.hpp:71</a></div></div>
248
- <div class="ttc" id="a00315_html_ga356f8c3a7e7d6376d3d4b0a026407183"><div class="ttname"><a href="a00315.html#ga356f8c3a7e7d6376d3d4b0a026407183">glm::saturate</a></div><div class="ttdeci">GLM_FUNC_QUALIFIER vec&lt; 4, T, Q &gt; saturate(const vec&lt; 4, T, Q &gt; &amp;x)</div><div class="ttdoc">Returns clamp(x, 0, 1) for each component in x. (From GLM_GTX_compatibility) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00053">compatibility.hpp:53</a></div></div>
249
- <div class="ttc" id="a00315_html_ga99629f818737f342204071ef8296b2ed"><div class="ttname"><a href="a00315.html#ga99629f818737f342204071ef8296b2ed">glm::bool3</a></div><div class="ttdeci">vec&lt; 3, bool, highp &gt; bool3</div><div class="ttdoc">boolean type with 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00068">compatibility.hpp:68</a></div></div>
250
- <div class="ttc" id="a00241_html_ga7cd77683da6361e297c56443fc70806d"><div class="ttname"><a href="a00241.html#ga7cd77683da6361e297c56443fc70806d">glm::clamp</a></div><div class="ttdeci">GLM_FUNC_DECL GLM_CONSTEXPR genType clamp(genType x, genType minVal, genType maxVal)</div><div class="ttdoc">Returns min(max(x, minVal), maxVal) for each component in x using the floating-point values minVal an...</div></div>
251
- <div class="ttc" id="a00315_html_ga4e5ce477c15836b21e3c42daac68554d"><div class="ttname"><a href="a00315.html#ga4e5ce477c15836b21e3c42daac68554d">glm::int2x2</a></div><div class="ttdeci">mat&lt; 2, 2, int, highp &gt; int2x2</div><div class="ttdoc">integer matrix with 2 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00088">compatibility.hpp:88</a></div></div>
252
- <div class="ttc" id="a00315_html_gafe3a8fd56354caafe24bfe1b1e3ad22a"><div class="ttname"><a href="a00315.html#gafe3a8fd56354caafe24bfe1b1e3ad22a">glm::int2</a></div><div class="ttdeci">vec&lt; 2, int, highp &gt; int2</div><div class="ttdoc">integer vector with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00083">compatibility.hpp:83</a></div></div>
253
- <div class="ttc" id="a00315_html_ga04dee1552424198b8f58b377c2ee00d8"><div class="ttname"><a href="a00315.html#ga04dee1552424198b8f58b377c2ee00d8">glm::int4x4</a></div><div class="ttdeci">mat&lt; 4, 4, int, highp &gt; int4x4</div><div class="ttdoc">integer matrix with 4 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00096">compatibility.hpp:96</a></div></div>
254
- <div class="ttc" id="a00315_html_gac7d7311f7e0fa8b6163d96dab033a755"><div class="ttname"><a href="a00315.html#gac7d7311f7e0fa8b6163d96dab033a755">glm::bool3x2</a></div><div class="ttdeci">mat&lt; 3, 2, bool, highp &gt; bool3x2</div><div class="ttdoc">boolean matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00075">compatibility.hpp:75</a></div></div>
255
- <div class="ttc" id="a00315_html_gafad66a02ccd360c86d6ab9ff9cfbc19c"><div class="ttname"><a href="a00315.html#gafad66a02ccd360c86d6ab9ff9cfbc19c">glm::double4x3</a></div><div class="ttdeci">mat&lt; 4, 3, double, highp &gt; double4x3</div><div class="ttdoc">double-qualifier floating-point matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00127">compatibility.hpp:127</a></div></div>
256
- <div class="ttc" id="a00315_html_gad0f5dc7f22c2065b1b06d57f1c0658fe"><div class="ttname"><a href="a00315.html#gad0f5dc7f22c2065b1b06d57f1c0658fe">glm::bool4x3</a></div><div class="ttdeci">mat&lt; 4, 3, bool, highp &gt; bool4x3</div><div class="ttdoc">boolean matrix with 4 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00079">compatibility.hpp:79</a></div></div>
257
- <div class="ttc" id="a00315_html_ga20b861a9b6e2a300323671c57a02525b"><div class="ttname"><a href="a00315.html#ga20b861a9b6e2a300323671c57a02525b">glm::double1</a></div><div class="ttdeci">double double1</div><div class="ttdoc">double-qualifier floating-point vector with 1 component. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00114">compatibility.hpp:114</a></div></div>
258
- <div class="ttc" id="a00315_html_ga3d8b9028a1053a44a98902cd1c389472"><div class="ttname"><a href="a00315.html#ga3d8b9028a1053a44a98902cd1c389472">glm::double3</a></div><div class="ttdeci">vec&lt; 3, double, highp &gt; double3</div><div class="ttdoc">double-qualifier floating-point vector with 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00116">compatibility.hpp:116</a></div></div>
259
- <div class="ttc" id="a00315_html_gaf92f58af24f35617518aeb3d4f63fda6"><div class="ttname"><a href="a00315.html#gaf92f58af24f35617518aeb3d4f63fda6">glm::double4</a></div><div class="ttdeci">vec&lt; 4, double, highp &gt; double4</div><div class="ttdoc">double-qualifier floating-point vector with 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00117">compatibility.hpp:117</a></div></div>
260
- <div class="ttc" id="a00315_html_ga15c9649286f0bf431bdf9b3509580048"><div class="ttname"><a href="a00315.html#ga15c9649286f0bf431bdf9b3509580048">glm::int3x3</a></div><div class="ttdeci">mat&lt; 3, 3, int, highp &gt; int3x3</div><div class="ttdoc">integer matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00092">compatibility.hpp:92</a></div></div>
261
- <div class="ttc" id="a00315_html_ga6c97b99aac3e302053ffb58aace9033c"><div class="ttname"><a href="a00315.html#ga6c97b99aac3e302053ffb58aace9033c">glm::bool3x3</a></div><div class="ttdeci">mat&lt; 3, 3, bool, highp &gt; bool3x3</div><div class="ttdoc">boolean matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00076">compatibility.hpp:76</a></div></div>
262
- <div class="ttc" id="a00315_html_gaa6c69f04ba95f3faedf95dae874de576"><div class="ttname"><a href="a00315.html#gaa6c69f04ba95f3faedf95dae874de576">glm::float3x2</a></div><div class="ttdeci">mat&lt; 3, 2, float, highp &gt; float3x2</div><div class="ttdoc">single-qualifier floating-point matrix with 3 x 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00107">compatibility.hpp:107</a></div></div>
263
- <div class="ttc" id="a00315_html_gaecdef18c819c205aeee9f94dc93de56a"><div class="ttname"><a href="a00315.html#gaecdef18c819c205aeee9f94dc93de56a">glm::int4</a></div><div class="ttdeci">vec&lt; 4, int, highp &gt; int4</div><div class="ttdoc">integer vector with 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00085">compatibility.hpp:85</a></div></div>
264
- <div class="ttc" id="a00315_html_ga31b729b04facccda73f07ed26958b3c2"><div class="ttname"><a href="a00315.html#ga31b729b04facccda73f07ed26958b3c2">glm::double2</a></div><div class="ttdeci">vec&lt; 2, double, highp &gt; double2</div><div class="ttdoc">double-qualifier floating-point vector with 2 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00115">compatibility.hpp:115</a></div></div>
265
- <div class="ttc" id="a00315_html_ga6ceb5d38a58becdf420026e12a6562f3"><div class="ttname"><a href="a00315.html#ga6ceb5d38a58becdf420026e12a6562f3">glm::float3x3</a></div><div class="ttdeci">mat&lt; 3, 3, float, highp &gt; float3x3</div><div class="ttdoc">single-qualifier floating-point matrix with 3 x 3 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00108">compatibility.hpp:108</a></div></div>
266
- <div class="ttc" id="a00241_html_ga8e93f374aae27d1a88b921860351f8d4"><div class="ttname"><a href="a00241.html#ga8e93f374aae27d1a88b921860351f8d4">glm::mix</a></div><div class="ttdeci">GLM_FUNC_DECL genTypeT mix(genTypeT x, genTypeT y, genTypeU a)</div><div class="ttdoc">If genTypeU is a floating scalar or vector: Returns x * (1.0 - a) + y * a, i.e., the linear blend of ...</div></div>
267
- <div class="ttc" id="a00315_html_gaa09ab65ec9c3c54305ff502e2b1fe6d9"><div class="ttname"><a href="a00315.html#gaa09ab65ec9c3c54305ff502e2b1fe6d9">glm::bool2</a></div><div class="ttdeci">vec&lt; 2, bool, highp &gt; bool2</div><div class="ttdoc">boolean type with 2 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00067">compatibility.hpp:67</a></div></div>
268
- <div class="ttc" id="a00315_html_gae7d6b679463d37d6c527d478fb470fdf"><div class="ttname"><a href="a00315.html#gae7d6b679463d37d6c527d478fb470fdf">glm::bool3x4</a></div><div class="ttdeci">mat&lt; 3, 4, bool, highp &gt; bool3x4</div><div class="ttdoc">boolean matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00077">compatibility.hpp:77</a></div></div>
269
- <div class="ttc" id="a00315_html_ga2749d59a7fddbac44f34ba78e57ef807"><div class="ttname"><a href="a00315.html#ga2749d59a7fddbac44f34ba78e57ef807">glm::int2x4</a></div><div class="ttdeci">mat&lt; 2, 4, int, highp &gt; int2x4</div><div class="ttdoc">integer matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00090">compatibility.hpp:90</a></div></div>
270
- <div class="ttc" id="a00315_html_ga4d7fa65be8e8e4ad6d920b45c44e471f"><div class="ttname"><a href="a00315.html#ga4d7fa65be8e8e4ad6d920b45c44e471f">glm::bool2x4</a></div><div class="ttdeci">mat&lt; 2, 4, bool, highp &gt; bool2x4</div><div class="ttdoc">boolean matrix with 2 x 4 components. (From GLM_GTX_compatibility extension) </div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00074">compatibility.hpp:74</a></div></div>
271
- <div class="ttc" id="a00315_html_ga2ef022e453d663d70aec414b2a80f756"><div class="ttname"><a href="a00315.html#ga2ef022e453d663d70aec414b2a80f756">glm::double3x4</a></div><div class="ttdeci">mat&lt; 3, 4, double, highp &gt; double3x4</div><div class="ttdoc">double-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00125">compatibility.hpp:125</a></div></div>
272
- <div class="ttc" id="a00236_html"><div class="ttname"><a href="a00236.html">glm</a></div><div class="ttdef"><b>Definition:</b> <a href="a00015_source.html#l00020">common.hpp:20</a></div></div>
273
- <div class="ttc" id="a00315_html_ga4d2679c321b793ca3784fe0315bb5332"><div class="ttname"><a href="a00315.html#ga4d2679c321b793ca3784fe0315bb5332">glm::float3x4</a></div><div class="ttdeci">mat&lt; 3, 4, float, highp &gt; float3x4</div><div class="ttdoc">single-qualifier floating-point matrix with 3 x 4 components. (From GLM_GTX_compatibility extension) ...</div><div class="ttdef"><b>Definition:</b> <a href="a00017_source.html#l00109">compatibility.hpp:109</a></div></div>
274
- </div><!-- fragment --></div><!-- contents -->
275
- <!-- start footer part -->
276
- <hr class="footer"/><address class="footer"><small>
277
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
278
- <img class="footer" src="doxygen.png" alt="doxygen"/>
279
- </a> 1.8.10
280
- </small></address>
281
- </body>
282
- </html>