type_mat3x3.hpp
Go to the documentation of this file.
1 
29 #pragma once
30 
31 #include "../fwd.hpp"
32 #include "type_vec3.hpp"
33 #include "type_mat.hpp"
34 #if GLM_HAS_INITIALIZER_LISTS
35 # include <initializer_list>
36 #endif
37 #if GLM_HAS_RVALUE_REFERENCES
38 # include <algorithm>
39 #endif
40 #include <limits>
41 #include <cstddef>
42 
43 namespace glm{
44 namespace detail
45 {
46  template <typename T, precision P>
47  struct tmat3x3
48  {
49  enum ctor{_null};
50  typedef T value_type;
51  typedef std::size_t size_type;
56 
58 
59  template <typename U, precision Q>
60  friend tvec3<U, Q> operator/(tmat3x3<U, Q> const & m, tvec3<U, Q> const & v);
61  template <typename U, precision Q>
62  friend tvec3<U, Q> operator/(tvec3<U, Q> const & v, tmat3x3<U, Q> const & m);
63 
64  private:
66  col_type value[3];
68 
69  public:
70  // Constructors
73  template <precision Q>
75 
76  GLM_FUNC_DECL explicit tmat3x3(
77  ctor Null);
78  GLM_FUNC_DECL explicit tmat3x3(
79  T const & s);
81  T const & x0, T const & y0, T const & z0,
82  T const & x1, T const & y1, T const & z1,
83  T const & x2, T const & y2, T const & z2);
85  col_type const & v0,
86  col_type const & v1,
87  col_type const & v2);
88 
90  // Conversions
91  template<
92  typename X1, typename Y1, typename Z1,
93  typename X2, typename Y2, typename Z2,
94  typename X3, typename Y3, typename Z3>
96  X1 const & x1, Y1 const & y1, Z1 const & z1,
97  X2 const & x2, Y2 const & y2, Z2 const & z2,
98  X3 const & x3, Y3 const & y3, Z3 const & z3);
99 
100  template <typename V1, typename V2, typename V3>
102  tvec3<V1, P> const & v1,
103  tvec3<V2, P> const & v2,
104  tvec3<V3, P> const & v3);
105 
106  // Matrix conversions
107  template <typename U, precision Q>
108  GLM_FUNC_DECL explicit tmat3x3(tmat3x3<U, Q> const & m);
109 
110  GLM_FUNC_DECL explicit tmat3x3(tmat2x2<T, P> const & x);
111  GLM_FUNC_DECL explicit tmat3x3(tmat4x4<T, P> const & x);
112  GLM_FUNC_DECL explicit tmat3x3(tmat2x3<T, P> const & x);
113  GLM_FUNC_DECL explicit tmat3x3(tmat3x2<T, P> const & x);
114  GLM_FUNC_DECL explicit tmat3x3(tmat2x4<T, P> const & x);
115  GLM_FUNC_DECL explicit tmat3x3(tmat4x2<T, P> const & x);
116  GLM_FUNC_DECL explicit tmat3x3(tmat3x4<T, P> const & x);
117  GLM_FUNC_DECL explicit tmat3x3(tmat4x3<T, P> const & x);
118 
119  // Accesses
120  GLM_FUNC_DECL col_type & operator[](length_t i);
121  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
122 
124  template <typename U>
126  template <typename U>
128  template <typename U>
130  template <typename U>
132  template <typename U>
134  template <typename U>
136  template <typename U>
138  template <typename U>
140  template <typename U>
142 
144  // Increment and decrement operators
145 
150  };
151 
152  // Binary operators
153  template <typename T, precision P>
155  tmat3x3<T, P> const & m,
156  T const & s);
157 
158  template <typename T, precision P>
160  T const & s,
161  tmat3x3<T, P> const & m);
162 
163  template <typename T, precision P>
165  tmat3x3<T, P> const & m1,
166  tmat3x3<T, P> const & m2);
167 
168  template <typename T, precision P>
170  tmat3x3<T, P> const & m,
171  T const & s);
172 
173  template <typename T, precision P>
175  T const & s,
176  tmat3x3<T, P> const & m);
177 
178  template <typename T, precision P>
180  tmat3x3<T, P> const & m1,
181  tmat3x3<T, P> const & m2);
182 
183  template <typename T, precision P>
185  tmat3x3<T, P> const & m,
186  T const & s);
187 
188  template <typename T, precision P>
190  T const & s,
191  tmat3x3<T, P> const & m);
192 
193  template <typename T, precision P>
195  tmat3x3<T, P> const & m,
196  typename tmat3x3<T, P>::row_type const & v);
197 
198  template <typename T, precision P>
200  typename tmat3x3<T, P>::col_type const & v,
201  tmat3x3<T, P> const & m);
202 
203  template <typename T, precision P>
205  tmat3x3<T, P> const & m1,
206  tmat3x3<T, P> const & m2);
207 
208  template <typename T, precision P>
210  tmat3x3<T, P> const & m1,
211  tmat2x3<T, P> const & m2);
212 
213  template <typename T, precision P>
215  tmat3x3<T, P> const & m1,
216  tmat4x3<T, P> const & m2);
217 
218  template <typename T, precision P>
220  tmat3x3<T, P> const & m,
221  T const & s);
222 
223  template <typename T, precision P>
225  T const & s,
226  tmat3x3<T, P> const & m);
227 
228  template <typename T, precision P>
230  tmat3x3<T, P> const & m,
231  typename tmat3x3<T, P>::row_type const & v);
232 
233  template <typename T, precision P>
235  typename tmat3x3<T, P>::col_type const & v,
236  tmat3x3<T, P> const & m);
237 
238  template <typename T, precision P>
240  tmat3x3<T, P> const & m1,
241  tmat3x3<T, P> const & m2);
242 
243  // Unary constant operators
244  template <typename T, precision P>
246  tmat3x3<T, P> const & m);
247 
248 }//namespace detail
249 }//namespace glm
250 
251 #ifndef GLM_EXTERNAL_TEMPLATE
252 #include "type_mat3x3.inl"
253 #endif
int length_t
Definition: setup.hpp:755
GLM_FUNC_DECL tmat3x3< T, P > & operator*=(U s)
GLM_FUNC_DECL tmat3x3< T, P > & operator-=(U s)
tmat3x3< T, P > type
Definition: type_mat3x3.hpp:54
GLM_FUNC_DECL tmat2x2< T, P > operator*(tmat2x2< T, P > const &m, T const &s)
tvec3< T, P > col_type
Definition: type_mat3x3.hpp:52
tvec3< T, P > row_type
Definition: type_mat3x3.hpp:53
GLM_FUNC_DECL tmat2x2< T, P > operator+(tmat2x2< T, P > const &m, T const &s)
GLM_FUNC_DECL tmat2x2< T, P > operator-(tmat2x2< T, P > const &m, T const &s)
GLM_FUNC_DECL tmat3x3< T, P > & operator++()
GLM_FUNC_DECL tmat3x3< T, P > & operator--()
GLM_FUNC_DECL tmat3x3< T, P > & operator/=(U s)
std::size_t size_type
Definition: type_mat3x3.hpp:51
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const
GLM_FUNC_DECL tmat3x3()
friend tvec3< U, Q > operator/(tmat3x3< U, Q > const &m, tvec3< U, Q > const &v)
tmat3x3< T, P > transpose_type
Definition: type_mat3x3.hpp:55
#define GLM_CONSTEXPR
Definition: setup.hpp:801
GLM_FUNC_DECL col_type & operator[](length_t i)
GLM_FUNC_DECL tmat3x3< T, P > & operator+=(U s)
#define GLM_FUNC_DECL
Definition: setup.hpp:728
GLM_FUNC_DECL tmat3x3< T, P > & operator=(tmat3x3< T, P > const &m)


rtabmap
Author(s): Mathieu Labbe
autogenerated on Wed Jun 5 2019 22:43:40