|
@@ -345,6 +345,91 @@ namespace detail
|
|
|
typedef float float32;
|
|
typedef float float32;
|
|
|
typedef double float64;
|
|
typedef double float64;
|
|
|
|
|
|
|
|
|
|
+ //////////////////
|
|
|
|
|
+ // float_or_int_trait
|
|
|
|
|
+
|
|
|
|
|
+ struct float_or_int_value
|
|
|
|
|
+ {
|
|
|
|
|
+ enum
|
|
|
|
|
+ {
|
|
|
|
|
+ ERROR,
|
|
|
|
|
+ FLOAT,
|
|
|
|
|
+ INT
|
|
|
|
|
+ };
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <typename T>
|
|
|
|
|
+ struct float_or_int_trait
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::ERROR};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<int8>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::INT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<int16>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::INT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<int32>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::INT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<int64>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::INT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<uint8>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::INT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<uint16>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::INT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<uint32>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::INT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<uint64>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::INT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<float16>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::FLOAT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<float32>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::FLOAT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ template <>
|
|
|
|
|
+ struct float_or_int_trait<float64>
|
|
|
|
|
+ {
|
|
|
|
|
+ enum{ID = float_or_int_value::FLOAT};
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
}//namespace detail
|
|
}//namespace detail
|
|
|
|
|
|
|
|
}//namespace glm
|
|
}//namespace glm
|