Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
ACGL
acgl
Commits
b41d0668
Commit
b41d0668
authored
Oct 21, 2015
by
Robert Menzel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated GLM to 0.9.7.1
parent
7ae41f65
Changes
266
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
266 changed files
with
21071 additions
and
19066 deletions
+21071
-19066
include/glm/CMakeLists.txt
include/glm/CMakeLists.txt
+10
-6
include/glm/common.hpp
include/glm/common.hpp
+6
-5
include/glm/detail/_features.hpp
include/glm/detail/_features.hpp
+9
-8
include/glm/detail/_fixes.hpp
include/glm/detail/_fixes.hpp
+6
-2
include/glm/detail/_noise.hpp
include/glm/detail/_noise.hpp
+17
-11
include/glm/detail/_swizzle.hpp
include/glm/detail/_swizzle.hpp
+493
-500
include/glm/detail/_swizzle_func.hpp
include/glm/detail/_swizzle_func.hpp
+7
-6
include/glm/detail/_vectorize.hpp
include/glm/detail/_vectorize.hpp
+114
-171
include/glm/detail/dummy.cpp
include/glm/detail/dummy.cpp
+47
-5
include/glm/detail/func_common.hpp
include/glm/detail/func_common.hpp
+77
-93
include/glm/detail/func_common.inl
include/glm/detail/func_common.inl
+314
-592
include/glm/detail/func_exponential.hpp
include/glm/detail/func_exponential.hpp
+32
-32
include/glm/detail/func_exponential.inl
include/glm/detail/func_exponential.inl
+51
-137
include/glm/detail/func_geometric.hpp
include/glm/detail/func_geometric.hpp
+27
-36
include/glm/detail/func_geometric.inl
include/glm/detail/func_geometric.inl
+52
-191
include/glm/detail/func_integer.hpp
include/glm/detail/func_integer.hpp
+86
-57
include/glm/detail/func_integer.inl
include/glm/detail/func_integer.inl
+247
-512
include/glm/detail/func_matrix.hpp
include/glm/detail/func_matrix.hpp
+8
-9
include/glm/detail/func_matrix.inl
include/glm/detail/func_matrix.inl
+48
-198
include/glm/detail/func_noise.inl
include/glm/detail/func_noise.inl
+0
-384
include/glm/detail/func_packing.hpp
include/glm/detail/func_packing.hpp
+14
-12
include/glm/detail/func_packing.inl
include/glm/detail/func_packing.inl
+138
-39
include/glm/detail/func_trigonometric.hpp
include/glm/detail/func_trigonometric.hpp
+40
-38
include/glm/detail/func_trigonometric.inl
include/glm/detail/func_trigonometric.inl
+121
-143
include/glm/detail/func_vector_relational.hpp
include/glm/detail/func_vector_relational.hpp
+15
-20
include/glm/detail/func_vector_relational.inl
include/glm/detail/func_vector_relational.inl
+34
-62
include/glm/detail/glm.cpp
include/glm/detail/glm.cpp
+7
-9
include/glm/detail/intrinsic_common.hpp
include/glm/detail/intrinsic_common.hpp
+3
-5
include/glm/detail/intrinsic_common.inl
include/glm/detail/intrinsic_common.inl
+8
-8
include/glm/detail/intrinsic_exponential.hpp
include/glm/detail/intrinsic_exponential.hpp
+3
-5
include/glm/detail/intrinsic_exponential.inl
include/glm/detail/intrinsic_exponential.inl
+2
-2
include/glm/detail/intrinsic_geometric.hpp
include/glm/detail/intrinsic_geometric.hpp
+3
-5
include/glm/detail/intrinsic_geometric.inl
include/glm/detail/intrinsic_geometric.inl
+17
-16
include/glm/detail/intrinsic_integer.hpp
include/glm/detail/intrinsic_integer.hpp
+2
-4
include/glm/detail/intrinsic_integer.inl
include/glm/detail/intrinsic_integer.inl
+1
-1
include/glm/detail/intrinsic_matrix.hpp
include/glm/detail/intrinsic_matrix.hpp
+3
-5
include/glm/detail/intrinsic_matrix.inl
include/glm/detail/intrinsic_matrix.inl
+6
-6
include/glm/detail/intrinsic_trigonometric.hpp
include/glm/detail/intrinsic_trigonometric.hpp
+3
-5
include/glm/detail/intrinsic_trigonometric.inl
include/glm/detail/intrinsic_trigonometric.inl
+2
-2
include/glm/detail/intrinsic_vector_relational.hpp
include/glm/detail/intrinsic_vector_relational.hpp
+3
-5
include/glm/detail/intrinsic_vector_relational.inl
include/glm/detail/intrinsic_vector_relational.inl
+89
-89
include/glm/detail/precision.hpp
include/glm/detail/precision.hpp
+8
-6
include/glm/detail/precision.inl
include/glm/detail/precision.inl
+0
-0
include/glm/detail/setup.hpp
include/glm/detail/setup.hpp
+658
-405
include/glm/detail/type_float.hpp
include/glm/detail/type_float.hpp
+7
-6
include/glm/detail/type_gentype.hpp
include/glm/detail/type_gentype.hpp
+7
-6
include/glm/detail/type_gentype.inl
include/glm/detail/type_gentype.inl
+6
-2
include/glm/detail/type_half.hpp
include/glm/detail/type_half.hpp
+7
-10
include/glm/detail/type_half.inl
include/glm/detail/type_half.inl
+7
-4
include/glm/detail/type_int.hpp
include/glm/detail/type_int.hpp
+146
-11
include/glm/detail/type_mat.hpp
include/glm/detail/type_mat.hpp
+83
-85
include/glm/detail/type_mat.inl
include/glm/detail/type_mat.inl
+7
-2
include/glm/detail/type_mat2x2.hpp
include/glm/detail/type_mat2x2.hpp
+93
-113
include/glm/detail/type_mat2x2.inl
include/glm/detail/type_mat2x2.inl
+152
-255
include/glm/detail/type_mat2x3.hpp
include/glm/detail/type_mat2x3.hpp
+92
-97
include/glm/detail/type_mat2x3.inl
include/glm/detail/type_mat2x3.inl
+157
-236
include/glm/detail/type_mat2x4.hpp
include/glm/detail/type_mat2x4.hpp
+94
-99
include/glm/detail/type_mat2x4.inl
include/glm/detail/type_mat2x4.inl
+148
-237
include/glm/detail/type_mat3x2.hpp
include/glm/detail/type_mat3x2.hpp
+94
-97
include/glm/detail/type_mat3x2.inl
include/glm/detail/type_mat3x2.inl
+142
-220
include/glm/detail/type_mat3x3.hpp
include/glm/detail/type_mat3x3.hpp
+93
-110
include/glm/detail/type_mat3x3.inl
include/glm/detail/type_mat3x3.inl
+174
-324
include/glm/detail/type_mat3x4.hpp
include/glm/detail/type_mat3x4.hpp
+98
-101
include/glm/detail/type_mat3x4.inl
include/glm/detail/type_mat3x4.inl
+165
-235
include/glm/detail/type_mat4x2.hpp
include/glm/detail/type_mat4x2.hpp
+95
-99
include/glm/detail/type_mat4x2.inl
include/glm/detail/type_mat4x2.inl
+159
-242
include/glm/detail/type_mat4x3.hpp
include/glm/detail/type_mat4x3.hpp
+86
-90
include/glm/detail/type_mat4x3.inl
include/glm/detail/type_mat4x3.inl
+181
-272
include/glm/detail/type_mat4x4.hpp
include/glm/detail/type_mat4x4.hpp
+93
-111
include/glm/detail/type_mat4x4.inl
include/glm/detail/type_mat4x4.inl
+233
-359
include/glm/detail/type_vec.hpp
include/glm/detail/type_vec.hpp
+149
-153
include/glm/detail/type_vec.inl
include/glm/detail/type_vec.inl
+6
-2
include/glm/detail/type_vec1.hpp
include/glm/detail/type_vec1.hpp
+160
-121
include/glm/detail/type_vec1.inl
include/glm/detail/type_vec1.inl
+198
-412
include/glm/detail/type_vec2.hpp
include/glm/detail/type_vec2.hpp
+228
-138
include/glm/detail/type_vec2.inl
include/glm/detail/type_vec2.inl
+476
-391
include/glm/detail/type_vec3.hpp
include/glm/detail/type_vec3.hpp
+241
-150
include/glm/detail/type_vec3.inl
include/glm/detail/type_vec3.inl
+582
-428
include/glm/detail/type_vec4.hpp
include/glm/detail/type_vec4.hpp
+313
-160
include/glm/detail/type_vec4.inl
include/glm/detail/type_vec4.inl
+627
-502
include/glm/detail/type_vec4_avx.inl
include/glm/detail/type_vec4_avx.inl
+14
-13
include/glm/detail/type_vec4_avx2.inl
include/glm/detail/type_vec4_avx2.inl
+16
-8
include/glm/detail/type_vec4_sse2.inl
include/glm/detail/type_vec4_sse2.inl
+77
-0
include/glm/exponential.hpp
include/glm/exponential.hpp
+6
-5
include/glm/ext.hpp
include/glm/ext.hpp
+21
-16
include/glm/fwd.hpp
include/glm/fwd.hpp
+630
-629
include/glm/geometric.hpp
include/glm/geometric.hpp
+6
-5
include/glm/glm.hpp
include/glm/glm.hpp
+9
-9
include/glm/gtc/bitfield.hpp
include/glm/gtc/bitfield.hpp
+236
-0
include/glm/gtc/bitfield.inl
include/glm/gtc/bitfield.inl
+542
-0
include/glm/gtc/color_space.hpp
include/glm/gtc/color_space.hpp
+81
-0
include/glm/gtc/color_space.inl
include/glm/gtc/color_space.inl
+104
-0
include/glm/gtc/constants.hpp
include/glm/gtc/constants.hpp
+51
-31
include/glm/gtc/constants.inl
include/glm/gtc/constants.inl
+57
-29
include/glm/gtc/epsilon.hpp
include/glm/gtc/epsilon.hpp
+6
-5
include/glm/gtc/epsilon.inl
include/glm/gtc/epsilon.inl
+15
-11
include/glm/gtc/integer.hpp
include/glm/gtc/integer.hpp
+105
-0
include/glm/gtc/integer.inl
include/glm/gtc/integer.inl
+65
-0
include/glm/gtc/matrix_access.hpp
include/glm/gtc/matrix_access.hpp
+11
-10
include/glm/gtc/matrix_access.inl
include/glm/gtc/matrix_access.inl
+15
-11
include/glm/gtc/matrix_integer.hpp
include/glm/gtc/matrix_integer.hpp
+78
-77
include/glm/gtc/matrix_inverse.hpp
include/glm/gtc/matrix_inverse.hpp
+12
-8
include/glm/gtc/matrix_inverse.inl
include/glm/gtc/matrix_inverse.inl
+19
-34
include/glm/gtc/matrix_transform.hpp
include/glm/gtc/matrix_transform.hpp
+209
-109
include/glm/gtc/matrix_transform.inl
include/glm/gtc/matrix_transform.inl
+289
-180
include/glm/gtc/noise.hpp
include/glm/gtc/noise.hpp
+13
-5
include/glm/gtc/noise.inl
include/glm/gtc/noise.inl
+447
-448
include/glm/gtc/packing.hpp
include/glm/gtc/packing.hpp
+26
-26
include/glm/gtc/packing.inl
include/glm/gtc/packing.inl
+107
-84
include/glm/gtc/quaternion.hpp
include/glm/gtc/quaternion.hpp
+127
-151
include/glm/gtc/quaternion.inl
include/glm/gtc/quaternion.inl
+259
-404
include/glm/gtc/random.hpp
include/glm/gtc/random.hpp
+25
-19
include/glm/gtc/random.inl
include/glm/gtc/random.inl
+266
-58
include/glm/gtc/reciprocal.hpp
include/glm/gtc/reciprocal.hpp
+6
-5
include/glm/gtc/reciprocal.inl
include/glm/gtc/reciprocal.inl
+93
-74
include/glm/gtc/round.hpp
include/glm/gtc/round.hpp
+203
-0
include/glm/gtc/round.inl
include/glm/gtc/round.inl
+378
-0
include/glm/gtc/type_precision.hpp
include/glm/gtc/type_precision.hpp
+103
-87
include/glm/gtc/type_precision.inl
include/glm/gtc/type_precision.inl
+5
-1
include/glm/gtc/type_ptr.hpp
include/glm/gtc/type_ptr.hpp
+22
-23
include/glm/gtc/type_ptr.inl
include/glm/gtc/type_ptr.inl
+73
-69
include/glm/gtc/ulp.hpp
include/glm/gtc/ulp.hpp
+6
-6
include/glm/gtc/ulp.inl
include/glm/gtc/ulp.inl
+27
-15
include/glm/gtc/vec1.hpp
include/glm/gtc/vec1.hpp
+79
-52
include/glm/gtc/vec1.inl
include/glm/gtc/vec1.inl
+7
-3
include/glm/gtx/associated_min_max.hpp
include/glm/gtx/associated_min_max.hpp
+167
-42
include/glm/gtx/associated_min_max.inl
include/glm/gtx/associated_min_max.inl
+142
-670
include/glm/gtx/bit.hpp
include/glm/gtx/bit.hpp
+51
-165
include/glm/gtx/bit.inl
include/glm/gtx/bit.inl
+62
-737
include/glm/gtx/closest_point.hpp
include/glm/gtx/closest_point.hpp
+19
-11
include/glm/gtx/closest_point.inl
include/glm/gtx/closest_point.inl
+57
-18
include/glm/gtx/color_space.hpp
include/glm/gtx/color_space.hpp
+17
-16
include/glm/gtx/color_space.inl
include/glm/gtx/color_space.inl
+45
-22
include/glm/gtx/color_space_YCoCg.hpp
include/glm/gtx/color_space_YCoCg.hpp
+14
-13
include/glm/gtx/color_space_YCoCg.inl
include/glm/gtx/color_space_YCoCg.inl
+104
-31
include/glm/gtx/common.hpp
include/glm/gtx/common.hpp
+82
-0
include/glm/gtx/common.inl
include/glm/gtx/common.inl
+141
-0
include/glm/gtx/compatibility.hpp
include/glm/gtx/compatibility.hpp
+71
-72
include/glm/gtx/compatibility.inl
include/glm/gtx/compatibility.inl
+56
-20
include/glm/gtx/component_wise.hpp
include/glm/gtx/component_wise.hpp
+7
-5
include/glm/gtx/component_wise.inl
include/glm/gtx/component_wise.inl
+34
-11
include/glm/gtx/dual_quaternion.hpp
include/glm/gtx/dual_quaternion.hpp
+144
-142
include/glm/gtx/dual_quaternion.inl
include/glm/gtx/dual_quaternion.inl
+175
-194
include/glm/gtx/epsilon.hpp
include/glm/gtx/epsilon.hpp
+0
-29
include/glm/gtx/euler_angles.hpp
include/glm/gtx/euler_angles.hpp
+39
-22
include/glm/gtx/euler_angles.inl
include/glm/gtx/euler_angles.inl
+112
-35
include/glm/gtx/extend.hpp
include/glm/gtx/extend.hpp
+6
-5
include/glm/gtx/extend.inl
include/glm/gtx/extend.inl
+39
-16
include/glm/gtx/extented_min_max.hpp
include/glm/gtx/extented_min_max.hpp
+6
-5
include/glm/gtx/extented_min_max.inl
include/glm/gtx/extented_min_max.inl
+30
-7
include/glm/gtx/fast_exponential.hpp
include/glm/gtx/fast_exponential.hpp
+49
-27
include/glm/gtx/fast_exponential.inl
include/glm/gtx/fast_exponential.inl
+67
-49
include/glm/gtx/fast_square_root.hpp
include/glm/gtx/fast_square_root.hpp
+51
-24
include/glm/gtx/fast_square_root.inl
include/glm/gtx/fast_square_root.inl
+58
-98
include/glm/gtx/fast_trigonometry.hpp
include/glm/gtx/fast_trigonometry.hpp
+38
-34
include/glm/gtx/fast_trigonometry.inl
include/glm/gtx/fast_trigonometry.inl
+124
-27
include/glm/gtx/gradient_paint.hpp
include/glm/gtx/gradient_paint.hpp
+12
-11
include/glm/gtx/gradient_paint.inl
include/glm/gtx/gradient_paint.inl
+39
-16
include/glm/gtx/handed_coordinate_space.hpp
include/glm/gtx/handed_coordinate_space.hpp
+12
-11
include/glm/gtx/handed_coordinate_space.inl
include/glm/gtx/handed_coordinate_space.inl
+36
-13
include/glm/gtx/hash.hpp
include/glm/gtx/hash.hpp
+163
-0
include/glm/gtx/hash.inl
include/glm/gtx/hash.inl
+214
-0
include/glm/gtx/inertia.inl
include/glm/gtx/inertia.inl
+0
-116
include/glm/gtx/integer.hpp
include/glm/gtx/integer.hpp
+7
-10
include/glm/gtx/integer.inl
include/glm/gtx/integer.inl
+40
-31
include/glm/gtx/intersect.hpp
include/glm/gtx/intersect.hpp
+7
-6
include/glm/gtx/io.hpp
include/glm/gtx/io.hpp
+181
-99
include/glm/gtx/io.inl
include/glm/gtx/io.inl
+647
-319
include/glm/gtx/log_base.hpp
include/glm/gtx/log_base.hpp
+16
-8
include/glm/gtx/log_base.inl
include/glm/gtx/log_base.inl
+37
-14
include/glm/gtx/matrix_cross_product.hpp
include/glm/gtx/matrix_cross_product.hpp
+10
-9
include/glm/gtx/matrix_cross_product.inl
include/glm/gtx/matrix_cross_product.inl
+37
-14
include/glm/gtx/matrix_decompose.hpp
include/glm/gtx/matrix_decompose.hpp
+28
-41
include/glm/gtx/matrix_decompose.inl
include/glm/gtx/matrix_decompose.inl
+231
-0
include/glm/gtx/matrix_interpolation.hpp
include/glm/gtx/matrix_interpolation.hpp
+15
-14
include/glm/gtx/matrix_interpolation.inl
include/glm/gtx/matrix_interpolation.inl
+47
-24
include/glm/gtx/matrix_major_storage.hpp
include/glm/gtx/matrix_major_storage.hpp
+42
-41
include/glm/gtx/matrix_major_storage.inl
include/glm/gtx/matrix_major_storage.inl
+79
-56
include/glm/gtx/matrix_operation.hpp
include/glm/gtx/matrix_operation.hpp
+24
-23
include/glm/gtx/matrix_operation.inl
include/glm/gtx/matrix_operation.inl
+58
-35
include/glm/gtx/matrix_query.hpp
include/glm/gtx/matrix_query.hpp
+12
-11
include/glm/gtx/matrix_query.inl
include/glm/gtx/matrix_query.inl
+59
-39
include/glm/gtx/matrix_transform_2d.hpp
include/glm/gtx/matrix_transform_2d.hpp
+21
-20
include/glm/gtx/matrix_transform_2d.inl
include/glm/gtx/matrix_transform_2d.inl
+28
-28
include/glm/gtx/mixed_product.hpp
include/glm/gtx/mixed_product.hpp
+9
-8
include/glm/gtx/mixed_product.inl
include/glm/gtx/mixed_product.inl
+34
-11
include/glm/gtx/multiple.inl
include/glm/gtx/multiple.inl
+0
-152
include/glm/gtx/noise.hpp
include/glm/gtx/noise.hpp
+0
-29
include/glm/gtx/norm.hpp
include/glm/gtx/norm.hpp
+17
-16
include/glm/gtx/norm.inl
include/glm/gtx/norm.inl
+49
-26
include/glm/gtx/normal.hpp
include/glm/gtx/normal.hpp
+10
-9
include/glm/gtx/normal.inl
include/glm/gtx/normal.inl
+35
-12
include/glm/gtx/normalize_dot.hpp
include/glm/gtx/normalize_dot.hpp
+18
-20
include/glm/gtx/normalize_dot.inl
include/glm/gtx/normalize_dot.inl
+36
-105
include/glm/gtx/number_precision.hpp
include/glm/gtx/number_precision.hpp
+6
-5
include/glm/gtx/number_precision.inl
include/glm/gtx/number_precision.inl
+31
-8
include/glm/gtx/optimum_pow.hpp
include/glm/gtx/optimum_pow.hpp
+18
-33
include/glm/gtx/optimum_pow.inl
include/glm/gtx/optimum_pow.inl
+31
-40
include/glm/gtx/orthonormalize.hpp
include/glm/gtx/orthonormalize.hpp
+17
-15
include/glm/gtx/orthonormalize.inl
include/glm/gtx/orthonormalize.inl
+36
-20
include/glm/gtx/perpendicular.hpp
include/glm/gtx/perpendicular.hpp
+6
-5
include/glm/gtx/perpendicular.inl
include/glm/gtx/perpendicular.inl
+31
-8
include/glm/gtx/polar_coordinates.hpp
include/glm/gtx/polar_coordinates.hpp
+10
-9
include/glm/gtx/polar_coordinates.inl
include/glm/gtx/polar_coordinates.inl
+38
-29
include/glm/gtx/projection.hpp
include/glm/gtx/projection.hpp
+12
-12
include/glm/gtx/projection.inl
include/glm/gtx/projection.inl
+33
-14
include/glm/gtx/quaternion.hpp
include/glm/gtx/quaternion.hpp
+54
-53
include/glm/gtx/quaternion.inl
include/glm/gtx/quaternion.inl
+128
-101
include/glm/gtx/random.hpp
include/glm/gtx/random.hpp
+0
-29
include/glm/gtx/range.hpp
include/glm/gtx/range.hpp
+102
-0
include/glm/gtx/raw_data.hpp
include/glm/gtx/raw_data.hpp
+6
-5
include/glm/gtx/raw_data.inl
include/glm/gtx/raw_data.inl
+31
-11
include/glm/gtx/reciprocal.hpp
include/glm/gtx/reciprocal.hpp
+0
-26
include/glm/gtx/rotate_normalized_axis.hpp
include/glm/gtx/rotate_normalized_axis.hpp
+14
-13
include/glm/gtx/rotate_normalized_axis.inl
include/glm/gtx/rotate_normalized_axis.inl
+20
-26
include/glm/gtx/rotate_vector.hpp
include/glm/gtx/rotate_vector.hpp
+42
-28
include/glm/gtx/rotate_vector.inl
include/glm/gtx/rotate_vector.inl
+93
-99
include/glm/gtx/scalar_multiplication.hpp
include/glm/gtx/scalar_multiplication.hpp
+98
-0
include/glm/gtx/scalar_relational.hpp
include/glm/gtx/scalar_relational.hpp
+6
-5
include/glm/gtx/scalar_relational.inl
include/glm/gtx/scalar_relational.inl
+31
-8
include/glm/gtx/simd_mat4.hpp
include/glm/gtx/simd_mat4.hpp
+27
-15
include/glm/gtx/simd_mat4.inl
include/glm/gtx/simd_mat4.inl
+55
-28
include/glm/gtx/simd_quat.hpp
include/glm/gtx/simd_quat.hpp
+144
-145
include/glm/gtx/simd_quat.inl
include/glm/gtx/simd_quat.inl
+72
-51
include/glm/gtx/simd_vec4.hpp
include/glm/gtx/simd_vec4.hpp
+57
-52
include/glm/gtx/simd_vec4.inl
include/glm/gtx/simd_vec4.inl
+23
-17
include/glm/gtx/spline.hpp
include/glm/gtx/spline.hpp
+9
-9
include/glm/gtx/spline.inl
include/glm/gtx/spline.inl
+82
-60
include/glm/gtx/std_based_type.hpp
include/glm/gtx/std_based_type.hpp
+24
-15
include/glm/gtx/std_based_type.inl
include/glm/gtx/std_based_type.inl
+31
-8
include/glm/gtx/string_cast.hpp
include/glm/gtx/string_cast.hpp
+13
-11
include/glm/gtx/string_cast.inl
include/glm/gtx/string_cast.inl
+415
-372
include/glm/gtx/transform.hpp
include/glm/gtx/transform.hpp
+19
-18
include/glm/gtx/transform.inl
include/glm/gtx/transform.inl
+40
-17
include/glm/gtx/transform2.hpp
include/glm/gtx/transform2.hpp
+28
-27
include/glm/gtx/transform2.inl
include/glm/gtx/transform2.inl
+67
-44
include/glm/gtx/type_aligned.hpp
include/glm/gtx/type_aligned.hpp
+995
-0
include/glm/gtx/type_aligned.inl
include/glm/gtx/type_aligned.inl
+12
-9
include/glm/gtx/ulp.hpp
include/glm/gtx/ulp.hpp
+0
-29
include/glm/gtx/unsigned_int.hpp
include/glm/gtx/unsigned_int.hpp
+0
-26
include/glm/gtx/unsigned_int.inl
include/glm/gtx/unsigned_int.inl
+0
-13
include/glm/gtx/vector_angle.hpp
include/glm/gtx/vector_angle.hpp
+11
-10
include/glm/gtx/vector_angle.inl
include/glm/gtx/vector_angle.inl
+42
-54
include/glm/gtx/vector_query.hpp
include/glm/gtx/vector_query.hpp
+6
-5
include/glm/gtx/vector_query.inl
include/glm/gtx/vector_query.inl
+51
-31
include/glm/gtx/wrap.hpp
include/glm/gtx/wrap.hpp
+11
-5
include/glm/gtx/wrap.inl
include/glm/gtx/wrap.inl
+112
-99
include/glm/integer.hpp
include/glm/integer.hpp
+6
-5
include/glm/mat2x2.hpp
include/glm/mat2x2.hpp
+12
-11
include/glm/mat2x3.hpp
include/glm/mat2x3.hpp
+9
-7
include/glm/mat2x4.hpp
include/glm/mat2x4.hpp
+9
-8
include/glm/mat3x2.hpp
include/glm/mat3x2.hpp
+9
-8
include/glm/mat3x3.hpp
include/glm/mat3x3.hpp
+12
-11
include/glm/mat3x4.hpp
include/glm/mat3x4.hpp
+9
-8
include/glm/mat4x2.hpp
include/glm/mat4x2.hpp
+9
-8
include/glm/mat4x3.hpp
include/glm/mat4x3.hpp
+9
-8
include/glm/mat4x4.hpp
include/glm/mat4x4.hpp
+12
-11
include/glm/matrix.hpp
include/glm/matrix.hpp
+6
-5
include/glm/packing.hpp
include/glm/packing.hpp
+6
-5
include/glm/readme.txt
include/glm/readme.txt
+0
-617
include/glm/trigonometric.hpp
include/glm/trigonometric.hpp
+6
-5
include/glm/vec2.hpp
include/glm/vec2.hpp
+6
-5
include/glm/vec3.hpp
include/glm/vec3.hpp
+6
-5
include/glm/vec4.hpp
include/glm/vec4.hpp
+6
-5
include/glm/vector_relational.hpp
include/glm/vector_relational.hpp
+6
-5
include/glm/virtrev/xstream.hpp
include/glm/virtrev/xstream.hpp
+0
-166
No files found.
include/glm/CMakeLists.txt
View file @
b41d0668
...
...
@@ -4,6 +4,8 @@ file(GLOB ROOT_SOURCE *.cpp)
file
(
GLOB ROOT_INLINE *.inl
)
file
(
GLOB ROOT_HEADER *.hpp
)
file
(
GLOB ROOT_TEXT ../*.txt
)
file
(
GLOB ROOT_MD ../*.md
)
file
(
GLOB ROOT_NAT ../util/glm.natvis
)
file
(
GLOB_RECURSE CORE_SOURCE ./detail/*.cpp
)
file
(
GLOB_RECURSE CORE_INLINE ./detail/*.inl
)
...
...
@@ -17,7 +19,7 @@ file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp)
file
(
GLOB_RECURSE GTX_INLINE ./gtx/*.inl
)
file
(
GLOB_RECURSE GTX_HEADER ./gtx/*.hpp
)
source_group
(
"Text Files"
FILES
${
ROOT_TEXT
}
)
source_group
(
"Text Files"
FILES
${
ROOT_TEXT
}
${
ROOT_MD
}
)
source_group
(
"Core Files"
FILES
${
CORE_SOURCE
}
)
source_group
(
"Core Files"
FILES
${
CORE_INLINE
}
)
source_group
(
"Core Files"
FILES
${
CORE_HEADER
}
)
...
...
@@ -30,11 +32,13 @@ source_group("GTX Files" FILES ${GTX_HEADER})
include_directories
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/..
)
add_executable
(
${
NAME
}
${
ROOT_TEXT
}
${
ROOT_SOURCE
}
${
ROOT_INLINE
}
${
ROOT_HEADER
}
${
CORE_SOURCE
}
${
CORE_INLINE
}
${
CORE_HEADER
}
${
GTC_SOURCE
}
${
GTC_INLINE
}
${
GTC_HEADER
}
${
GTX_SOURCE
}
${
GTX_INLINE
}
${
GTX_HEADER
}
)
if
(
GLM_TEST_ENABLE
)
add_executable
(
${
NAME
}
${
ROOT_TEXT
}
${
ROOT_MD
}
${
ROOT_NAT
}
${
ROOT_SOURCE
}
${
ROOT_INLINE
}
${
ROOT_HEADER
}
${
CORE_SOURCE
}
${
CORE_INLINE
}
${
CORE_HEADER
}
${
GTC_SOURCE
}
${
GTC_INLINE
}
${
GTC_HEADER
}
${
GTX_SOURCE
}
${
GTX_INLINE
}
${
GTX_HEADER
}
)
endif
(
GLM_TEST_ENABLE
)
#add_library(glm STATIC glm.cpp)
#add_library(glm_shared SHARED glm.cpp)
include/glm/common.hpp
View file @
b41d0668
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
/// Copyright (c) 2005 - 201
4
G-Truc Creation (www.g-truc.net)
/// Copyright (c) 2005 - 201
5
G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
...
...
@@ -12,6 +12,10 @@
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// Restrictions:
/// By making use of the Software for military purposes, you choose to make
/// a Bunny unhappy.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
...
...
@@ -26,9 +30,6 @@
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
#ifndef GLM_COMMON_INCLUDED
#define GLM_COMMON_INCLUDED
#pragma once
#include "detail/func_common.hpp"
#endif//GLM_COMMON_INCLUDED
include/glm/detail/_features.hpp
View file @
b41d0668
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
/// Copyright (c) 2005 - 201
4
G-Truc Creation (www.g-truc.net)
/// Copyright (c) 2005 - 201
5
G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
...
...
@@ -12,6 +12,10 @@
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// Restrictions:
/// By making use of the Software for military purposes, you choose to make
/// a Bunny unhappy.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
...
...
@@ -21,13 +25,12 @@
/// THE SOFTWARE.
///
/// @ref core
/// @file glm/
core
/_features.hpp
/// @file glm/
detail
/_features.hpp
/// @date 2013-02-20 / 2013-02-20
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_core_features
#define glm_core_features
#pragma once
// #define GLM_CXX98_EXCEPTIONS
// #define GLM_CXX98_RTTI
...
...
@@ -281,7 +284,7 @@
# define GLM_CXX11_STATIC_ASSERT
# endif
#elif(GLM_COMPILER & GLM_COMPILER_
CLANG
)
#elif(GLM_COMPILER &
(
GLM_COMPILER_
APPLE_CLANG | GLM_COMPILER_LLVM)
)
# if(__has_feature(cxx_exceptions))
# define GLM_CXX98_EXCEPTIONS
# endif
...
...
@@ -422,6 +425,4 @@
# define GLM_CXX11_VARIADIC_TEMPLATES
# endif
#endif//(GLM_COMPILER & GLM_COMPILER_CLANG)
#endif//glm_core_features
#endif//(GLM_COMPILER & (GLM_COMPILER_APPLE_CLANG | GLM_COMPILER_LLVM))
include/glm/detail/_fixes.hpp
View file @
b41d0668
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
/// Copyright (c) 2005 - 201
4
G-Truc Creation (www.g-truc.net)
/// Copyright (c) 2005 - 201
5
G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
...
...
@@ -12,6 +12,10 @@
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// Restrictions:
/// By making use of the Software for military purposes, you choose to make
/// a Bunny unhappy.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
...
...
@@ -21,7 +25,7 @@
/// THE SOFTWARE.
///
/// @ref core
/// @file glm/
core
/_fixes.hpp
/// @file glm/
detail
/_fixes.hpp
/// @date 2011-02-21 / 2011-11-22
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
...
...
include/glm/detail/_noise.hpp
View file @
b41d0668
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
/// Copyright (c) 2005 - 201
4
G-Truc Creation (www.g-truc.net)
/// Copyright (c) 2005 - 201
5
G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
...
...
@@ -12,6 +12,10 @@
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// Restrictions:
/// By making use of the Software for military purposes, you choose to make
/// a Bunny unhappy.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
...
...
@@ -26,8 +30,12 @@
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
#ifndef GLM_DETAIL_NOISE_INCLUDED
#define GLM_DETAIL_NOISE_INCLUDED
#pragma once
#include "../vec2.hpp"
#include "../vec3.hpp"
#include "../vec4.hpp"
#include "../common.hpp"
namespace
glm
{
namespace
detail
...
...
@@ -75,19 +83,19 @@ namespace detail
}
template
<
typename
T
,
precision
P
>
GLM_FUNC_QUALIFIER
detail
::
tvec2
<
T
,
P
>
taylorInvSqrt
(
detail
::
tvec2
<
T
,
P
>
const
&
r
)
GLM_FUNC_QUALIFIER
tvec2
<
T
,
P
>
taylorInvSqrt
(
tvec2
<
T
,
P
>
const
&
r
)
{
return
T
(
1.79284291400159
)
-
T
(
0.85373472095314
)
*
r
;
}
template
<
typename
T
,
precision
P
>
GLM_FUNC_QUALIFIER
detail
::
tvec3
<
T
,
P
>
taylorInvSqrt
(
detail
::
tvec3
<
T
,
P
>
const
&
r
)
GLM_FUNC_QUALIFIER
tvec3
<
T
,
P
>
taylorInvSqrt
(
tvec3
<
T
,
P
>
const
&
r
)
{
return
T
(
1.79284291400159
)
-
T
(
0.85373472095314
)
*
r
;
}
template
<
typename
T
,
precision
P
>
GLM_FUNC_QUALIFIER
detail
::
tvec4
<
T
,
P
>
taylorInvSqrt
(
detail
::
tvec4
<
T
,
P
>
const
&
r
)
GLM_FUNC_QUALIFIER
tvec4
<
T
,
P
>
taylorInvSqrt
(
tvec4
<
T
,
P
>
const
&
r
)
{
return
T
(
1.79284291400159
)
-
T
(
0.85373472095314
)
*
r
;
}
...
...
@@ -100,19 +108,19 @@ namespace detail
*/
template
<
typename
T
,
precision
P
>
GLM_FUNC_QUALIFIER
detail
::
tvec2
<
T
,
P
>
fade
(
detail
::
tvec2
<
T
,
P
>
const
&
t
)
GLM_FUNC_QUALIFIER
tvec2
<
T
,
P
>
fade
(
tvec2
<
T
,
P
>
const
&
t
)
{
return
(
t
*
t
*
t
)
*
(
t
*
(
t
*
T
(
6
)
-
T
(
15
))
+
T
(
10
));
}
template
<
typename
T
,
precision
P
>
GLM_FUNC_QUALIFIER
detail
::
tvec3
<
T
,
P
>
fade
(
detail
::
tvec3
<
T
,
P
>
const
&
t
)
GLM_FUNC_QUALIFIER
tvec3
<
T
,
P
>
fade
(
tvec3
<
T
,
P
>
const
&
t
)
{
return
(
t
*
t
*
t
)
*
(
t
*
(
t
*
T
(
6
)
-
T
(
15
))
+
T
(
10
));
}
template
<
typename
T
,
precision
P
>
GLM_FUNC_QUALIFIER
detail
::
tvec4
<
T
,
P
>
fade
(
detail
::
tvec4
<
T
,
P
>
const
&
t
)
GLM_FUNC_QUALIFIER
tvec4
<
T
,
P
>
fade
(
tvec4
<
T
,
P
>
const
&
t
)
{
return
(
t
*
t
*
t
)
*
(
t
*
(
t
*
T
(
6
)
-
T
(
15
))
+
T
(
10
));
}
...
...
@@ -126,5 +134,3 @@ namespace detail
}
//namespace detail
}
//namespace glm
#endif//GLM_DETAIL_NOISE_INCLUDED
include/glm/detail/_swizzle.hpp
View file @
b41d0668
This diff is collapsed.
Click to expand it.
include/glm/detail/_swizzle_func.hpp
View file @
b41d0668
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
/// Copyright (c) 2005 - 201
4
G-Truc Creation (www.g-truc.net)
/// Copyright (c) 2005 - 201
5
G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
...
...
@@ -12,6 +12,10 @@
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// Restrictions:
/// By making use of the Software for military purposes, you choose to make
/// a Bunny unhappy.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
...
...
@@ -21,13 +25,12 @@
/// THE SOFTWARE.
///
/// @ref core
/// @file glm/
core
/_swizzle_func.hpp
/// @file glm/
detail
/_swizzle_func.hpp
/// @date 2011-10-16 / 2011-10-16
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
#ifndef glm_core_swizzle_func
#define glm_core_swizzle_func
#pragma once
#define GLM_SWIZZLE_GEN_VEC2_ENTRY(TMPL_TYPE, PRECISION, CLASS_TYPE, SWIZZLED_TYPE, CONST, A, B) \
SWIZZLED_TYPE
<
TMPL_TYPE
,
PRECISION
>
A
##
B
()
CONST
\
...
...
@@ -720,5 +723,3 @@
GLM_SWIZZLE_GEN_VEC_FROM_VEC4_COMP
(
TMPL_TYPE
,
PRECISION
,
CLASS_TYPE
,
SWIZZLED_VEC2_TYPE
,
SWIZZLED_VEC3_TYPE
,
SWIZZLED_VEC4_TYPE
,
s
,
t
,
p
,
q
)
//GLM_SWIZZLE_GEN_VEC_FROM_VEC4(valType, detail::vec4, detail::vec2, detail::vec3, detail::vec4)
#endif//glm_core_swizzle_func
include/glm/detail/_vectorize.hpp
View file @
b41d0668
///////////////////////////////////////////////////////////////////////////////////
/// OpenGL Mathematics (glm.g-truc.net)
///
/// Copyright (c) 2005 - 201
4
G-Truc Creation (www.g-truc.net)
/// Copyright (c) 2005 - 201
5
G-Truc Creation (www.g-truc.net)
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
...
...
@@ -12,6 +12,10 @@
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
///
/// Restrictions:
/// By making use of the Software for military purposes, you choose to make
/// a Bunny unhappy.
///
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
...
...
@@ -21,197 +25,136 @@
/// THE SOFTWARE.
///
/// @ref core
/// @file glm/
core
/_vectorize.hpp
/// @file glm/
detail
/_vectorize.hpp
/// @date 2011-10-14 / 2011-10-14
/// @author Christophe Riccio
///////////////////////////////////////////////////////////////////////////////////
#ifndef GLM_CORE_DETAIL_INCLUDED
#define GLM_CORE_DETAIL_INCLUDED
#pragma once
#include "type_vec1.hpp"
#include "type_vec2.hpp"
#include "type_vec3.hpp"
#include "type_vec4.hpp"
#define VECTORIZE1_VEC(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec1
<
T
,
P
>
func
(
\
detail
::
tvec1
<
T
,
P
>
const
&
v
)
\
{
\
return
detail
::
tvec1
<
T
,
P
>
(
\
func
(
v
.
x
));
\
}
#define VECTORIZE2_VEC(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec2
<
T
,
P
>
func
(
\
detail
::
tvec2
<
T
,
P
>
const
&
v
)
\
{
\
return
detail
::
tvec2
<
T
,
P
>
(
\
func
(
v
.
x
),
\
func
(
v
.
y
));
\
}
#define VECTORIZE3_VEC(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec3
<
T
,
P
>
func
(
\
detail
::
tvec3
<
T
,
P
>
const
&
v
)
\
{
\
return
detail
::
tvec3
<
T
,
P
>
(
\
func
(
v
.
x
),
\
func
(
v
.
y
),
\
func
(
v
.
z
));
\
}
#define VECTORIZE4_VEC(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec4
<
T
,
P
>
func
(
\
detail
::
tvec4
<
T
,
P
>
const
&
v
)
\
{
\
return
detail
::
tvec4
<
T
,
P
>
(
\
func
(
v
.
x
),
\
func
(
v
.
y
),
\
func
(
v
.
z
),
\
func
(
v
.
w
));
\
}
#define VECTORIZE_VEC(func) \
VECTORIZE1_VEC
(
func
)
\
VECTORIZE2_VEC
(
func
)
\
VECTORIZE3_VEC
(
func
)
\
VECTORIZE4_VEC
(
func
)
#define VECTORIZE1_VEC_SCA(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec1
<
T
,
P
>
func
\
(
\
detail
::
tvec1
<
T
,
P
>
const
&
x
,
\
T
const
&
y
\
)
\
{
\
return
detail
::
tvec1
<
T
,
P
>
(
\
func
(
x
.
x
,
y
));
\
}
#define VECTORIZE2_VEC_SCA(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec2
<
T
,
P
>
func
\
(
\
detail
::
tvec2
<
T
,
P
>
const
&
x
,
\
T
const
&
y
\
)
\
{
\
return
detail
::
tvec2
<
T
,
P
>
(
\
func
(
x
.
x
,
y
),
\
func
(
x
.
y
,
y
));
\
}
#define VECTORIZE3_VEC_SCA(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec3
<
T
,
P
>
func
\
(
\
detail
::
tvec3
<
T
,
P
>
const
&
x
,
\
T
const
&
y
\
)
\
{
\
return
detail
::
tvec3
<
T
,
P
>
(
\
func
(
x
.
x
,
y
),
\
func
(
x
.
y
,
y
),
\
func
(
x
.
z
,
y
));
\
}
#define VECTORIZE4_VEC_SCA(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec4
<
T
,
P
>
func
\
(
\
detail
::
tvec4
<
T
,
P
>
const
&
x
,
\
T
const
&
y
\
)
\
{
\
return
detail
::
tvec4
<
T
,
P
>
(
\
func
(
x
.
x
,
y
),
\
func
(
x
.
y
,
y
),
\
func
(
x
.
z
,
y
),
\
func
(
x
.
w
,
y
));
\
}
#define VECTORIZE_VEC_SCA(func) \
VECTORIZE1_VEC_SCA
(
func
)
\
VECTORIZE2_VEC_SCA
(
func
)
\
VECTORIZE3_VEC_SCA
(
func
)
\
VECTORIZE4_VEC_SCA
(
func
)
#define VECTORIZE2_VEC_VEC(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec2
<
T
,
P
>
func
\
(
\
detail
::
tvec2
<
T
,
P
>
const
&
x
,
\
detail
::
tvec2
<
T
,
P
>
const
&
y
\
)
\
{
\
return
detail
::
tvec2
<
T
,
P
>
(
\
func
(
x
.
x
,
y
.
x
),
\
func
(
x
.
y
,
y
.
y
));
\
}
#define VECTORIZE3_VEC_VEC(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec3
<
T
,
P
>
func
\
(
\
detail
::
tvec3
<
T
,
P
>
const
&
x
,
\
detail
::
tvec3
<
T
,
P
>
const
&
y
\
)
\
{
\
return
detail
::
tvec3
<
T
,
P
>
(
\
func
(
x
.
x
,
y
.
x
),
\
func
(
x
.
y
,
y
.
y
),
\
func
(
x
.
z
,
y
.
z
));
\
}
#define VECTORIZE4_VEC_VEC(func) \
template
<
typename
T
,
precision
P
>
\
GLM_FUNC_QUALIFIER
detail
::
tvec4
<
T
,
P
>
func
\
(
\
detail
::
tvec4
<
T
,
P
>
const
&
x
,
\
detail
::
tvec4
<
T
,
P
>
const
&
y
\
)
\
{
\
return
detail
::
tvec4
<
T
,
P
>
(
\
func
(
x
.
x
,
y
.
x
),
\
func
(
x
.
y
,
y
.
y
),
\
func
(
x
.
z
,
y
.
z
),
\
func
(
x
.
w
,
y
.
w
));
\
}
#define VECTORIZE_VEC_VEC(func) \
VECTORIZE2_VEC_VEC
(
func
)
\
VECTORIZE3_VEC_VEC
(
func
)
\
VECTORIZE4_VEC_VEC
(
func
)
namespace
glm
{
namespace
detail
{
template
<
bool
C
>
struct
If
template
<
typename
R
,
typename
T
,
precision
P
,
template
<
typename
,
precision
>
class
vecType
>
struct
functor1
{};
template
<
typename
R
,
typename
T
,
precision
P
>
struct
functor1
<
R
,
T
,
P
,
tvec1
>
{
GLM_FUNC_QUALIFIER
static
tvec1
<
R
,
P
>
call
(
R
(
*
Func
)
(
T
x
),
tvec1
<
T
,
P
>
const
&
v
)
{
return
tvec1
<
R
,
P
>
(
Func
(
v
.
x
));
}
};
template
<
typename
R
,
typename
T
,
precision
P
>
struct
functor1
<
R
,
T
,
P
,
tvec2
>
{
GLM_FUNC_QUALIFIER
static
tvec2
<
R
,
P
>
call
(
R
(
*
Func
)
(
T
x
),
tvec2
<
T
,
P
>
const
&
v
)
{
return
tvec2
<
R
,
P
>
(
Func
(
v
.
x
),
Func
(
v
.
y
));
}
};
template
<
typename
R
,
typename
T
,
precision
P
>
struct
functor1
<
R
,
T
,
P
,
tvec3
>
{
GLM_FUNC_QUALIFIER
static
tvec3
<
R
,
P
>
call
(
R
(
*
Func
)
(
T
x
),
tvec3
<
T
,
P
>
const
&
v
)
{
return
tvec3
<
R
,
P
>
(
Func
(
v
.
x
),
Func
(
v
.
y
),
Func
(
v
.
z
));
}
};
template
<
typename
R
,
typename
T
,
precision
P
>
struct
functor1
<
R
,
T
,
P
,
tvec4
>
{
GLM_FUNC_QUALIFIER
static
tvec4
<
R
,
P
>
call
(
R
(
*
Func
)
(
T
x
),
tvec4
<
T
,
P
>
const
&
v
)
{
return
tvec4
<
R
,
P
>
(
Func
(
v
.
x
),
Func
(
v
.
y
),
Func
(
v
.
z
),
Func
(
v
.
w
));
}