From e62817b8252974b8a98393275874ee303840bf13 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Fri, 12 May 2017 18:49:50 +0500 Subject: 2017-05-12 --- depedencies/include/glm/detail/type_gentype.hpp | 195 ++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 depedencies/include/glm/detail/type_gentype.hpp (limited to 'depedencies/include/glm/detail/type_gentype.hpp') diff --git a/depedencies/include/glm/detail/type_gentype.hpp b/depedencies/include/glm/detail/type_gentype.hpp new file mode 100644 index 0000000..8fd202e --- /dev/null +++ b/depedencies/include/glm/detail/type_gentype.hpp @@ -0,0 +1,195 @@ +/// @ref core +/// @file glm/detail/type_gentype.hpp + +#pragma once + +namespace glm +{ + enum profile + { + nice, + fast, + simd + }; + + typedef std::size_t sizeType; + +namespace detail +{ + template + < + typename VALTYPE, + template class TYPE + > + struct genType + { + public: + enum ctor{null}; + + typedef VALTYPE value_type; + typedef VALTYPE & value_reference; + typedef VALTYPE * value_pointer; + typedef VALTYPE const * value_const_pointer; + typedef TYPE bool_type; + + typedef sizeType size_type; + static bool is_vector(); + static bool is_matrix(); + + typedef TYPE type; + typedef TYPE * pointer; + typedef TYPE const * const_pointer; + typedef TYPE const * const const_pointer_const; + typedef TYPE * const pointer_const; + typedef TYPE & reference; + typedef TYPE const & const_reference; + typedef TYPE const & param_type; + + ////////////////////////////////////// + // Address (Implementation details) + + value_const_pointer value_address() const{return value_pointer(this);} + value_pointer value_address(){return value_pointer(this);} + + //protected: + // enum kind + // { + // GEN_TYPE, + // VEC_TYPE, + // MAT_TYPE + // }; + + // typedef typename TYPE::kind kind; + }; + + template + < + typename VALTYPE, + template class TYPE + > + bool genType::is_vector() + { + return true; + } +/* + template + class base + { + public: + ////////////////////////////////////// + // Traits + + typedef sizeType size_type; + typedef valTypeT value_type; + + typedef base class_type; + + typedef base bool_type; + typedef base col_type; + typedef base row_type; + typedef base transpose_type; + + static size_type col_size(); + static size_type row_size(); + static size_type value_size(); + static bool is_scalar(); + static bool is_vector(); + static bool is_matrix(); + + private: + // Data + col_type value[colT]; + + public: + ////////////////////////////////////// + // Constructors + base(); + base(class_type const & m); + + explicit base(T const & x); + explicit base(value_type const * const x); + explicit base(col_type const * const x); + + ////////////////////////////////////// + // Conversions + template + explicit base(base const & m); + + ////////////////////////////////////// + // Accesses + col_type& operator[](size_type i); + col_type const & operator[](size_type i) const; + + ////////////////////////////////////// + // Unary updatable operators + class_type& operator= (class_type const & x); + class_type& operator+= (T const & x); + class_type& operator+= (class_type const & x); + class_type& operator-= (T const & x); + class_type& operator-= (class_type const & x); + class_type& operator*= (T const & x); + class_type& operator*= (class_type const & x); + class_type& operator/= (T const & x); + class_type& operator/= (class_type const & x); + class_type& operator++ (); + class_type& operator-- (); + }; +*/ + + //template + //struct traits + //{ + // static const bool is_signed = false; + // static const bool is_float = false; + // static const bool is_vector = false; + // static const bool is_matrix = false; + // static const bool is_genType = false; + // static const bool is_genIType = false; + // static const bool is_genUType = false; + //}; + + //template <> + //struct traits + //{ + // static const bool is_float = true; + // static const bool is_genType = true; + //}; + + //template <> + //struct traits + //{ + // static const bool is_float = true; + // static const bool is_genType = true; + //}; + + //template <> + //struct traits + //{ + // static const bool is_float = true; + // static const bool is_genType = true; + //}; + + //template + //struct desc + //{ + // typedef genType type; + // typedef genType * pointer; + // typedef genType const* const_pointer; + // typedef genType const *const const_pointer_const; + // typedef genType *const pointer_const; + // typedef genType & reference; + // typedef genType const& const_reference; + // typedef genType const& param_type; + + // typedef typename genType::value_type value_type; + // typedef typename genType::size_type size_type; + // static const typename size_type value_size; + //}; + + //template + //const typename desc::size_type desc::value_size = genType::value_size(); + +}//namespace detail +}//namespace glm + +//#include "type_gentype.inl" -- cgit v1.2.3