Back to Mame

0.9.8: type_gentype.hpp Source File

3rdparty/glm/doc/api/a00111_source.html

latest5.7 KB
Original Source

| | 0.9.8 |

type_gentype.hpp

Go to the documentation of this file.

1

4 #pragma once

5

6 namespace glm

7 {

8enum profile

9 {

10 nice,

11 fast,

12 simd

13 };

14

15typedef std::size_t sizeType;

16

17 namespace detail

18 {

19template

20 <

21typename VALTYPE,

22template <typename> class TYPE

23 >

24struct genType

25 {

26public:

27enum ctor{null};

28

29typedef VALTYPE value_type;

30typedef VALTYPE & value_reference;

31typedef VALTYPE * value_pointer;

32typedef VALTYPE const * value_const_pointer;

33typedef TYPE<bool> bool_type;

34

35typedef sizeType size_type;

36static bool is_vector();

37static bool is_matrix();

38

39typedef TYPE<VALTYPE> type;

40typedef TYPE<VALTYPE> * pointer;

41typedef TYPE<VALTYPE> const * const_pointer;

42typedef TYPE<VALTYPE> const * const const_pointer_const;

43typedef TYPE<VALTYPE> * const pointer_const;

44typedef TYPE<VALTYPE> & reference;

45typedef TYPE<VALTYPE> const & const_reference;

46typedef TYPE<VALTYPE> const & param_type;

47

49// Address (Implementation details)

50

51 value_const_pointer value_address() const{return value_pointer(this);}

52 value_pointer value_address(){return value_pointer(this);}

53

54//protected:

55// enum kind

56// {

57// GEN_TYPE,

58// VEC_TYPE,

59// MAT_TYPE

60// };

61

62// typedef typename TYPE::kind kind;

63 };

64

65template

66 <

67typename VALTYPE,

68template <typename> class TYPE

69 >

70bool genType<VALTYPE, TYPE>::is_vector()

71 {

72return true;

73 }

74 /*

75 template <typename valTypeT, unsigned int colT, unsigned int rowT, profile proT = nice>

76 class base

77 {

78 public:

80 // Traits

81

82 typedef sizeType size_type;

83 typedef valTypeT value_type;

84

85 typedef base<value_type, colT, rowT> class_type;

86

87 typedef base<bool, colT, rowT> bool_type;

88 typedef base<value_type, rowT, 1> col_type;

89 typedef base<value_type, colT, 1> row_type;

90 typedef base<value_type, rowT, colT> transpose_type;

91

92 static size_type col_size();

93 static size_type row_size();

94 static size_type value_size();

95 static bool is_scalar();

96 static bool is_vector();

97 static bool is_matrix();

98

99 private:

100 // Data

101 col_type value[colT];

102

103 public:

105 // Constructors

106 base();

107 base(class_type const & m);

108

109 explicit base(T const & x);

110 explicit base(value_type const * const x);

111 explicit base(col_type const * const x);

112

114 // Conversions

115 template <typename vU, uint cU, uint rU, profile pU>

116 explicit base(base<vU, cU, rU, pU> const & m);

117

119 // Accesses

120 col_type& operator[](size_type i);

121 col_type const & operator[](size_type i) const;

122

124 // Unary updatable operators

125 class_type& operator= (class_type const & x);

126 class_type& operator+= (T const & x);

127 class_type& operator+= (class_type const & x);

128 class_type& operator-= (T const & x);

129 class_type& operator-= (class_type const & x);

130 class_type& operator*= (T const & x);

131 class_type& operator*= (class_type const & x);

132 class_type& operator/= (T const & x);

133 class_type& operator/= (class_type const & x);

134 class_type& operator++ ();

135 class_type& operator-- ();

136 };

137 */

138

139//template <typename T>

140//struct traits

141//{

142// static const bool is_signed = false;

143// static const bool is_float = false;

144// static const bool is_vector = false;

145// static const bool is_matrix = false;

146// static const bool is_genType = false;

147// static const bool is_genIType = false;

148// static const bool is_genUType = false;

149//};

150

151//template <>

152//struct traits<half>

153//{

154// static const bool is_float = true;

155// static const bool is_genType = true;

156//};

157

158//template <>

159//struct traits<float>

160//{

161// static const bool is_float = true;

162// static const bool is_genType = true;

163//};

164

165//template <>

166//struct traits<double>

167//{

168// static const bool is_float = true;

169// static const bool is_genType = true;

170//};

171

172//template <typename genType>

173//struct desc

174//{

175// typedef genType type;

176// typedef genType * pointer;

177// typedef genType const* const_pointer;

178// typedef genType const *const const_pointer_const;

179// typedef genType *const pointer_const;

180// typedef genType & reference;

181// typedef genType const& const_reference;

182// typedef genType const& param_type;

183

184// typedef typename genType::value_type value_type;

185// typedef typename genType::size_type size_type;

186// static const typename size_type value_size;

187//};

188

189//template <typename genType>

190//const typename desc<genType>::size_type desc<genType>::value_size = genType::value_size();

191

192 }//namespace detail

193 }//namespace glm

194

195 //#include "type_gentype.inl"

glm

Definition: _noise.hpp:11


Generated by 1.8.10