type_mat4x4.hpp
Go to the documentation of this file.
1 
29 #pragma once
30 
31 #include "../fwd.hpp"
32 #include "type_vec4.hpp"
33 #include "type_mat.hpp"
34 #include <limits>
35 #include <cstddef>
36 
37 namespace glm{
38 namespace detail
39 {
40  template <typename T, precision P>
41  struct tmat4x4
42  {
43  enum ctor{_null};
44  typedef T value_type;
45  typedef std::size_t size_type;
50 
52 
53  template <typename U, precision Q>
54  friend tvec4<U, Q> operator/(tmat4x4<U, Q> const & m, tvec4<U, Q> const & v);
55  template <typename U, precision Q>
56  friend tvec4<U, Q> operator/(tvec4<U, Q> const & v, tmat4x4<U, Q> const & m);
57 
58  private:
60  col_type value[4];
62 
63  public:
64  // Constructors
67  template <precision Q>
69 
70  GLM_FUNC_DECL explicit tmat4x4(
71  ctor Null);
72  GLM_FUNC_DECL explicit tmat4x4(
73  T const & x);
75  T const & x0, T const & y0, T const & z0, T const & w0,
76  T const & x1, T const & y1, T const & z1, T const & w1,
77  T const & x2, T const & y2, T const & z2, T const & w2,
78  T const & x3, T const & y3, T const & z3, T const & w3);
80  col_type const & v0,
81  col_type const & v1,
82  col_type const & v2,
83  col_type const & v3);
84 
86  // Conversions
87 
88  template <
89  typename X1, typename Y1, typename Z1, typename W1,
90  typename X2, typename Y2, typename Z2, typename W2,
91  typename X3, typename Y3, typename Z3, typename W3,
92  typename X4, typename Y4, typename Z4, typename W4>
94  X1 const & x1, Y1 const & y1, Z1 const & z1, W1 const & w1,
95  X2 const & x2, Y2 const & y2, Z2 const & z2, W2 const & w2,
96  X3 const & x3, Y3 const & y3, Z3 const & z3, W3 const & w3,
97  X4 const & x4, Y4 const & y4, Z4 const & z4, W4 const & w4);
98 
99  template <typename V1, typename V2, typename V3, typename V4>
101  tvec4<V1, P> const & v1,
102  tvec4<V2, P> const & v2,
103  tvec4<V3, P> const & v3,
104  tvec4<V4, P> const & v4);
105 
106  // Matrix conversions
107  template <typename U, precision Q>
108  GLM_FUNC_DECL explicit tmat4x4(tmat4x4<U, Q> const & m);
109 
110  GLM_FUNC_DECL explicit tmat4x4(tmat2x2<T, P> const & x);
111  GLM_FUNC_DECL explicit tmat4x4(tmat3x3<T, P> const & x);
112  GLM_FUNC_DECL explicit tmat4x4(tmat2x3<T, P> const & x);
113  GLM_FUNC_DECL explicit tmat4x4(tmat3x2<T, P> const & x);
114  GLM_FUNC_DECL explicit tmat4x4(tmat2x4<T, P> const & x);
115  GLM_FUNC_DECL explicit tmat4x4(tmat4x2<T, P> const & x);
116  GLM_FUNC_DECL explicit tmat4x4(tmat3x4<T, P> const & x);
117  GLM_FUNC_DECL explicit tmat4x4(tmat4x3<T, P> const & x);
118 
119  // Accesses
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  tmat4x4<T, P> const & m,
156  T const & s);
157 
158  template <typename T, precision P>
160  T const & s,
161  tmat4x4<T, P> const & m);
162 
163  template <typename T, precision P>
165  tmat4x4<T, P> const & m1,
166  tmat4x4<T, P> const & m2);
167 
168  template <typename T, precision P>
170  tmat4x4<T, P> const & m,
171  T const & s);
172 
173  template <typename T, precision P>
175  T const & s,
176  tmat4x4<T, P> const & m);
177 
178  template <typename T, precision P>
180  tmat4x4<T, P> const & m1,
181  tmat4x4<T, P> const & m2);
182 
183  template <typename T, precision P>
185  tmat4x4<T, P> const & m,
186  T const & s);
187 
188  template <typename T, precision P>
190  T const & s,
191  tmat4x4<T, P> const & m);
192 
193  template <typename T, precision P>
195  tmat4x4<T, P> const & m,
196  typename tmat4x4<T, P>::row_type const & v);
197 
198  template <typename T, precision P>
200  typename tmat4x4<T, P>::col_type const & v,
201  tmat4x4<T, P> const & m);
202 
203  template <typename T, precision P>
205  tmat4x4<T, P> const & m1,
206  tmat2x4<T, P> const & m2);
207 
208  template <typename T, precision P>
210  tmat4x4<T, P> const & m1,
211  tmat3x4<T, P> const & m2);
212 
213  template <typename T, precision P>
215  tmat4x4<T, P> const & m1,
216  tmat4x4<T, P> const & m2);
217 
218  template <typename T, precision P>
220  tmat4x4<T, P> const & m,
221  T const & s);
222 
223  template <typename T, precision P>
225  T const & s,
226  tmat4x4<T, P> const & m);
227 
228  template <typename T, precision P>
230  tmat4x4<T, P> const & m,
231  typename tmat4x4<T, P>::row_type const & v);
232 
233  template <typename T, precision P>
235  typename tmat4x4<T, P>::col_type & v,
236  tmat4x4<T, P> const & m);
237 
238  template <typename T, precision P>
240  tmat4x4<T, P> const & m1,
241  tmat4x4<T, P> const & m2);
242 
243  // Unary constant operators
244  template <typename T, precision P>
246  tmat4x4<T, P> const & m);
247 
248 }//namespace detail
249 }//namespace glm
250 
251 #ifndef GLM_EXTERNAL_TEMPLATE
252 #include "type_mat4x4.inl"
253 #endif//GLM_EXTERNAL_TEMPLATE
glm::detail::tmat3x3
Definition: type_mat.hpp:43
glm::detail::tmat4x3
Definition: type_mat.hpp:46
glm::detail::tmat2x3
Definition: type_mat.hpp:40
glm::detail::tmat3x2
Definition: type_mat.hpp:42
glm::detail::tmat4x2
Definition: type_mat.hpp:45
glm::detail::tmat2x2
Definition: type_mat.hpp:39
Z2
Cyclic< 2 > Z2
glm::detail::tmat4x4::type
tmat4x4< T, P > type
Definition: type_mat4x4.hpp:48
glm::detail::tmat4x4::operator+=
GLM_FUNC_DECL tmat4x4< T, P > & operator+=(U s)
detail
glm::detail::tmat4x4::size_type
std::size_t size_type
Definition: type_mat4x4.hpp:45
glm::detail::tmat3x4
Definition: type_mat.hpp:44
glm::detail::tmat4x4
Definition: type_mat.hpp:47
glm::detail::tmat2x4
Definition: type_mat.hpp:41
Z3
Cyclic< 3 > Z3
glm::detail::tmat4x4::col_type
tvec4< T, P > col_type
Definition: type_mat4x4.hpp:46
glm::detail::operator+
GLM_FUNC_DECL tmat2x2< T, P > operator+(tmat2x2< T, P > const &m, T const &s)
glm::detail::operator/
GLM_FUNC_DECL tmat2x2< T, P > operator/(tmat2x2< T, P > const &m, T const &s)
glm::detail::tmat4x4::length
GLM_FUNC_DECL GLM_CONSTEXPR length_t length() const
glm::detail::operator*
GLM_FUNC_DECL tmat2x2< T, P > operator*(tmat2x2< T, P > const &m, T const &s)
glm::detail::tvec4
Definition: type_mat.hpp:38
glm
Definition: _literals.hpp:31
glm::detail::tmat4x4::operator/=
GLM_FUNC_DECL tmat4x4< T, P > & operator/=(U s)
glm::detail::tmat4x4::operator/
friend tvec4< U, Q > operator/(tmat4x4< U, Q > const &m, tvec4< U, Q > const &v)
glm::detail::tmat4x4::operator-=
GLM_FUNC_DECL tmat4x4< T, P > & operator-=(U s)
Eigen::Triplet< double >
glm::detail::operator-
GLM_FUNC_DECL tmat2x2< T, P > operator-(tmat2x2< T, P > const &m, T const &s)
type_vec4.hpp
glm::detail::tmat4x4::operator*=
GLM_FUNC_DECL tmat4x4< T, P > & operator*=(U s)
glm::detail::tmat4x4::operator[]
GLM_FUNC_DECL col_type & operator[](length_t i)
glm::detail::tmat4x4::_null
@ _null
Definition: type_mat4x4.hpp:43
glm::detail::tmat4x4::operator++
GLM_FUNC_DECL tmat4x4< T, P > & operator++()
glm::length_t
int length_t
Definition: setup.hpp:755
glm::detail::tmat4x4::operator--
GLM_FUNC_DECL tmat4x4< T, P > & operator--()
glm::detail::tmat4x4::row_type
tvec4< T, P > row_type
Definition: type_mat4x4.hpp:47
glm::detail::tmat4x4::transpose_type
tmat4x4< T, P > transpose_type
Definition: type_mat4x4.hpp:49
GLM_FUNC_DECL
#define GLM_FUNC_DECL
Definition: setup.hpp:728
glm::detail::tmat4x4::operator=
GLM_FUNC_DECL tmat4x4< T, P > & operator=(tmat4x4< T, P > const &m)
glm::detail::tmat4x4::tmat4x4
GLM_FUNC_DECL tmat4x4()
value
value
glm::detail::tmat4x4::value_type
T value_type
Definition: type_mat4x4.hpp:44
glm::detail::tmat4x4::ctor
ctor
Definition: type_mat4x4.hpp:43
type_mat.hpp
GLM_CONSTEXPR
#define GLM_CONSTEXPR
Definition: setup.hpp:801


rtabmap
Author(s): Mathieu Labbe
autogenerated on Thu Jul 25 2024 02:50:22