Go to the documentation of this file.
15 #ifndef GLM_ENABLE_EXPERIMENTAL
16 # error "GLM: GLM_GTX_type_trait 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."
20 #include "../detail/type_vec2.hpp"
21 #include "../detail/type_vec3.hpp"
22 #include "../detail/type_vec4.hpp"
23 #include "../detail/type_mat2x2.hpp"
24 #include "../detail/type_mat2x3.hpp"
25 #include "../detail/type_mat2x4.hpp"
26 #include "../detail/type_mat3x2.hpp"
27 #include "../detail/type_mat3x3.hpp"
28 #include "../detail/type_mat3x4.hpp"
29 #include "../detail/type_mat4x2.hpp"
30 #include "../detail/type_mat4x3.hpp"
31 #include "../detail/type_mat4x4.hpp"
32 #include "../gtc/quaternion.hpp"
33 #include "../gtx/dual_quaternion.hpp"
35 #if GLM_MESSAGES == GLM_MESSAGES_ENABLED && !defined(GLM_EXT_INCLUDED)
36 # pragma message("GLM: GLM_GTX_type_trait extension included")
47 static bool const is_vec =
false;
48 static bool const is_mat =
false;
49 static bool const is_quat =
false;
50 static length_t
const components = 0;
51 static length_t
const cols = 0;
52 static length_t
const rows = 0;
55 template<length_t L,
typename T, qualifier Q>
56 struct type<vec<L, T, Q> >
58 static bool const is_vec =
true;
59 static bool const is_mat =
false;
60 static bool const is_quat =
false;
67 template<
typename T, qualifier Q>
68 struct type<mat<2, 2, T, Q> >
70 static bool const is_vec =
false;
71 static bool const is_mat =
true;
72 static bool const is_quat =
false;
81 template<
typename T, qualifier Q>
82 struct type<mat<2, 3, T, Q> >
84 static bool const is_vec =
false;
85 static bool const is_mat =
true;
86 static bool const is_quat =
false;
95 template<
typename T, qualifier Q>
96 struct type<mat<2, 4, T, Q> >
98 static bool const is_vec =
false;
99 static bool const is_mat =
true;
100 static bool const is_quat =
false;
109 template<
typename T, qualifier Q>
110 struct type<mat<3, 2, T, Q> >
112 static bool const is_vec =
false;
113 static bool const is_mat =
true;
114 static bool const is_quat =
false;
123 template<
typename T, qualifier Q>
124 struct type<mat<3, 3, T, Q> >
126 static bool const is_vec =
false;
127 static bool const is_mat =
true;
128 static bool const is_quat =
false;
137 template<
typename T, qualifier Q>
138 struct type<mat<3, 4, T, Q> >
140 static bool const is_vec =
false;
141 static bool const is_mat =
true;
142 static bool const is_quat =
false;
151 template<
typename T, qualifier Q>
152 struct type<mat<4, 2, T, Q> >
154 static bool const is_vec =
false;
155 static bool const is_mat =
true;
156 static bool const is_quat =
false;
165 template<
typename T, qualifier Q>
166 struct type<mat<4, 3, T, Q> >
168 static bool const is_vec =
false;
169 static bool const is_mat =
true;
170 static bool const is_quat =
false;
179 template<
typename T, qualifier Q>
180 struct type<mat<4, 4, T, Q> >
182 static bool const is_vec =
false;
183 static bool const is_mat =
true;
184 static bool const is_quat =
false;
193 template<
typename T, qualifier Q>
194 struct type<tquat<T, Q> >
196 static bool const is_vec =
false;
197 static bool const is_mat =
false;
198 static bool const is_quat =
true;
205 template<
typename T, qualifier Q>
206 struct type<tdualquat<T, Q> >
208 static bool const is_vec =
false;
209 static bool const is_mat =
false;
210 static bool const is_quat =
true;
220 #include "type_trait.inl"