type_mat3x4.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_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 tmat3x4
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[3];
63 
64  public:
65  // Constructors
68  template <precision Q>
70 
71  GLM_FUNC_DECL explicit tmat3x4(
72  ctor Null);
73  GLM_FUNC_DECL explicit tmat3x4(
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,
78  T const & x2, T const & y2, T const & z2, T const & w2);
80  col_type const & v0,
81  col_type const & v1,
82  col_type const & v2);
83 
85  // Conversions
86  template<
87  typename X1, typename Y1, typename Z1, typename W1,
88  typename X2, typename Y2, typename Z2, typename W2,
89  typename X3, typename Y3, typename Z3, typename W3>
91  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
92  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
93  X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3);
94 
95  template <typename V1, typename V2, typename V3>
97  tvec4<V1, P> const & v1,
98  tvec4<V2, P> const & v2,
99  tvec4<V3, P> const & v3);
100 
101  // Matrix conversion
102  template <typename U, precision Q>
103  GLM_FUNC_DECL explicit tmat3x4(tmat3x4<U, Q> const & m);
104 
105  GLM_FUNC_DECL explicit tmat3x4(tmat2x2<T, P> const & x);
106  GLM_FUNC_DECL explicit tmat3x4(tmat3x3<T, P> const & x);
107  GLM_FUNC_DECL explicit tmat3x4(tmat4x4<T, P> const & x);
108  GLM_FUNC_DECL explicit tmat3x4(tmat2x3<T, P> const & x);
109  GLM_FUNC_DECL explicit tmat3x4(tmat3x2<T, P> const & x);
110  GLM_FUNC_DECL explicit tmat3x4(tmat2x4<T, P> const & x);
111  GLM_FUNC_DECL explicit tmat3x4(tmat4x2<T, P> const & x);
112  GLM_FUNC_DECL explicit tmat3x4(tmat4x3<T, P> const & x);
113 
114  // Accesses
115  GLM_FUNC_DECL col_type & operator[](length_t i);
116  GLM_FUNC_DECL col_type const & operator[](length_t i) const;
117 
119  template <typename U>
121  template <typename U>
123  template <typename U>
125  template <typename U>
127  template <typename U>
129  template <typename U>
131  template <typename U>
133 
135  // Increment and decrement operators
136 
141  };
142 
143  // Binary operators
144  template <typename T, precision P>
146  tmat3x4<T, P> const & m,
147  T const & s);
148 
149  template <typename T, precision P>
151  tmat3x4<T, P> const & m1,
152  tmat3x4<T, P> const & m2);
153 
154  template <typename T, precision P>
156  tmat3x4<T, P> const & m,
157  T const & s);
158 
159  template <typename T, precision P>
161  tmat3x4<T, P> const & m1,
162  tmat3x4<T, P> const & m2);
163 
164  template <typename T, precision P>
166  tmat3x4<T, P> const & m,
167  T const & s);
168 
169  template <typename T, precision P>
171  T const & s,
172  tmat3x4<T, P> const & m);
173 
174  template <typename T, precision P>
176  tmat3x4<T, P> const & m,
177  typename tmat3x4<T, P>::row_type const & v);
178 
179  template <typename T, precision P>
181  typename tmat3x4<T, P>::col_type const & v,
182  tmat3x4<T, P> const & m);
183 
184  template <typename T, precision P>
186  tmat3x4<T, P> const & m1,
187  tmat4x3<T, P> const & m2);
188 
189  template <typename T, precision P>
191  tmat3x4<T, P> const & m1,
192  tmat2x3<T, P> const & m2);
193 
194  template <typename T, precision P>
196  tmat3x4<T, P> const & m1,
197  tmat3x3<T, P> const & m2);
198 
199  template <typename T, precision P>
201  tmat3x4<T, P> const & m,
202  T const & s);
203 
204  template <typename T, precision P>
206  T const & s,
207  tmat3x4<T, P> const & m);
208 
209  // Unary constant operators
210  template <typename T, precision P>
212  tmat3x4<T, P> const & m);
213 
214 }//namespace detail
215 }//namespace glm
216 
217 #ifndef GLM_EXTERNAL_TEMPLATE
218 #include "type_mat3x4.inl"
219 #endif
GLM_FUNC_DECL tmat3x4< T, P > & operator++()
tvec3< T, P > row_type
Definition: type_mat3x4.hpp:54
tvec4< T, P > col_type
Definition: type_mat3x4.hpp:53
int length_t
Definition: setup.hpp:755
GLM_FUNC_DECL col_type & operator[](length_t i)
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const
GLM_FUNC_DECL tmat2x2< T, P > operator*(tmat2x2< T, P > const &m, T const &s)
GLM_FUNC_DECL tmat3x4()
tmat4x3< T, P > transpose_type
Definition: type_mat3x4.hpp:56
std::size_t size_type
Definition: type_mat3x4.hpp:52
tmat3x4< T, P > type
Definition: type_mat3x4.hpp:55
GLM_FUNC_DECL tmat3x4< T, P > & operator--()
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 tmat3x4< T, P > & operator-=(U s)
GLM_FUNC_DECL tmat2x2< T, P > operator-(tmat2x2< T, P > const &m, T const &s)
GLM_FUNC_DECL tmat3x4< T, P > & operator*=(U s)
GLM_FUNC_DECL tmat3x4< T, P > & operator/=(U s)
GLM_FUNC_DECL tmat3x4< T, P > & operator=(tmat3x4< T, P > const &m)
#define GLM_CONSTEXPR
Definition: setup.hpp:801
#define GLM_FUNC_DECL
Definition: setup.hpp:728
GLM_FUNC_DECL tmat3x4< T, P > & operator+=(U s)


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