type_mat2x3.hpp
Go to the documentation of this file.
1 
29 #pragma once
30 
31 #include "../fwd.hpp"
32 #include "type_vec2.hpp"
33 #include "type_vec3.hpp"
34 #include "type_mat.hpp"
35 #if GLM_HAS_INITIALIZER_LISTS
36 # include <initializer_list>
37 #endif
38 #if GLM_HAS_RVALUE_REFERENCES
39 # include <algorithm>
40 #endif
41 #include <limits>
42 #include <cstddef>
43 
44 namespace glm{
45 namespace detail
46 {
47  template <typename T, precision P>
48  struct tmat2x3
49  {
50  enum ctor{_null};
51  typedef T value_type;
52  typedef std::size_t size_type;
57 
59 
60  private:
61  // Data
62  col_type value[2];
63 
64  public:
65  // Constructors
68  template <precision Q>
70 
71  GLM_FUNC_DECL explicit tmat2x3(
72  ctor);
73  GLM_FUNC_DECL explicit tmat2x3(
74  T const & s);
76  T const & x0, T const & y0, T const & z0,
77  T const & x1, T const & y1, T const & z1);
79  col_type const & v0,
80  col_type const & v1);
81 
83  // Conversions
84  template <typename X1, typename Y1, typename Z1, typename X2, typename Y2, typename Z2>
86  X1 const & x1, Y1 const & y1, Z1 const & z1,
87  X2 const & x2, Y2 const & y2, Z2 const & z2);
88 
89  template <typename U, typename V>
91  tvec3<U, P> const & v1,
92  tvec3<V, P> const & v2);
93 
95  // Matrix conversion
96  template <typename U, precision Q>
97  GLM_FUNC_DECL explicit tmat2x3(tmat2x3<U, Q> const & m);
98 
99  GLM_FUNC_DECL explicit tmat2x3(tmat2x2<T, P> const & x);
100  GLM_FUNC_DECL explicit tmat2x3(tmat3x3<T, P> const & x);
101  GLM_FUNC_DECL explicit tmat2x3(tmat4x4<T, P> const & x);
102  GLM_FUNC_DECL explicit tmat2x3(tmat2x4<T, P> const & x);
103  GLM_FUNC_DECL explicit tmat2x3(tmat3x2<T, P> const & x);
104  GLM_FUNC_DECL explicit tmat2x3(tmat3x4<T, P> const & x);
105  GLM_FUNC_DECL explicit tmat2x3(tmat4x2<T, P> const & x);
106  GLM_FUNC_DECL explicit tmat2x3(tmat4x3<T, P> const & x);
107 
108  // Accesses
109  GLM_FUNC_DECL col_type & operator[](length_t i);
110  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
111 
113  template <typename U>
115  template <typename U>
117  template <typename U>
119  template <typename U>
121  template <typename U>
123  template <typename U>
125  template <typename U>
127 
129  // Increment and decrement operators
130 
135  };
136 
137  // Binary operators
138 
139  template <typename T, precision P>
141  tmat2x3<T, P> const & m,
142  T const & s);
143 
144  template <typename T, precision P>
146  tmat2x3<T, P> const & m1,
147  tmat2x3<T, P> const & m2);
148 
149  template <typename T, precision P>
151  tmat2x3<T, P> const & m,
152  T const & s);
153 
154  template <typename T, precision P>
156  tmat2x3<T, P> const & m1,
157  tmat2x3<T, P> const & m2);
158 
159  template <typename T, precision P>
161  tmat2x3<T, P> const & m,
162  T const & s);
163 
164  template <typename T, precision P>
166  T const & s,
167  tmat2x3<T, P> const & m);
168 
169  template <typename T, precision P>
171  tmat2x3<T, P> const & m,
172  typename tmat2x3<T, P>::row_type const & v);
173 
174  template <typename T, precision P>
176  typename tmat2x3<T, P>::col_type const & v,
177  tmat2x3<T, P> const & m);
178 
179  template <typename T, precision P>
181  tmat2x3<T, P> const & m1,
182  tmat2x2<T, P> const & m2);
183 
184  template <typename T, precision P>
186  tmat2x3<T, P> const & m1,
187  tmat3x2<T, P> const & m2);
188 
189  template <typename T, precision P>
191  tmat2x3<T, P> const & m1,
192  tmat4x2<T, P> const & m2);
193 
194  template <typename T, precision P>
196  tmat2x3<T, P> const & m,
197  T const & s);
198 
199  template <typename T, precision P>
201  T const & s,
202  tmat2x3<T, P> const & m);
203 
204  // Unary constant operators
205  template <typename T, precision P>
207  tmat2x3<T, P> const & m);
208 
209 }//namespace detail
210 }//namespace glm
211 
212 #ifndef GLM_EXTERNAL_TEMPLATE
213 #include "type_mat2x3.inl"
214 #endif
GLM_FUNC_DECL tmat2x3< T, P > & operator++()
std::size_t size_type
Definition: type_mat2x3.hpp:52
GLM_FUNC_DECL tmat2x3< T, P > & operator-=(U s)
int length_t
Definition: setup.hpp:755
GLM_FUNC_DECL tmat2x3()
GLM_FUNC_DECL tmat2x3< T, P > & operator*=(U s)
tvec3< T, P > col_type
Definition: type_mat2x3.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 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 tmat2x3< T, P > & operator/=(U s)
tmat2x3< T, P > type
Definition: type_mat2x3.hpp:55
GLM_FUNC_DECL tmat2x3< T, P > & operator=(tmat2x3< T, P > const &m)
tmat3x2< T, P > transpose_type
Definition: type_mat2x3.hpp:56
GLM_FUNC_DECL col_type & operator[](length_t i)
tvec2< T, P > row_type
Definition: type_mat2x3.hpp:54
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const
#define GLM_CONSTEXPR
Definition: setup.hpp:801
#define GLM_FUNC_DECL
Definition: setup.hpp:728
GLM_FUNC_DECL tmat2x3< T, P > & operator+=(U s)
GLM_FUNC_DECL tmat2x3< T, P > & operator--()


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