33#include <NDEVR/Vector.h>
53 template<typename t_type, bool is_vector = IsVec<t_type>::value,
bool is_buffer = std::is_base_of<BufferBase, t_type>::value>
66 template<
typename t_type>
76 static const bool Primitive = std::is_integral<t_type>::value || std::is_floating_point<t_type>::value || std::is_enum<t_type>::value || std::is_pointer<t_type>::value;
78 static const bool Pointer = std::is_pointer<t_type>::value;
80 static const bool Unsigned = std::is_unsigned<t_type>::value;
82 static const bool Float = std::is_floating_point<t_type>::value;
84 static const bool Integer = std::is_integral<t_type>::value;
86 static const bool Number = std::is_integral<t_type>::value || std::is_floating_point<t_type>::value;
88 static const bool Enum = std::is_enum<t_type>::value;
92 static const bool Color =
false;
118 template<
typename t_type>
143 template<
typename t_type>
180 static const bool Enum =
false;
205 static const bool Enum =
false;
219 template<
class t_first_type,
class t_second_type>
220 struct ObjectInfo<
std::pair<t_first_type, t_second_type>, false, false>
222 static const uint01 Dimensions = 0;
223 static const bool Vector =
false;
224 static const bool Buffer =
false;
225 static const bool Primitive = ObjectInfo<t_first_type>::Primitive && ObjectInfo<t_second_type>::Primitive;
226 static const bool Pointer =
false;
227 static const bool Unsigned =
false;
228 static const bool Float =
false;
229 static const bool Integer =
false;
230 static const bool Number =
false;
231 static const bool Enum =
false;
232 static const bool String =
false;
233 static const bool Color =
false;
234 static const bool Boolean =
false;
239 static constexpr ObjectInfo<std::pair<t_first_type, t_second_type>,
false> VectorSub() {
return ObjectInfo<std::pair<t_first_type, t_second_type>,
false>(); }
A dummy class for easy tracking of inheritance with templated Buffers.
The primary namespace for the NDEVR SDK.
@ Color
Per-vertex RGBA color.
uint8_t uint01
-Defines an alias representing a 1 byte, unsigned integer -Can represent exact integer values 0 throu...
static const bool Vector
False because bool is not a vector.
static const bool Unsigned
False because bool is not considered unsigned.
static const bool Enum
False because bool is not an enum.
static const bool Integer
False because bool is not an integer.
static const bool Color
False because bool is not a color.
static const bool String
False because bool is not a string.
static const bool Float
False because bool is not floating point.
static const bool Primitive
True because bool is a primitive type.
static const bool Pointer
False because bool is not a pointer.
static const uint01 Dimensions
Always zero for scalar types.
static const bool Buffer
False because bool is not a buffer.
static constexpr ObjectInfo< bool, false, false > VectorSub()
Returns the ObjectInfo for this type since bool has no sub-type.
static const bool Number
False because bool is not a number.
static const bool Boolean
True because this is the bool specialization.
static const bool Unsigned
False because char is not considered unsigned.
static const bool Primitive
True because char is a primitive type.
static const bool Color
False because char is not a color.
static const bool Enum
False because char is not an enum.
static const uint01 Dimensions
Always zero for scalar types.
static const bool String
False because char is not a string.
static const bool Buffer
False because char is not a buffer.
static constexpr ObjectInfo< char, false > VectorSub()
Returns the ObjectInfo for this type since char has no sub-type.
static const bool Boolean
False because char is not a boolean.
static const bool Vector
False because char is not a vector.
static const bool Integer
False because char is treated as a character, not an integer.
static const bool Number
False because char is treated as a character, not a number.
static const bool Pointer
False because char is not a pointer.
static const bool Float
False because char is not floating point.
static const bool Unsigned
True if unsigned.
static const bool Enum
True if is an enum.
static const bool Vector
True if object is a vector.
static const bool Integer
True is an integer.
static const bool Pointer
True if the object is a pointer.
static const bool Primitive
Useful for buffers.
static const uint01 Dimensions
The number of dimensions or zero if scaler type.
static const bool Float
True if is a floating point number.
static constexpr ObjectInfo< t_type, false > VectorSub()
If this object is of type vector, returns this object's sub object.
static const bool Boolean
True if is a boolean type.
static const bool Buffer
True if object is a Buffer.
static const bool Number
True is a number.
static const bool String
True is a string.
static const bool Color
True is a color.
static const bool Boolean
Whether the buffer's element type is a boolean.
static const uint01 Dimensions
Always zero for buffer types.
static const bool Float
Whether the buffer's element type is floating point.
static const bool Primitive
Always false for buffers since they require allocation.
static const bool Unsigned
Whether the buffer's element type is unsigned.
static const bool Color
Whether the buffer's element type is a color.
static const bool Buffer
True because this specialization handles buffer types.
static const bool Vector
False because this is not a vector type.
static constexpr ObjectInfo< decltype(t_type::Type())> VectorSub()
Returns the ObjectInfo for the buffer's element sub-type.
static const bool Pointer
Whether the buffer's element type is a pointer.
static const bool Number
Whether the buffer's element type is numeric.
static const bool String
Whether the buffer's element type is a string.
static const bool Integer
Whether the buffer's element type is an integer.
static const bool Unsigned
Whether the vector's element type is unsigned.
static const bool Float
Whether the vector's element type is floating point.
static const bool Color
Whether the vector's element type is a color.
static constexpr ObjectInfo< decltype(t_type::Type())> VectorSub()
Returns the ObjectInfo for the vector's element sub-type.
static const bool Boolean
Whether the vector's element type is a boolean.
static const bool Vector
True because this specialization handles vector types.
static const bool Number
Whether the vector's element type is numeric.
static const uint01 Dimensions
The number of dimensions of the vector type.
static const bool Primitive
Whether the vector's element type is primitive.
static const bool Pointer
Whether the vector's element type is a pointer.
static const bool Buffer
False because this is not a buffer type.
static const bool String
Whether the vector's element type is a string.
static const bool Integer
Whether the vector's element type is an integer.
Information about the object.