PSMoveService
type_mat4x3.hpp
Go to the documentation of this file.
1 
29 #ifndef glm_core_type_mat4x3
30 #define glm_core_type_mat4x3
31 
32 #include "type_mat.hpp"
33 
34 namespace glm{
35 namespace detail
36 {
37  template <typename T> struct tvec1;
38  template <typename T> struct tvec2;
39  template <typename T> struct tvec3;
40  template <typename T> struct tvec4;
41  template <typename T> struct tmat2x2;
42  template <typename T> struct tmat2x3;
43  template <typename T> struct tmat2x4;
44  template <typename T> struct tmat3x2;
45  template <typename T> struct tmat3x3;
46  template <typename T> struct tmat3x4;
47  template <typename T> struct tmat4x2;
48  template <typename T> struct tmat4x3;
49  template <typename T> struct tmat4x4;
50 
51  // \brief Template for 4 columns and 3 rows matrix of floating-point numbers.
52  // \ingroup core_template
53  template <typename T>
54  struct tmat4x3
55  {
56  enum ctor{null};
57  typedef T value_type;
58  typedef std::size_t size_type;
59  typedef tvec3<T> col_type;
60  typedef tvec4<T> row_type;
61  GLM_FUNC_DECL size_type length() const;
62  static GLM_FUNC_DECL size_type col_size();
63  static GLM_FUNC_DECL size_type row_size();
64 
65  typedef tmat4x3<T> type;
66  typedef tmat3x4<T> transpose_type;
67 
68  private:
69  // Data
70  col_type value[4];
71 
72  public:
73  // Constructors
74  GLM_FUNC_DECL tmat4x3();
75  GLM_FUNC_DECL tmat4x3(tmat4x3 const & m);
76 
77  GLM_FUNC_DECL explicit tmat4x3(
78  ctor Null);
79  GLM_FUNC_DECL explicit tmat4x3(
80  value_type const & x);
81  GLM_FUNC_DECL explicit tmat4x3(
82  value_type const & x0, value_type const & y0, value_type const & z0,
83  value_type const & x1, value_type const & y1, value_type const & z1,
84  value_type const & x2, value_type const & y2, value_type const & z2,
85  value_type const & x3, value_type const & y3, value_type const & z3);
86  GLM_FUNC_DECL explicit tmat4x3(
87  col_type const & v0,
88  col_type const & v1,
89  col_type const & v2,
90  col_type const & v3);
91 
93  // Conversions
94  template <typename U>
95  GLM_FUNC_DECL explicit tmat4x3(
96  U const & x);
97 
98  template <
99  typename X1, typename Y1, typename Z1,
100  typename X2, typename Y2, typename Z2,
101  typename X3, typename Y3, typename Z3,
102  typename X4, typename Y4, typename Z4>
103  GLM_FUNC_DECL explicit tmat4x3(
104  X1 const & x1, Y1 const & y1, Z1 const & z1,
105  X2 const & x2, Y2 const & y2, Z2 const & z2,
106  X3 const & x3, Y3 const & y3, Z3 const & z3,
107  X4 const & x4, Y4 const & y4, Z4 const & z4);
108 
109  template <typename V1, typename V2, typename V3, typename V4>
110  GLM_FUNC_DECL explicit tmat4x3(
111  tvec3<V1> const & v1,
112  tvec3<V2> const & v2,
113  tvec3<V3> const & v3,
114  tvec3<V4> const & v4);
115 
116  // Matrix conversions
117  template <typename U>
118  GLM_FUNC_DECL explicit tmat4x3(tmat4x3<U> const & m);
119 
120  GLM_FUNC_DECL explicit tmat4x3(tmat2x2<T> const & x);
121  GLM_FUNC_DECL explicit tmat4x3(tmat3x3<T> const & x);
122  GLM_FUNC_DECL explicit tmat4x3(tmat4x4<T> const & x);
123  GLM_FUNC_DECL explicit tmat4x3(tmat2x3<T> const & x);
124  GLM_FUNC_DECL explicit tmat4x3(tmat3x2<T> const & x);
125  GLM_FUNC_DECL explicit tmat4x3(tmat2x4<T> const & x);
126  GLM_FUNC_DECL explicit tmat4x3(tmat4x2<T> const & x);
127  GLM_FUNC_DECL explicit tmat4x3(tmat3x4<T> const & x);
128 
129  // Accesses
130  col_type & operator[](size_type i);
131  col_type const & operator[](size_type i) const;
132 
133  // Unary updatable operators
134  GLM_FUNC_DECL tmat4x3<T> & operator= (tmat4x3<T> const & m);
135  template <typename U>
136  GLM_FUNC_DECL tmat4x3<T> & operator= (tmat4x3<U> const & m);
137  template <typename U>
138  GLM_FUNC_DECL tmat4x3<T> & operator+= (U const & s);
139  template <typename U>
140  GLM_FUNC_DECL tmat4x3<T> & operator+= (tmat4x3<U> const & m);
141  template <typename U>
142  GLM_FUNC_DECL tmat4x3<T> & operator-= (U const & s);
143  template <typename U>
144  GLM_FUNC_DECL tmat4x3<T> & operator-= (tmat4x3<U> const & m);
145  template <typename U>
146  GLM_FUNC_DECL tmat4x3<T> & operator*= (U const & s);
147  template <typename U>
148  GLM_FUNC_DECL tmat4x3<T> & operator*= (tmat4x3<U> const & m);
149  template <typename U>
150  GLM_FUNC_DECL tmat4x3<T> & operator/= (U const & s);
151 
152  GLM_FUNC_DECL tmat4x3<T> & operator++ ();
153  GLM_FUNC_DECL tmat4x3<T> & operator-- ();
154  };
155 
156  // Binary operators
157  template <typename T>
158  tmat4x3<T> operator+ (
159  tmat4x3<T> const & m,
160  typename tmat4x3<T>::value_type const & s);
161 
162  template <typename T>
163  tmat4x3<T> operator+ (
164  tmat4x3<T> const & m1,
165  tmat4x3<T> const & m2);
166 
167  template <typename T>
168  tmat4x3<T> operator- (
169  tmat4x3<T> const & m,
170  typename tmat4x3<T>::value_type const & s);
171 
172  template <typename T>
173  tmat4x3<T> operator- (
174  tmat4x3<T> const & m1,
175  tmat4x3<T> const & m2);
176 
177  template <typename T>
178  tmat4x3<T> operator* (
179  tmat4x3<T> const & m,
180  typename tmat4x3<T>::value_type const & s);
181 
182  template <typename T>
183  tmat4x3<T> operator* (
184  typename tmat4x3<T>::value_type const & s,
185  tmat4x3<T> const & m);
186 
187  template <typename T>
188  typename tmat4x3<T>::col_type operator* (
189  tmat4x3<T> const & m,
190  typename tmat4x3<T>::row_type const & v);
191 
192  template <typename T>
193  typename tmat4x3<T>::row_type operator* (
194  typename tmat4x3<T>::col_type const & v,
195  tmat4x3<T> const & m);
196 
197  template <typename T>
198  tmat2x3<T> operator* (
199  tmat4x3<T> const & m1,
200  tmat2x4<T> const & m2);
201 
202  template <typename T>
203  tmat3x3<T> operator* (
204  tmat4x3<T> const & m1,
205  tmat3x4<T> const & m2);
206 
207  template <typename T>
208  tmat4x3<T> operator* (
209  tmat4x3<T> const & m1,
210  tmat4x4<T> const & m2);
211 
212  template <typename T>
213  tmat4x3<T> operator/ (
214  tmat4x3<T> const & m,
215  typename tmat4x3<T>::value_type const & s);
216 
217  template <typename T>
218  tmat4x3<T> operator/ (
219  typename tmat4x3<T>::value_type const & s,
220  tmat4x3<T> const & m);
221 
222  // Unary constant operators
223  template <typename T>
224  tmat4x3<T> const operator- (
225  tmat4x3<T> const & m);
226 
227  template <typename T>
228  tmat4x3<T> const operator-- (
229  tmat4x3<T> const & m,
230  int);
231 
232  template <typename T>
233  tmat4x3<T> const operator++ (
234  tmat4x3<T> const & m,
235  int);
236 
237 }//namespace detail
238 
241 
248 
255 
262 
264 }//namespace glm
265 
266 #ifndef GLM_EXTERNAL_TEMPLATE
267 #include "type_mat4x3.inl"
268 #endif //GLM_EXTERNAL_TEMPLATE
269 
270 #endif//glm_core_type_mat4x3
detail::tmat4x3< highp_float > highp_mat4x3
4 columns of 3 components matrix of high precision floating-point numbers.
Definition: type_mat4x3.hpp:261
Definition: type_mat2x2.hpp:48
Definition: _detail.hpp:38
detail::tmat4x3< lowp_float > lowp_mat4x3
4 columns of 3 components matrix of low precision floating-point numbers.
Definition: type_mat4x3.hpp:247
OpenGL Mathematics (glm.g-truc.net)
detail::tmat4x3< mediump_float > mediump_mat4x3
4 columns of 3 components matrix of medium precision floating-point numbers.
Definition: type_mat4x3.hpp:254
OpenGL Mathematics (glm.g-truc.net)