]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' |
2 | 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'> | |
3 | <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'> | |
4 | <head> | |
5 | <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> | |
6 | <title>Synopsis</title> | |
7 | <link href='reno.css' type='text/css' rel='stylesheet'/> | |
8 | </head> | |
9 | <body> | |
10 | <div class="body-0"> | |
11 | <div class="body-1"> | |
12 | <div class="body-2"> | |
13 | <div> | |
14 | <h1>QVM: Quaternions, Vectors, Matrices</h1> | |
15 | </div> | |
16 | <!-- Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. --> | |
17 | <!-- Distributed under the Boost Software License, Version 1.0. (See accompanying --> | |
18 | <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> | |
19 | <div class="RenoIncludeDIV"><div class="RenoAutoDIV"><h3>Synopsis</h3> | |
20 | </div> | |
21 | <p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_qvm_all_hpp.html">boost/qvm/all.hpp</a></span>></p> | |
22 | <pre>namespace boost | |
23 | { | |
24 | namespace <span class="RenoLink"><a href="qvm.html">qvm</a></span> | |
25 | { | |
26 | <span class="RenoIncludeSPAN"> //*** Type traits *** | |
27 | ||
28 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T> | |
29 | struct <span class="RenoLink"><a href="is_quat.html">is_quat</a></span> | |
30 | { | |
31 | static bool const value=/*unspecified*/; | |
32 | };</span> | |
33 | ||
34 | <span class="RenoIncludeSPAN">template <class Q> | |
35 | struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span> | |
36 | { | |
37 | /*main template members unspecified*/ | |
38 | }; | |
39 | ||
40 | /* | |
41 | User-defined (possibly partial) specializations: | |
42 | ||
43 | template <> | |
44 | struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><Q> | |
45 | { | |
46 | <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span>;</span> | |
47 | ||
48 | <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="quat_traits_Q_read_element.html">read_element</a></span>( Quaternion const & q );</span> | |
49 | <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> & <span class="RenoLink"><a href="quat_traits_Q_write_element.html">write_element</a></span>( Quaternion & q );</span> | |
50 | }; | |
51 | */</span></span> | |
52 | ||
53 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T> | |
54 | struct <span class="RenoLink"><a href="is_vec.html">is_vec</a></span> | |
55 | { | |
56 | static bool const value=/*unspecified*/; | |
57 | };</span> | |
58 | ||
59 | <span class="RenoIncludeSPAN">template <class V> | |
60 | struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span> | |
61 | { | |
62 | /*main template members unspecified*/ | |
63 | }; | |
64 | ||
65 | /* | |
66 | User-defined (possibly partial) specializations: | |
67 | ||
68 | template <> | |
69 | struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><V> | |
70 | { | |
71 | <span class="RenoIncludeSPAN"> static int const <span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> = /*user-defined*/;</span> | |
72 | <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span>;</span> | |
73 | ||
74 | <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="vec_traits_V_read_element.html">read_element</a></span>( Vector const & v );</span> | |
75 | <span class="RenoIncludeSPAN"> template <int I> static inline <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> & <span class="RenoLink"><a href="vec_traits_V_write_element.html">write_element</a></span>( Vector & v );</span> | |
76 | ||
77 | <span class="RenoIncludeSPAN"> static inline <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="vec_traits_V_read_element_idx.html">read_element_idx</a></span>( int i, Vector const & v );</span> | |
78 | <span class="RenoIncludeSPAN"> static inline <span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> & <span class="RenoLink"><a href="vec_traits_V_write_element_idx.html">write_element_idx</a></span>( int i, Vector & v );</span> | |
79 | }; | |
80 | */</span></span> | |
81 | ||
82 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T> | |
83 | struct <span class="RenoLink"><a href="is_mat.html">is_mat</a></span> | |
84 | { | |
85 | static bool const value=/*unspecified*/; | |
86 | };</span> | |
87 | ||
88 | <span class="RenoIncludeSPAN">template <class M> | |
89 | struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span> | |
90 | { | |
91 | /*main template members unspecified*/ | |
92 | }; | |
93 | ||
94 | /* | |
95 | User-defined (possibly partial) specializations: | |
96 | ||
97 | template <> | |
98 | struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><M> | |
99 | { | |
100 | <span class="RenoIncludeSPAN"> static int const <span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> = /*user-defined*/;</span> | |
101 | <span class="RenoIncludeSPAN"> static int const <span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> = /*user-defined*/;</span> | |
102 | <span class="RenoIncludeSPAN"> typedef /*user-defined*/ <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span>;</span> | |
103 | ||
104 | <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="mat_traits_M_read_element.html">read_element</a></span>( Matrix const & m );</span> | |
105 | <span class="RenoIncludeSPAN"> template <int R,int C> static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> & <span class="RenoLink"><a href="mat_traits_M_write_element.html">write_element</a></span>( Matrix & m );</span> | |
106 | ||
107 | <span class="RenoIncludeSPAN"> static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> <span class="RenoLink"><a href="mat_traits_M_read_element_idx.html">read_element_idx</a></span>( int r, int c, Matrix const & m );</span> | |
108 | <span class="RenoIncludeSPAN"> static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> & <span class="RenoLink"><a href="mat_traits_M_write_element_idx.html">write_element_idx</a></span>( int r, int c, Matrix & m );</span> | |
109 | }; | |
110 | */</span></span></span> | |
111 | ||
112 | ||
113 | ||
114 | <span class="RenoIncludeSPAN"> //*** Quaternion, vector and matrix types *** | |
115 | ||
116 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T> | |
117 | struct <span class="RenoLink"><a href="quat.html">quat</a></span> | |
118 | { | |
119 | T a[4]; | |
120 | ||
121 | template <class R> | |
122 | operator R() const | |
123 | { | |
124 | R r; | |
125 | <span class="RenoLink"><a href="assign_quat_quat_.html">assign</a></span>(r,*this); | |
126 | return r; | |
127 | } | |
128 | }; | |
129 | ||
130 | template <class Quaternion> | |
131 | struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>; | |
132 | ||
133 | template <class T> | |
134 | struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>< <span class="RenoLink"><a href="quat.html">quat</a></span><T> > | |
135 | { | |
136 | typedef T scalar_type; | |
137 | ||
138 | template <int I> static scalar_type <span class="RenoLink"><a href="quat_traits_Q_read_element.html">read_element</a></span>( <span class="RenoLink"><a href="quat.html">quat</a></span><T> const & x ) { return x.a[I]; } | |
139 | template <int I> static scalar_type & <span class="RenoLink"><a href="quat_traits_Q_write_element.html">write_element</a></span>( <span class="RenoLink"><a href="quat.html">quat</a></span><T> & x ) { return x.a[I]; } | |
140 | };</span></span> | |
141 | ||
142 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int Dim> | |
143 | struct <span class="RenoLink"><a href="vec.html">vec</a></span> | |
144 | { | |
145 | T a[Dim]; | |
146 | ||
147 | template <class R> | |
148 | operator R() const | |
149 | { | |
150 | R r; | |
151 | <span class="RenoLink"><a href="assign_vec_vec_.html">assign</a></span>(r,*this); | |
152 | return r; | |
153 | } | |
154 | }; | |
155 | ||
156 | template <class Vector> | |
157 | struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>; | |
158 | ||
159 | template <class T,int Dim> | |
160 | struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>< <span class="RenoLink"><a href="vec.html">vec</a></span><T,Dim> > | |
161 | { | |
162 | typedef T scalar_type; | |
163 | static int const dim=Dim; | |
164 | ||
165 | template <int I> static scalar_type <span class="RenoLink"><a href="vec_traits_V_read_element.html">read_element</a></span>( <span class="RenoLink"><a href="vec.html">vec</a></span><T,Dim> const & x ) { return x.a[I]; } | |
166 | template <int I> static scalar_type & <span class="RenoLink"><a href="vec_traits_V_write_element.html">write_element</a></span>( <span class="RenoLink"><a href="vec.html">vec</a></span><T,Dim> & x ) { return x.a[I]; } | |
167 | ||
168 | static scalar_type <span class="RenoLink"><a href="vec_traits_V_read_element_idx.html">read_element_idx</a></span>( int i, <span class="RenoLink"><a href="vec.html">vec</a></span><T,Dim> const & x ) { return x.a[i]; } | |
169 | static scalar_type & <span class="RenoLink"><a href="vec_traits_V_write_element_idx.html">write_element_idx</a></span>( int i, <span class="RenoLink"><a href="vec.html">vec</a></span><T,Dim> & x ) { return x.a[i]; } | |
170 | };</span></span> | |
171 | ||
172 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class T,int Rows,int Cols> | |
173 | struct <span class="RenoLink"><a href="mat.html">mat</a></span> | |
174 | { | |
175 | T a[Rows][Cols]; | |
176 | ||
177 | template <class R> | |
178 | operator R() const | |
179 | { | |
180 | R r; | |
181 | <span class="RenoLink"><a href="assign_mat_mat_.html">assign</a></span>(r,*this); | |
182 | return r; | |
183 | } | |
184 | }; | |
185 | ||
186 | template <class Matrix> | |
187 | struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>; | |
188 | ||
189 | template <class T,int Rows,int Cols> | |
190 | struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>< <span class="RenoLink"><a href="mat.html">mat</a></span><T,Rows,Cols> > | |
191 | { | |
192 | typedef T scalar_type; | |
193 | static int const rows=Rows; | |
194 | static int const cols=Cols; | |
195 | ||
196 | template <int Row,int Col> static scalar_type <span class="RenoLink"><a href="mat_traits_M_read_element.html">read_element</a></span>( <span class="RenoLink"><a href="mat.html">mat</a></span><T,Rows,Cols> const & x ) { return x.a[Row][Col]; } | |
197 | template <int Row,int Col> static scalar_type & <span class="RenoLink"><a href="mat_traits_M_write_element.html">write_element</a></span>( <span class="RenoLink"><a href="mat.html">mat</a></span><T,Rows,Cols> & x ) { return x.a[Row][Col]; } | |
198 | ||
199 | static scalar_type <span class="RenoLink"><a href="mat_traits_M_read_element_idx.html">read_element_idx</a></span>( int row, int col, <span class="RenoLink"><a href="mat.html">mat</a></span><T,Rows,Cols> const & x ) { return x.a[row][col]; } | |
200 | static scalar_type & <span class="RenoLink"><a href="mat_traits_M_write_element_idx.html">write_element_idx</a></span>( int row, int col, <span class="RenoLink"><a href="mat.html">mat</a></span><T,Rows,Cols> & x ) { return x.a[row][col]; } | |
201 | };</span></span></span> | |
202 | ||
203 | ||
204 | ||
205 | <span class="RenoIncludeSPAN"> //*** Accessing quaternion elements *** | |
206 | ||
207 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
208 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><Q>::value | |
209 | ||
210 | template <class Q> -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">S</a></span>( Q & q ); | |
211 | template <class Q> -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">V</a></span>( Q & q ); | |
212 | template <class Q> -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">X</a></span>( Q & q ); | |
213 | template <class Q> -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">Y</a></span>( Q & q ); | |
214 | template <class Q> -unspecified-return-type- <span class="RenoLink"><a href="accessing_quaternion_elements.html">Z</a></span>( Q & q );</span></span> | |
215 | ||
216 | ||
217 | ||
218 | <span class="RenoIncludeSPAN"> //*** Accessing vector elements *** | |
219 | ||
220 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
221 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><V>::value | |
222 | ||
223 | template <int I,class V> -unspecified-return-type- <span class="RenoLink"><a href="accessing_vector_elements.html">A</a></span>( V & v ); | |
224 | template <class V> -unspecified-return-type- A0( V & v ); | |
225 | template <class V> -unspecified-return-type- A1( V & v ); | |
226 | ... | |
227 | template <class V> -unspecified-return-type- A9( V & v ); | |
228 | ||
229 | template <class V> -unspecified-return-type- X( V & v ); | |
230 | template <class V> -unspecified-return-type- Y( V & v ); | |
231 | template <class V> -unspecified-return-type- Z( V & v ); | |
232 | template <class V> -unspecified-return-type- W( V & v );</span></span></span> | |
233 | ||
234 | ||
235 | ||
236 | <span class="RenoIncludeSPAN"> //*** Accessing vector elements by swizzling *** | |
237 | ||
238 | <span class="RenoIncludeSPAN">//2D <span class="RenoLink"><a href="view_proxy.html">view proxies</a></span>, only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
239 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><V>::value | |
240 | template <class V> -unspecified-2D-vector-type- XX( V & v ); | |
241 | template <class V> -unspecified-2D-vector-type- XY( V & v ); | |
242 | template <class V> -unspecified-2D-vector-type- XZ( V & v ); | |
243 | template <class V> -unspecified-2D-vector-type- XW( V & v ); | |
244 | template <class V> -unspecified-2D-vector-type- X0( V & v ); | |
245 | template <class V> -unspecified-2D-vector-type- X1( V & v ); | |
246 | template <class V> -unspecified-2D-vector-type- YX( V & v ); | |
247 | template <class V> -unspecified-2D-vector-type- YY( V & v ); | |
248 | template <class V> -unspecified-2D-vector-type- YZ( V & v ); | |
249 | template <class V> -unspecified-2D-vector-type- YW( V & v ); | |
250 | template <class V> -unspecified-2D-vector-type- Y0( V & v ); | |
251 | template <class V> -unspecified-2D-vector-type- Y1( V & v ); | |
252 | template <class V> -unspecified-2D-vector-type- ZX( V & v ); | |
253 | template <class V> -unspecified-2D-vector-type- ZY( V & v ); | |
254 | template <class V> -unspecified-2D-vector-type- ZZ( V & v ); | |
255 | template <class V> -unspecified-2D-vector-type- ZW( V & v ); | |
256 | template <class V> -unspecified-2D-vector-type- Z0( V & v ); | |
257 | template <class V> -unspecified-2D-vector-type- Z1( V & v ); | |
258 | template <class V> -unspecified-2D-vector-type- WX( V & v ); | |
259 | template <class V> -unspecified-2D-vector-type- WY( V & v ); | |
260 | template <class V> -unspecified-2D-vector-type- WZ( V & v ); | |
261 | template <class V> -unspecified-2D-vector-type- WW( V & v ); | |
262 | template <class V> -unspecified-2D-vector-type- W0( V & v ); | |
263 | template <class V> -unspecified-2D-vector-type- W1( V & v ); | |
264 | ... | |
265 | -unspecified-2D-vector-type- _00(); | |
266 | -unspecified-2D-vector-type- _01(); | |
267 | -unspecified-2D-vector-type- _10(); | |
268 | -unspecified-2D-vector-type- _11(); | |
269 | ||
270 | //3D <span class="RenoLink"><a href="view_proxy.html">view proxies</a></span>, only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
271 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><V>::value | |
272 | template <class V> -unspecified-3D-vector-type- XXX( V & v ); | |
273 | ... | |
274 | template <class V> -unspecified-3D-vector-type- XXW( V & v ); | |
275 | template <class V> -unspecified-3D-vector-type- XX0( V & v ); | |
276 | template <class V> -unspecified-3D-vector-type- XX1( V & v ); | |
277 | template <class V> -unspecified-3D-vector-type- XYX( V & v ); | |
278 | ... | |
279 | template <class V> -unspecified-3D-vector-type- XY1( V & v ); | |
280 | ... | |
281 | template <class V> -unspecified-3D-vector-type- WW1( V & v ); | |
282 | ... | |
283 | -unspecified-3D-vector-type- _000(); | |
284 | -unspecified-3D-vector-type- _001(); | |
285 | -unspecified-3D-vector-type- _010(); | |
286 | ... | |
287 | -unspecified-3D-vector-type- _111(); | |
288 | ||
289 | //4D <span class="RenoLink"><a href="view_proxy.html">view proxies</a></span>, only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
290 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><V>::value | |
291 | template <class V> -unspecified-4D-vector-type- XXXX( V & v ); | |
292 | ... | |
293 | template <class V> -unspecified-4D-vector-type- XXXW( V & v ); | |
294 | template <class V> -unspecified-4D-vector-type- XXX0( V & v ); | |
295 | template <class V> -unspecified-4D-vector-type- XXX1( V & v ); | |
296 | template <class V> -unspecified-4D-vector-type- XXYX( V & v ); | |
297 | ... | |
298 | template <class V> -unspecified-4D-vector-type- XXY1( V & v ); | |
299 | ... | |
300 | template <class V> -unspecified-4D-vector-type- WWW1( V & v ); | |
301 | ... | |
302 | -unspecified-4D-vector-type- _0000(); | |
303 | -unspecified-4D-vector-type- _0001(); | |
304 | -unspecified-4D-vector-type- _0010(); | |
305 | ... | |
306 | -unspecified-4D-vector-type- _1111();</span> </span> | |
307 | ||
308 | ||
309 | ||
310 | <span class="RenoIncludeSPAN"> //*** Indexing vector elements *** | |
311 | ||
312 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
313 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
314 | template <class A> | |
315 | typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> | |
316 | <span class="RenoLink"><a href="vec_index_read.html">vec_index_read</a></span>( A const & a, int i );</span> | |
317 | ||
318 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
319 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
320 | template <class A> | |
321 | typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> & | |
322 | <span class="RenoLink"><a href="vec_index_write.html">vec_index_write</a></span>( A & a, int i );</span></span></span> | |
323 | ||
324 | ||
325 | ||
326 | <span class="RenoIncludeSPAN"> //*** Accessing matrix elements *** | |
327 | ||
328 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
329 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><Q>::value | |
330 | ||
331 | template <int R,int C,class M> -unspecified-return-type- <span class="RenoLink"><a href="accessing_matrix_elements.html">A</a></span>( M & m ); | |
332 | ||
333 | template <class M> -unspecified-return-type- A00( M & m ); | |
334 | template <class M> -unspecified-return-type- A01( M & m ); | |
335 | ... | |
336 | template <class M> -unspecified-return-type- A09( M & m ); | |
337 | template <class M> -unspecified-return-type- A10( M & m ); | |
338 | ... | |
339 | template <class M> -unspecified-return-type- A99( M & m );</span> </span> | |
340 | ||
341 | ||
342 | ||
343 | <span class="RenoIncludeSPAN"> //*** Indexing matrix elements *** | |
344 | ||
345 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
346 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value | |
347 | template <class A> | |
348 | typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> | |
349 | <span class="RenoLink"><a href="mat_index_read.html">mat_index_read</a></span>( A const & a, int r, int c );</span> | |
350 | ||
351 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
352 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value | |
353 | template <class A> | |
354 | typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> & | |
355 | <span class="RenoLink"><a href="mat_index_write.html">mat_index_write</a></span>( A & a, int r, int c );</span></span></span> | |
356 | ||
357 | ||
358 | ||
359 | <span class="RenoIncludeSPAN"> //*** Quaternion operations *** | |
360 | ||
361 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
362 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
363 | template <class A,class B> | |
364 | A & <span class="RenoLink"><a href="assign_quat_quat_.html">assign</a></span>( A & a, B const & b );</span> | |
365 | ||
366 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
367 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><R>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
368 | template <class R,class A> | |
369 | R <span class="RenoLink"><a href="convert_to_quat_.html">convert_to</a></span>( A const & a ); | |
370 | ||
371 | //Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
372 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><R>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && | |
373 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==3 && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==3 | |
374 | template <class R,class A> | |
375 | R <span class="RenoLink"><a href="convert_to_quat_.html">convert_to</a></span>( A const & m );</span> | |
376 | ||
377 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
378 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
379 | template <class A,class B> | |
380 | A & <span class="RenoLink"><a href="operator_sub_eq_quat_quat_.html">operator-=</a></span>( A & a, B const & b );</span> | |
381 | ||
382 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
383 | template <class A> | |
384 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
385 | <span class="RenoLink"><a href="operator_minus_quat_.html">operator-</a></span>( A const & a );</span> | |
386 | ||
387 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
388 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value && | |
389 | template <class A,class B> | |
390 | typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span><A,B>::type | |
391 | <span class="RenoLink"><a href="operator_minus_quat_quat_.html">operator-</a></span>( A const & a, B const & b );</span> | |
392 | ||
393 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
394 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
395 | template <class A,class B> | |
396 | A & <span class="RenoLink"><a href="operator_add_quat_quat_.html">operator+=</a></span>( A & a, B const & b );</span> | |
397 | ||
398 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
399 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value && | |
400 | template <class A,class B> | |
401 | typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span><A,B>::type | |
402 | <span class="RenoLink"><a href="operator_plus_quat_quat_.html">operator+</a></span>( A const & a, B const & b );</span> | |
403 | ||
404 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
405 | template <class A,class B> | |
406 | A & <span class="RenoLink"><a href="operator_div_eq_quat_scalar_.html">operator/=</a></span>( A & a, B b );</span> | |
407 | ||
408 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
409 | template <class A,class B> | |
410 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
411 | <span class="RenoLink"><a href="operator_over_quat_scalar_.html">operator/</a></span>( A const & a, B b );</span> | |
412 | ||
413 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
414 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
415 | template <class A,class B> | |
416 | A & <span class="RenoLink"><a href="operator_mul_eq_quat_quat_.html">operator*=</a></span>( A & a, B const & b );</span> | |
417 | ||
418 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
419 | template <class A,class B> | |
420 | A & <span class="RenoLink"><a href="operator_mul_eq_quat_scalar_.html">operator*=</a></span>( A & a, B b );</span> | |
421 | ||
422 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
423 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
424 | template <class A,class B> | |
425 | typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span><A,B>::type | |
426 | <span class="RenoLink"><a href="operator_times_quat_quat_.html">operator*</a></span>( A const & a, B const & b );</span> | |
427 | ||
428 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
429 | template <class A,class B> | |
430 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
431 | <span class="RenoLink"><a href="operator_times_quat_scalar_.html">operator*</a></span>( A const & a, B b );</span> | |
432 | ||
433 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
434 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
435 | template <class A,class B> | |
436 | bool <span class="RenoLink"><a href="operator_eq_quat_quat_.html">operator==</a></span>( A const & a, B const & b );</span> | |
437 | ||
438 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
439 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
440 | template <class A,class B> | |
441 | bool <span class="RenoLink"><a href="operator_not_eq_quat_quat_.html">operator!=</a></span>( A const & a, B const & b );</span> | |
442 | ||
443 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
444 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
445 | template <class A,class B,class Cmp> | |
446 | bool <span class="RenoLink"><a href="cmp_quat_quat_.html">cmp</a></span>( A const & a, B const & b, Cmp pred );</span> | |
447 | ||
448 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
449 | template <class A> | |
450 | typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><A>::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> | |
451 | <span class="RenoLink"><a href="mag_sqr_quat_.html">mag_sqr</a></span>( A const & a );</span> | |
452 | ||
453 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
454 | template <class A> | |
455 | typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><A>::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> | |
456 | <span class="RenoLink"><a href="mag_quat_.html">mag</a></span>( A const & a );</span> | |
457 | ||
458 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
459 | template <class A> | |
460 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
461 | <span class="RenoLink"><a href="normalized_quat_.html">normalized</a></span>( A const & a );</span> | |
462 | ||
463 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
464 | template <class A> | |
465 | void <span class="RenoLink"><a href="normalize_quat_.html">normalize</a></span>( A & a );</span> | |
466 | ||
467 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
468 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value | |
469 | template <class A,class B> | |
470 | typename <span class="RenoLink"><a href="deduce_scalar.html">deduce_scalar</a></span><A,B>::type | |
471 | <span class="RenoLink"><a href="dot_quat_quat_.html">dot</a></span>( A const & a, B const & b );</span> | |
472 | ||
473 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
474 | template <class A> | |
475 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
476 | <span class="RenoLink"><a href="conjugate.html">conjugate</a></span>( A const & a );</span> | |
477 | ||
478 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
479 | template <class A> | |
480 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
481 | <span class="RenoLink"><a href="inverse_quat_.html">inverse</a></span>( A const & a );</span> | |
482 | ||
483 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
484 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><B>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><C> | |
485 | template <class A,class B,class C> | |
486 | typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span><A,B> >::type | |
487 | <span class="RenoLink"><a href="slerp.html">slerp</a></span>( A const & a, B const & b, C c );</span> | |
488 | ||
489 | <span class="RenoIncludeSPAN">template <class T> | |
490 | -unspecified-return-type- <span class="RenoLink"><a href="zero_quat.html">zero_quat</a></span>();</span> | |
491 | ||
492 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
493 | template <class A> | |
494 | void <span class="RenoLink"><a href="set_zero_quat_.html">set_zero</a></span>( A & a );</span> | |
495 | ||
496 | <span class="RenoIncludeSPAN">template <class S> | |
497 | -unspecified-return-type- <span class="RenoLink"><a href="identity_quat.html">identity_quat</a></span>();</span> | |
498 | ||
499 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
500 | template <class A> | |
501 | void <span class="RenoLink"><a href="set_identity_quat_.html">set_identity</a></span>( A & a );</span> | |
502 | ||
503 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
504 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
505 | template <class A> | |
506 | -unspecified-return-type- <span class="RenoLink"><a href="rot_quat.html">rot_quat</a></span>( A const & axis, typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> angle );</span> | |
507 | ||
508 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
509 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && | |
510 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
511 | template <class A> | |
512 | void <span class="RenoLink"><a href="set_rot_quat_vec_scalar_.html">set_rot</a></span>( A & a, B const & axis, typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> angle );</span> | |
513 | ||
514 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
515 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && | |
516 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
517 | template <class A,class B> | |
518 | void <span class="RenoLink"><a href="rotate_quat_vec_scalar_.html">rotate</a></span>( A & a, B const & axis, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><A>::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span> | |
519 | ||
520 | <span class="RenoIncludeSPAN">template <class Angle> | |
521 | -unspecified-return-type- <span class="RenoLink"><a href="rotx_quat_scalar_.html">rotx_quat</a></span>( Angle const & angle );</span> | |
522 | ||
523 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
524 | template <class A> | |
525 | void <span class="RenoLink"><a href="set_rotx_quat_scalar_.html">set_rotx</a></span>( A & a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><A>::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span> | |
526 | ||
527 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
528 | template <class A> | |
529 | void <span class="RenoLink"><a href="rotate_x_quat_scalar_.html">rotate_x</a></span>( A & a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><A>::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span> | |
530 | ||
531 | <span class="RenoIncludeSPAN">template <class Angle> | |
532 | -unspecified-return-type- <span class="RenoLink"><a href="roty_quat_scalar_.html">roty_quat</a></span>( Angle const & angle );</span> | |
533 | ||
534 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
535 | template <class A> | |
536 | void <span class="RenoLink"><a href="set_rotz_quat_scalar_.html">set_rotz</a></span>( A & a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><A>::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span> | |
537 | ||
538 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
539 | template <class A> | |
540 | void <span class="RenoLink"><a href="rotate_y_quat_scalar_.html">rotate_y</a></span>( A & a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><A>::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span> | |
541 | ||
542 | <span class="RenoIncludeSPAN">template <class Angle> | |
543 | -unspecified-return-type- <span class="RenoLink"><a href="rotz_quat_scalar_.html">rotz_quat</a></span>( Angle const & angle );</span> | |
544 | ||
545 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
546 | template <class A> | |
547 | void <span class="RenoLink"><a href="set_rotz_quat_scalar_.html">set_rotz</a></span>( A & a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><A>::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span> | |
548 | ||
549 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
550 | template <class A> | |
551 | void <span class="RenoLink"><a href="rotate_z_quat_scalar_.html">rotate_z</a></span>( A & a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span><A>::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span> | |
552 | ||
553 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
554 | template <class Scalar,class A> | |
555 | -unspecified-return_type- <span class="RenoLink"><a href="scalar_cast_quat_.html">scalar_cast</a></span>( A const & a );</span> | |
556 | ||
557 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value | |
558 | template <class A> | |
559 | -unspecified-return-type- <span class="RenoLink"><a href="qref.html">qref</a></span>( A & a );</span></span></span> | |
560 | ||
561 | ||
562 | ||
563 | <span class="RenoIncludeSPAN"> //*** Vector operations *** | |
564 | ||
565 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
566 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
567 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
568 | template <class A,class B> | |
569 | A & <span class="RenoLink"><a href="assign_vec_vec_.html">assign</a></span>( A & a, B const & b );</span> | |
570 | ||
571 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
572 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><R>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && | |
573 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><R>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
574 | template <class R,class A> | |
575 | R <span class="RenoLink"><a href="convert_to_vec_.html">convert_to</a></span>( A const & a );</span> | |
576 | ||
577 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
578 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
579 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
580 | template <class A,class B> | |
581 | A & <span class="RenoLink"><a href="operator_sub_eq_vec_vec_.html">operator-=</a></span>( A & a, B const & b );</span> | |
582 | ||
583 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
584 | template <class A> | |
585 | typename <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span><A>::type | |
586 | <span class="RenoLink"><a href="operator_minus_vec_.html">operator-</a></span>( A const & a );</span> | |
587 | ||
588 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
589 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
590 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
591 | template <class A,class B> | |
592 | typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span><A,B,<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>>::type | |
593 | <span class="RenoLink"><a href="operator_minus_vec_vec_.html">operator-</a></span>( A const & a, B const & b );</span> | |
594 | ||
595 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
596 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
597 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
598 | template <class A,class B> | |
599 | A & <span class="RenoLink"><a href="operator_add_vec_vec_.html">operator+=</a></span>( A & a, B const & b );</span> | |
600 | ||
601 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
602 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
603 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
604 | template <class A,class B> | |
605 | typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span><A,B,<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>>::type | |
606 | <span class="RenoLink"><a href="operator_plus_vec_vec_.html">operator+</a></span>( A const & a, B const & b );</span> | |
607 | ||
608 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><B>::value | |
609 | template <class A,class B> | |
610 | A & <span class="RenoLink"><a href="operator_div_eq_vec_scalar_.html">operator/=</a></span>( A & a, B b );</span> | |
611 | ||
612 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><B>::value | |
613 | template <class A,class B> | |
614 | typename <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span><A>::type | |
615 | <span class="RenoLink"><a href="operator_over_vec_scalar_.html">operator/</a></span>( A const & a, B b );</span> | |
616 | ||
617 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><B>::value | |
618 | template <class A,class B> | |
619 | A & <span class="RenoLink"><a href="operator_mul_eq_vec_scalar_.html">operator*=</a></span>( A & a, B b );</span> | |
620 | ||
621 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><B>::value | |
622 | template <class A> | |
623 | typename <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span><A>::type | |
624 | <span class="RenoLink"><a href="operator_times_vec_scalar_.html">operator*</a></span>( A const & a, B b );</span> | |
625 | ||
626 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
627 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
628 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
629 | template <class A,class B> | |
630 | bool <span class="RenoLink"><a href="operator_eq_vec_vec_.html">operator==</a></span>( A const & a, B const & b );</span> | |
631 | ||
632 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
633 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
634 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
635 | template <class A,class B> | |
636 | bool <span class="RenoLink"><a href="operator_not_eq_vec_vec_.html">operator!=</a></span>( A const & a, B const & b );</span> | |
637 | ||
638 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
639 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
640 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
641 | template <class A,class B,class Cmp> | |
642 | bool <span class="RenoLink"><a href="cmp_mat_mat_.html">cmp</a></span>( A const & a, B const & b, Cmp pred );</span> | |
643 | ||
644 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
645 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
646 | template <class A> | |
647 | typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> | |
648 | <span class="RenoLink"><a href="mag_sqr_vec_.html">mag_sqr</a></span>( A const & a );</span> | |
649 | ||
650 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
651 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
652 | template <class A> | |
653 | typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> | |
654 | <span class="RenoLink"><a href="mag_vec_.html">mag</a></span>( A const & a );</span> | |
655 | ||
656 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
657 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
658 | template <class A> | |
659 | typename <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span><A>::type | |
660 | <span class="RenoLink"><a href="normalized_vec_.html">normalized</a></span>( A const & a );</span> | |
661 | ||
662 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
663 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
664 | template <class A> | |
665 | void <span class="RenoLink"><a href="normalize_vec_.html">normalize</a></span>( A & a );</span> | |
666 | ||
667 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
668 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
669 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
670 | template <class A,class B> | |
671 | typename <span class="RenoLink"><a href="deduce_scalar.html">deduce_scalar</a></span><A,B>::type | |
672 | <span class="RenoLink"><a href="dot_vec_vec_.html">dot</a></span>( A const & a, B const & b );</span> | |
673 | ||
674 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
675 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
676 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 && <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
677 | template <class A,class B> | |
678 | typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span><A,B,3>::type | |
679 | <span class="RenoLink"><a href="cross.html">cross</a></span>( A const & a, B const & b );</span> | |
680 | ||
681 | <span class="RenoIncludeSPAN">template <class T,int S> | |
682 | -unspecified-return-type- <span class="RenoLink"><a href="zero_vec.html">zero_vec</a></span>();</span> | |
683 | ||
684 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
685 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
686 | template <class A> | |
687 | void <span class="RenoLink"><a href="set_zero_vec_.html">set_zero</a></span>( A & a );</span> | |
688 | ||
689 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
690 | template <class A> | |
691 | -unspecified-return-type- <span class="RenoLink"><a href="vref.html">vref</a></span>( A & a );</span> | |
692 | ||
693 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
694 | template <class Scalar,class A> | |
695 | -unspecified-return_type- <span class="RenoLink"><a href="scalar_cast_vec_.html">scalar_cast</a></span>( A const & a );</span></span></span> | |
696 | ||
697 | ||
698 | ||
699 | <span class="RenoIncludeSPAN"> //*** Matrix operations *** | |
700 | ||
701 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
702 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
703 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
704 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
705 | template <class A,class B> | |
706 | A & <span class="RenoLink"><a href="assign_mat_mat_.html">assign</a></span>( A & a, B const & b );</span> | |
707 | ||
708 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
709 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><R>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && | |
710 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><R>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
711 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><R>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
712 | template <class R,class A> | |
713 | R <span class="RenoLink"><a href="convert_to_mat_.html">convert_to</a></span>( A const & a );</span> | |
714 | ||
715 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
716 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
717 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
718 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
719 | template <class A,class B> | |
720 | A & <span class="RenoLink"><a href="operator_sub_eq_mat_mat_.html">operator-=</a></span>( A & a, B const & b );</span> | |
721 | ||
722 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value | |
723 | template <class A> | |
724 | typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span><A>::type | |
725 | <span class="RenoLink"><a href="operator_minus_mat_.html">operator-</a></span>( A const & a );</span> | |
726 | ||
727 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
728 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
729 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
730 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
731 | template <class A,class B> | |
732 | typename <span class="RenoLink"><a href="deduce_mat2.html">deduce_mat2</a></span><A,B,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>>::type | |
733 | <span class="RenoLink"><a href="operator_minus_mat_mat_.html">operator-</a></span>( A const & a, B const & b );</span> | |
734 | ||
735 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
736 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
737 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
738 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
739 | template <class A,class B> | |
740 | A & <span class="RenoLink"><a href="operator_add_mat_mat_.html">operator+=</a></span>( A & a, B const & b );</span> | |
741 | ||
742 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
743 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
744 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
745 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
746 | template <class A,class B> | |
747 | typename <span class="RenoLink"><a href="deduce_mat2.html">deduce_mat2</a></span><A,B,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>>::type | |
748 | <span class="RenoLink"><a href="operator_plus_mat_mat_.html">operator+</a></span>( A const & a, B const & b );</span> | |
749 | ||
750 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><B>::value | |
751 | template <class A,class B> | |
752 | A & <span class="RenoLink"><a href="operator_div_eq_mat_scalar_.html">operator/=</a></span>( A & a, B b );</span> | |
753 | ||
754 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><B>::value | |
755 | template <class A,class B> | |
756 | typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span><A>::type | |
757 | <span class="RenoLink"><a href="operator_over_mat_scalar_.html">operator/</a></span>( A const & a, B b );</span> | |
758 | ||
759 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
760 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
761 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> && | |
762 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
763 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
764 | template <class A,class B> | |
765 | A & <span class="RenoLink"><a href="operator_mul_eq_mat_mat_.html">operator*=</a></span>( A & a, B const & b );</span> | |
766 | ||
767 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><B>::value | |
768 | template <class A,class B> | |
769 | A & <span class="RenoLink"><a href="operator_mul_eq_mat_scalar_.html">operator*=</a></span>( A & a, B b );</span> | |
770 | ||
771 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
772 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
773 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> | |
774 | template <class A,class B> | |
775 | typename <span class="RenoLink"><a href="deduce_mat2.html">deduce_mat2</a></span><A,B,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>>::type | |
776 | <span class="RenoLink"><a href="operator_times_mat_mat_.html">operator*</a></span>( A const & a, B const & b );</span> | |
777 | ||
778 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><B>::value | |
779 | template <class A,class B> | |
780 | typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span><A>::type | |
781 | <span class="RenoLink"><a href="operator_times_mat_scalar_.html">operator*</a></span>( A const & a, B b );</span> | |
782 | ||
783 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
784 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
785 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
786 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
787 | template <class A,class B> | |
788 | bool <span class="RenoLink"><a href="operator_eq_mat_mat_.html">operator==</a></span>( A const & a, B const & b );</span> | |
789 | ||
790 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
791 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
792 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
793 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
794 | template <class A,class B> | |
795 | bool <span class="RenoLink"><a href="operator_not_eq_mat_mat_.html">operator!=</a></span>( A const & a, B const & b );</span> | |
796 | ||
797 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
798 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><B>::value && | |
799 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> && | |
800 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><B>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
801 | template <class A,class B,class Cmp> | |
802 | bool <span class="RenoLink"><a href="cmp_mat_mat_.html">cmp</a></span>( A const & a, B const & b, Cmp pred );</span> | |
803 | ||
804 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
805 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span><B>::value | |
806 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
807 | ||
808 | template <class A,class B> | |
809 | typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span><A>::type | |
810 | <span class="RenoLink"><a href="inverse_mat_.html">inverse</a></span>( A const & a, B det ); | |
811 | ||
812 | template <class A> | |
813 | typename <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span><A>::type | |
814 | <span class="RenoLink"><a href="inverse_mat_.html">inverse</a></span>( A const & a );</span> | |
815 | ||
816 | <span class="RenoIncludeSPAN">template <class T,int D> | |
817 | -unspecified-return-type- <span class="RenoLink"><a href="zero_mat.html">zero_mat</a></span>(); | |
818 | ||
819 | template <class T,int R,int C> | |
820 | -unspecified-return-type- <span class="RenoLink"><a href="zero_mat.html">zero_mat</a></span>();</span> | |
821 | ||
822 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
823 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value | |
824 | template <class A> | |
825 | void <span class="RenoLink"><a href="set_zero_mat_.html">set_zero</a></span>( A & a );</span> | |
826 | ||
827 | <span class="RenoIncludeSPAN">template <class S,int D> | |
828 | -unspecified-return-type- <span class="RenoLink"><a href="identity_mat.html">identity_mat</a></span>();</span> | |
829 | ||
830 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
831 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && | |
832 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span> | |
833 | template <class A> | |
834 | void <span class="RenoLink"><a href="set_identity_mat_.html">set_identity</a></span>( A & a );</span> | |
835 | ||
836 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
837 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value && <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><A>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
838 | template <int Dim,class A,class Angle> | |
839 | -unspecified-return-type | |
840 | <span class="RenoLink"><a href="rot_mat.html">rot_mat</a></span>( A const & axis, Angle angle );</span> | |
841 | ||
842 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
843 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>=3 && | |
844 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> && | |
845 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
846 | template <class A> | |
847 | void <span class="RenoLink"><a href="set_rot_mat_vec_scalar_.html">set_rot</a></span>( A & a, B const & axis, typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_V_scalar_type.html">scalar_type</a></span> angle );</span> | |
848 | ||
849 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
850 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>=3 && | |
851 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> && | |
852 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
853 | template <class A,class B> | |
854 | void <span class="RenoLink"><a href="rotate_mat_vec_scalar_.html">rotate</a></span>( A & a, B const & axis, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span> | |
855 | ||
856 | <span class="RenoIncludeSPAN">template <int Dim,class Angle> | |
857 | -unspecified-return-type- <span class="RenoLink"><a href="rotx_mat_scalar_.html">rotx_mat</a></span>( Angle const & angle );</span> | |
858 | ||
859 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
860 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>=3 && | |
861 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
862 | template <class A> | |
863 | void <span class="RenoLink"><a href="set_rotx_mat_scalar_.html">set_rotx</a></span>( A & a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span> | |
864 | ||
865 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
866 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>=3 && | |
867 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
868 | template <class A> | |
869 | void <span class="RenoLink"><a href="rotate_x_mat_scalar_.html">rotate_x</a></span>( A & a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span> | |
870 | ||
871 | <span class="RenoIncludeSPAN">template <int Dim,class Angle> | |
872 | -unspecified-return-type- <span class="RenoLink"><a href="roty_mat_scalar_.html">roty_mat</a></span>( Angle const & angle );</span> | |
873 | ||
874 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
875 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>=3 && | |
876 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
877 | template <class A> | |
878 | void <span class="RenoLink"><a href="set_roty_mat_scalar_.html">set_roty</a></span>( A & a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span> | |
879 | ||
880 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
881 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>=3 && | |
882 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
883 | template <class A> | |
884 | void <span class="RenoLink"><a href="rotate_y_mat_scalar_.html">rotate_y</a></span>( A & a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span> | |
885 | ||
886 | <span class="RenoIncludeSPAN">template <int Dim,class Angle> | |
887 | -unspecified-return-type- <span class="RenoLink"><a href="rotz_mat_scalar_.html">rotz_mat</a></span>( Angle const & angle );</span> | |
888 | ||
889 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
890 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>=3 && | |
891 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
892 | template <class A> | |
893 | void <span class="RenoLink"><a href="set_rotz_mat_scalar_.html">set_rotz</a></span>( A & a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span> | |
894 | ||
895 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
896 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>=3 && | |
897 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
898 | template <class A> | |
899 | void <span class="RenoLink"><a href="rotate_z_mat_scalar_.html">rotate_z</a></span>( A & a, typename <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> angle );</span> | |
900 | ||
901 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
902 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> | |
903 | template <class A> | |
904 | <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> | |
905 | <span class="RenoLink"><a href="determinant.html">determinant</a></span>( A const & a );</span> | |
906 | ||
907 | <span class="RenoIncludeSPAN">template <class T> | |
908 | -unspecified-return-type | |
909 | <span class="RenoLink"><a href="perspective_lh.html">perspective_lh</a></span>( T fov_y, T aspect, T zn, T zf );</span> | |
910 | ||
911 | <span class="RenoIncludeSPAN">template <class T> | |
912 | -unspecified-return-type | |
913 | <span class="RenoLink"><a href="perspective_rh.html">perspective_rh</a></span>( T fov_y, T aspect, T zn, T zf );</span> | |
914 | ||
915 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value | |
916 | template <class A> | |
917 | -unspecified-return-type- <span class="RenoLink"><a href="mref.html">mref</a></span>( A & a );</span> | |
918 | ||
919 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value | |
920 | template <class Scalar,class A> | |
921 | -unspecified-return_type- <span class="RenoLink"><a href="scalar_cast_mat_.html">scalar_cast</a></span>( A const & a );</span></span></span> | |
922 | ||
923 | ||
924 | ||
925 | <span class="RenoIncludeSPAN"> //*** Quaternion-Vector operations *** | |
926 | ||
927 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
928 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && | |
929 | // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
930 | template <class A,class B> | |
931 | typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span><A,B,3>::type | |
932 | <span class="RenoLink"><a href="operator_times_mat_vec_.html">operator*</a></span>( A const & a, B const & b );</span></span></span> | |
933 | ||
934 | ||
935 | ||
936 | <span class="RenoIncludeSPAN"> //*** Vector-Matrix operations *** | |
937 | ||
938 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
939 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
940 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==<span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span> | |
941 | template <class A,class B> | |
942 | typename <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span><A,B,<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>::type | |
943 | <span class="RenoLink"><a href="operator_times_mat_vec_.html">operator*</a></span>( A const & a, B const & b );</span> | |
944 | ||
945 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
946 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
947 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==4 && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==4 && | |
948 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
949 | template <class A,class B> | |
950 | <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span><A,B,3> >::type | |
951 | <span class="RenoLink"><a href="transform_vector.html">transform_vector</a></span>( A const & a, B const & b );</span> | |
952 | ||
953 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
954 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><B>::value && | |
955 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==4 && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==4 && | |
956 | // <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span><B>::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3 | |
957 | template <class A,class B> | |
958 | <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span><A,B,3> >::type | |
959 | <span class="RenoLink"><a href="transform_point.html">transform_point</a></span>( A const & a, B const & b );</span></span></span> | |
960 | ||
961 | ||
962 | ||
963 | <span class="RenoIncludeSPAN"> //*** Matrix-to-matrix view proxies *** | |
964 | ||
965 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <int R> | |
966 | -unspecified-return-type- <span class="RenoLink"><a href="del_row.html">del_row</a></span>();</span> | |
967 | ||
968 | <span class="RenoIncludeSPAN">template <int C> | |
969 | -unspecified-return-type- <span class="RenoLink"><a href="del_col.html">del_col</a></span>();</span> | |
970 | ||
971 | <span class="RenoIncludeSPAN">template <int R,int C> | |
972 | -unspecified-return-type- <span class="RenoLink"><a href="del_row_col.html">del_row_col</a></span>();</span> | |
973 | ||
974 | <span class="RenoIncludeSPAN">template <int R> | |
975 | -unspecified-return-type- <span class="RenoLink"><a href="neg_row.html">neg_row</a></span>();</span> | |
976 | ||
977 | <span class="RenoIncludeSPAN">template <int C> | |
978 | -unspecified-return-type- <span class="RenoLink"><a href="neg_col.html">neg_col</a></span>();</span> | |
979 | ||
980 | <span class="RenoIncludeSPAN">template <int R1,int R2> | |
981 | -unspecified-return-type- <span class="RenoLink"><a href="swap_rows.html">swap_rows</a></span>();</span> | |
982 | ||
983 | <span class="RenoIncludeSPAN">template <int C1,int C2> | |
984 | -unspecified-return-type- <span class="RenoLink"><a href="swap_cols.html">swap_cols</a></span>();</span> | |
985 | ||
986 | <span class="RenoIncludeSPAN">-unspecified-return-type- <span class="RenoLink"><a href="transposed.html">transposed</a></span>();</span></span></span> | |
987 | ||
988 | ||
989 | ||
990 | <span class="RenoIncludeSPAN"> //*** Vector-to-matrix view proxies *** | |
991 | ||
992 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
993 | template <iclass A> | |
994 | -unspecified-return-type- <span class="RenoLink"><a href="col_mat.html">col_mat</a></span>( A & a );</span> | |
995 | ||
996 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
997 | template <iclass A> | |
998 | -unspecified-return-type- <span class="RenoLink"><a href="row_mat.html">row_mat</a></span>( A & a );</span> | |
999 | ||
1000 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
1001 | template <iclass A> | |
1002 | -unspecified-return-type- <span class="RenoLink"><a href="translation_mat.html">translation_mat</a></span>( A & a );</span> | |
1003 | ||
1004 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_vec.html">is_vec</a></span><A>::value | |
1005 | template <iclass A> | |
1006 | -unspecified-return-type- <span class="RenoLink"><a href="diag_mat.html">diag_mat</a></span>( A & a );</span></span></span> | |
1007 | ||
1008 | ||
1009 | ||
1010 | <span class="RenoIncludeSPAN"> //*** Matrix-to-vector view proxies *** | |
1011 | ||
1012 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value | |
1013 | template <int C,class A> | |
1014 | -unspecified-return-type- <span class="RenoLink"><a href="col.html">col</a></span>( A & a );</span> | |
1015 | ||
1016 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value | |
1017 | template <int C,class A> | |
1018 | -unspecified-return-type- <span class="RenoLink"><a href="row.html">row</a></span>( A & a );</span> | |
1019 | ||
1020 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value | |
1021 | template <class A> | |
1022 | -unspecified-return-type- <span class="RenoLink"><a href="diag.html">diag</a></span>( A & a );</span> | |
1023 | ||
1024 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
1025 | // <span class="RenoLink"><a href="is_mat.html">is_mat</a></span><A>::value && | |
1026 | // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==<span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span> && <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span><A>::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>>=3 | |
1027 | template <class A> | |
1028 | -unspecified-return-type- <span class="RenoLink"><a href="translation.html">translation</a></span>( A & a );</span></span></span> | |
1029 | ||
1030 | ||
1031 | ||
1032 | <span class="RenoIncludeSPAN"> //*** Generic programming utilities *** | |
1033 | ||
1034 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class Q> | |
1035 | struct <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span> | |
1036 | { | |
1037 | typedef Q type; | |
1038 | };</span> | |
1039 | ||
1040 | <span class="RenoIncludeSPAN">template <class A,class B> | |
1041 | struct <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span> | |
1042 | { | |
1043 | typedef /*unspecified*/ type; | |
1044 | };</span></span> | |
1045 | ||
1046 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template < | |
1047 | class V, | |
1048 | int Dim=<span class="RenoLink"><a href="vec_traits_Vector_dim.html">vec_traits<Vector>::dim</a></span>> | |
1049 | struct <span class="RenoLink"><a href="deduce_vec.html">deduce_vec</a></span> | |
1050 | { | |
1051 | typedef /*unspecified*/ type; | |
1052 | };</span> | |
1053 | ||
1054 | <span class="RenoIncludeSPAN">template <class A,class B,int Dim> | |
1055 | struct <span class="RenoLink"><a href="deduce_vec2.html">deduce_vec2</a></span> | |
1056 | { | |
1057 | typedef /*unspecified*/ type; | |
1058 | };</span></span> | |
1059 | ||
1060 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template < | |
1061 | class M, | |
1062 | int Rows=<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">mat_traits<Matrix>::rows</a></span>, | |
1063 | int Cols=<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">mat_traits<Matrix>::cols</a></span>> | |
1064 | struct <span class="RenoLink"><a href="deduce_mat.html">deduce_mat</a></span> | |
1065 | { | |
1066 | typedef /*unspecified*/ type; | |
1067 | };</span> | |
1068 | ||
1069 | <span class="RenoIncludeSPAN">template <class A,class B,int Rows,int Cols> | |
1070 | struct <span class="RenoLink"><a href="deduce_mat2.html">deduce_mat2</a></span> | |
1071 | { | |
1072 | typedef /*unspecified*/ type; | |
1073 | };</span></span> | |
1074 | ||
1075 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class A,class B> | |
1076 | struct <span class="RenoLink"><a href="deduce_scalar.html">deduce_scalar</a></span> | |
1077 | { | |
1078 | typedef typename impl<A,B>::type type; | |
1079 | };</span></span> | |
1080 | ||
1081 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template <class Scalar> | |
1082 | struct <span class="RenoLink"><a href="scalar_traits.html">scalar_traits</a></span> | |
1083 | { | |
1084 | <span class="RenoLink"><a href="BOOST_QVM_INLINE_CRITICAL.html">BOOST_QVM_INLINE_CRITICAL</a></span> | |
1085 | static Scalar value( int v ) | |
1086 | { | |
1087 | return Scalar(v); | |
1088 | } | |
1089 | };</span> | |
1090 | ||
1091 | <span class="RenoIncludeSPAN">template <class T> | |
1092 | struct <span class="RenoLink"><a href="scalar.html">scalar</a></span> | |
1093 | { | |
1094 | typedef /*exact definition unspecified*/ type; | |
1095 | };</span></span></span> | |
1096 | ||
1097 | ||
1098 | ||
1099 | <span class="RenoIncludeSPAN"> //*** Exception types *** | |
1100 | ||
1101 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">struct <span class="RenoLink"><a href="error.html">error</a></span>: | |
1102 | virtual boost::exception, | |
1103 | virtual std::exception | |
1104 | { | |
1105 | };</span> | |
1106 | ||
1107 | <span class="RenoIncludeSPAN">struct <span class="RenoLink"><a href="zero_determinant_error.html">zero_determinant_error</a></span>: virtual <span class="RenoLink"><a href="error.html">error</a></span> { };</span> | |
1108 | <span class="RenoIncludeSPAN">struct <span class="RenoLink"><a href="zero_magnitude_error.html">zero_magnitude_error</a></span>: virtual <span class="RenoLink"><a href="error.html">error</a></span> { };</span></span></span> | |
1109 | } | |
1110 | ||
1111 | } | |
1112 | ||
1113 | <span class="RenoIncludeSPAN">//*** Macros *** | |
1114 | ||
1115 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_FORCE_INLINE.html">BOOST_QVM_FORCE_INLINE</a></span> | |
1116 | #define <span class="RenoLink"><a href="BOOST_QVM_FORCE_INLINE.html">BOOST_QVM_FORCE_INLINE</a></span> /*platform-specific*/ | |
1117 | #endif</span> | |
1118 | ||
1119 | <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE.html">BOOST_QVM_INLINE</a></span> | |
1120 | #define <span class="RenoLink"><a href="BOOST_QVM_INLINE.html">BOOST_QVM_INLINE</a></span> inline | |
1121 | #endif</span> | |
1122 | ||
1123 | <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE_TRIVIAL.html">BOOST_QVM_INLINE_TRIVIAL</a></span> | |
1124 | #define <span class="RenoLink"><a href="BOOST_QVM_INLINE_TRIVIAL.html">BOOST_QVM_INLINE_TRIVIAL</a></span> <span class="RenoLink"><a href="BOOST_QVM_FORCE_INLINE.html">BOOST_QVM_FORCE_INLINE</a></span> | |
1125 | #endif</span> | |
1126 | ||
1127 | <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE_CRITICAL.html">BOOST_QVM_INLINE_CRITICAL</a></span> | |
1128 | #define <span class="RenoLink"><a href="BOOST_QVM_INLINE_CRITICAL.html">BOOST_QVM_INLINE_CRITICAL</a></span> <span class="RenoLink"><a href="BOOST_QVM_FORCE_INLINE.html">BOOST_QVM_FORCE_INLINE</a></span> | |
1129 | #endif</span> | |
1130 | ||
1131 | <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE_OPERATIONS.html">BOOST_QVM_INLINE_OPERATIONS</a></span> | |
1132 | #define <span class="RenoLink"><a href="BOOST_QVM_INLINE_OPERATIONS.html">BOOST_QVM_INLINE_OPERATIONS</a></span> <span class="RenoLink"><a href="BOOST_QVM_INLINE.html">BOOST_QVM_INLINE</a></span> | |
1133 | #endif</span> | |
1134 | ||
1135 | <span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_INLINE_RECURSION.html">BOOST_QVM_INLINE_RECURSION</a></span> | |
1136 | #define <span class="RenoLink"><a href="BOOST_QVM_INLINE_RECURSION.html">BOOST_QVM_INLINE_RECURSION</a></span> <span class="RenoLink"><a href="BOOST_QVM_INLINE_OPERATIONS.html">BOOST_QVM_INLINE_OPERATIONS</a></span> | |
1137 | #endif</span></span> | |
1138 | ||
1139 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_ASSERT.html">BOOST_QVM_ASSERT</a></span> | |
1140 | #include <boost/assert.hpp> | |
1141 | #define <span class="RenoLink"><a href="BOOST_QVM_ASSERT.html">BOOST_QVM_ASSERT</a></span> BOOST_ASSERT | |
1142 | #endif</span></span> | |
1143 | ||
1144 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_STATIC_ASSERT.html">BOOST_QVM_STATIC_ASSERT</a></span> | |
1145 | #include <boost/static_assert.hpp> | |
1146 | #define <span class="RenoLink"><a href="BOOST_QVM_STATIC_ASSERT.html">BOOST_QVM_STATIC_ASSERT</a></span> BOOST_STATIC_ASSERT | |
1147 | #endif</span></span> | |
1148 | ||
1149 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">#ifndef <span class="RenoLink"><a href="BOOST_QVM_THROW_EXCEPTION.html">BOOST_QVM_THROW_EXCEPTION</a></span> | |
1150 | #include <span class="RenoLink"><a href="www.boost.org/doc/libs/release/libs/exception/doc/boost_throw_exception_hpp.html"><boost/throw_exception.hpp></a></span> | |
1151 | #define <span class="RenoLink"><a href="BOOST_QVM_THROW_EXCEPTION.html">BOOST_QVM_THROW_EXCEPTION</a></span> <span class="RenoLink"><a href="http://www.boost.org/doc/libs/release/libs/exception/doc/BOOST_THROW_EXCEPTION.html">BOOST_THROW_EXCEPTION</a></span> | |
1152 | #endif</span></span></span> | |
1153 | </pre> | |
1154 | </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> | |
1155 | See also: <span class="RenoPageList"><a href="index.html">Boost QVM</a></span> | |
1156 | </div> | |
1157 | <!-- Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. --> | |
1158 | <!-- Distributed under the Boost Software License, Version 1.0. (See accompanying --> | |
1159 | <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> | |
1160 | <div id="footer"> | |
1161 | <p> | |
1162 | <a class="logo" href="http://jigsaw.w3.org/css-validator/check/referer"><img class="logo_pic" src="valid-css.png" alt="Valid CSS" height="31" width="88"/></a> | |
1163 | <a class="logo" href="http://validator.w3.org/check?uri=referer"><img class="logo_pic" src="valid-xhtml.png" alt="Valid XHTML 1.0" height="31" width="88"/></a> | |
1164 | <small>Copyright (c) 2008-2016 by Emil Dotchevski and Reverge Studios, Inc.<br/> | |
1165 | Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt">Boost Software License, Version 1.0</a>.</small> | |
1166 | </p> | |
1167 | </div> | |
1168 | </div> | |
1169 | </div> | |
1170 | </div> | |
1171 | </body> | |
1172 | </html> |