type_mat2x4.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_vec4.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 tmat2x4
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 tmat2x4(
72  ctor);
73  GLM_FUNC_DECL explicit tmat2x4(
74  T const & s);
76  T const & x0, T const & y0, T const & z0, T const & w0,
77  T const & x1, T const & y1, T const & z1, T const & w1);
79  col_type const & v0,
80  col_type const & v1);
81 
83  // Conversions
84  template <
85  typename X1, typename Y1, typename Z1, typename W1,
86  typename X2, typename Y2, typename Z2, typename W2>
88  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
89  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2);
90 
91  template <typename U, typename V>
93  tvec4<U, P> const & v1,
94  tvec4<V, P> const & v2);
95 
97  // Matrix conversions
98  template <typename U, precision Q>
99  GLM_FUNC_DECL explicit tmat2x4(tmat2x4<U, Q> const & m);
100 
101  GLM_FUNC_DECL explicit tmat2x4(tmat2x2<T, P> const & x);
102  GLM_FUNC_DECL explicit tmat2x4(tmat3x3<T, P> const & x);
103  GLM_FUNC_DECL explicit tmat2x4(tmat4x4<T, P> const & x);
104  GLM_FUNC_DECL explicit tmat2x4(tmat2x3<T, P> const & x);
105  GLM_FUNC_DECL explicit tmat2x4(tmat3x2<T, P> const & x);
106  GLM_FUNC_DECL explicit tmat2x4(tmat3x4<T, P> const & x);
107  GLM_FUNC_DECL explicit tmat2x4(tmat4x2<T, P> const & x);
108  GLM_FUNC_DECL explicit tmat2x4(tmat4x3<T, P> const & x);
109 
110  // Accesses
111  GLM_FUNC_DECL col_type & operator[](length_t i);
112  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
113 
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  template <typename U>
129 
131  // Increment and decrement operators
132 
137  };
138 
139  // Binary operators
140 
141  template <typename T, precision P>
143  tmat2x4<T, P> const & m,
144  T const & s);
145 
146  template <typename T, precision P>
148  tmat2x4<T, P> const & m1,
149  tmat2x4<T, P> const & m2);
150 
151  template <typename T, precision P>
153  tmat2x4<T, P> const & m,
154  T const & s);
155 
156  template <typename T, precision P>
158  tmat2x4<T, P> const & m1,
159  tmat2x4<T, P> const & m2);
160 
161  template <typename T, precision P>
163  tmat2x4<T, P> const & m,
164  T const & s);
165 
166  template <typename T, precision P>
168  T const & s,
169  tmat2x4<T, P> const & m);
170 
171  template <typename T, precision P>
173  tmat2x4<T, P> const & m,
174  typename tmat2x4<T, P>::row_type const & v);
175 
176  template <typename T, precision P>
178  typename tmat2x4<T, P>::col_type const & v,
179  tmat2x4<T, P> const & m);
180 
181  template <typename T, precision P>
183  tmat2x4<T, P> const & m1,
184  tmat4x2<T, P> const & m2);
185 
186  template <typename T, precision P>
188  tmat2x4<T, P> const & m1,
189  tmat2x2<T, P> const & m2);
190 
191  template <typename T, precision P>
193  tmat2x4<T, P> const & m1,
194  tmat3x2<T, P> const & m2);
195 
196  template <typename T, precision P>
198  tmat2x4<T, P> const & m,
199  T const & s);
200 
201  template <typename T, precision P>
203  T const & s,
204  tmat2x4<T, P> const & m);
205 
206  // Unary constant operators
207  template <typename T, precision P>
209  tmat2x4<T, P> const & m);
210 
211 }//namespace detail
212 }//namespace glm
213 
214 #ifndef GLM_EXTERNAL_TEMPLATE
215 #include "type_mat2x4.inl"
216 #endif
tmat2x4< T, P > type
Definition: type_mat2x4.hpp:55
tvec2< T, P > row_type
Definition: type_mat2x4.hpp:54
int length_t
Definition: setup.hpp:755
GLM_FUNC_DECL tmat2x4< T, P > & operator-=(U s)
tvec4< T, P > col_type
Definition: type_mat2x4.hpp:53
GLM_FUNC_DECL tmat2x2< T, P > operator*(tmat2x2< T, P > const &m, T const &s)
GLM_FUNC_DECL tmat2x4< T, P > & operator*=(U s)
GLM_FUNC_DECL tmat2x4()
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)
std::size_t size_type
Definition: type_mat2x4.hpp:52
GLM_FUNC_DECL col_type & operator[](length_t i)
GLM_FUNC_DECL tmat2x2< T, P > operator-(tmat2x2< T, P > const &m, T const &s)
GLM_FUNC_DECL tmat2x4< T, P > & operator--()
GLM_FUNC_DECL tmat2x4< T, P > & operator++()
GLM_FUNC_DECL tmat2x4< T, P > & operator+=(U s)
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const
tmat4x2< T, P > transpose_type
Definition: type_mat2x4.hpp:56
GLM_FUNC_DECL tmat2x4< T, P > & operator=(tmat2x4< T, P > const &m)
#define GLM_CONSTEXPR
Definition: setup.hpp:801
GLM_FUNC_DECL tmat2x4< T, P > & operator/=(U s)
#define GLM_FUNC_DECL
Definition: setup.hpp:728


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