]>
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>quaternion operations</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>Quaternion Operations</h3> | |
20 | </div> | |
21 | <div class="RenoIncludeDIV"><p><span class="RenoEscape">#<!--<wiki>`#</wiki>--></span>include <<span class="RenoLink"><a href="boost_qvm_quat_operations_hpp.html">boost/qvm/quat_operations.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"> //*** Quaternion operations *** | |
27 | ||
28 | <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
29 | // <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 | |
30 | template <class A,class B> | |
31 | A & <span class="RenoLink"><a href="assign_quat_quat_.html">assign</a></span>( A & a, B const & b );</span> | |
32 | ||
33 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
34 | // <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 | |
35 | template <class R,class A> | |
36 | R <span class="RenoLink"><a href="convert_to_quat_.html">convert_to</a></span>( A const & a ); | |
37 | ||
38 | //Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
39 | // <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 && | |
40 | // <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 | |
41 | template <class R,class A> | |
42 | R <span class="RenoLink"><a href="convert_to_quat_.html">convert_to</a></span>( A const & m );</span> | |
43 | ||
44 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
45 | // <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 | |
46 | template <class A,class B> | |
47 | A & <span class="RenoLink"><a href="operator_sub_eq_quat_quat_.html">operator-=</a></span>( A & a, B const & b );</span> | |
48 | ||
49 | <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 | |
50 | template <class A> | |
51 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
52 | <span class="RenoLink"><a href="operator_minus_quat_.html">operator-</a></span>( A const & a );</span> | |
53 | ||
54 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
55 | // <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 && | |
56 | template <class A,class B> | |
57 | typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span><A,B>::type | |
58 | <span class="RenoLink"><a href="operator_minus_quat_quat_.html">operator-</a></span>( A const & a, B const & b );</span> | |
59 | ||
60 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
61 | // <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 | |
62 | template <class A,class B> | |
63 | A & <span class="RenoLink"><a href="operator_add_quat_quat_.html">operator+=</a></span>( A & a, B const & b );</span> | |
64 | ||
65 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
66 | // <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 && | |
67 | template <class A,class B> | |
68 | typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span><A,B>::type | |
69 | <span class="RenoLink"><a href="operator_plus_quat_quat_.html">operator+</a></span>( A const & a, B const & b );</span> | |
70 | ||
71 | <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 | |
72 | template <class A,class B> | |
73 | A & <span class="RenoLink"><a href="operator_div_eq_quat_scalar_.html">operator/=</a></span>( A & a, B b );</span> | |
74 | ||
75 | <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 | |
76 | template <class A,class B> | |
77 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
78 | <span class="RenoLink"><a href="operator_over_quat_scalar_.html">operator/</a></span>( A const & a, B b );</span> | |
79 | ||
80 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
81 | // <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 | |
82 | template <class A,class B> | |
83 | A & <span class="RenoLink"><a href="operator_mul_eq_quat_quat_.html">operator*=</a></span>( A & a, B const & b );</span> | |
84 | ||
85 | <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 | |
86 | template <class A,class B> | |
87 | A & <span class="RenoLink"><a href="operator_mul_eq_quat_scalar_.html">operator*=</a></span>( A & a, B b );</span> | |
88 | ||
89 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
90 | // <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 | |
91 | template <class A,class B> | |
92 | typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span><A,B>::type | |
93 | <span class="RenoLink"><a href="operator_times_quat_quat_.html">operator*</a></span>( A const & a, B const & b );</span> | |
94 | ||
95 | <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 | |
96 | template <class A,class B> | |
97 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
98 | <span class="RenoLink"><a href="operator_times_quat_scalar_.html">operator*</a></span>( A const & a, B b );</span> | |
99 | ||
100 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
101 | // <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 | |
102 | template <class A,class B> | |
103 | bool <span class="RenoLink"><a href="operator_eq_quat_quat_.html">operator==</a></span>( A const & a, B const & b );</span> | |
104 | ||
105 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
106 | // <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 | |
107 | template <class A,class B> | |
108 | bool <span class="RenoLink"><a href="operator_not_eq_quat_quat_.html">operator!=</a></span>( A const & a, B const & b );</span> | |
109 | ||
110 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
111 | // <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 | |
112 | template <class A,class B,class Cmp> | |
113 | bool <span class="RenoLink"><a href="cmp_quat_quat_.html">cmp</a></span>( A const & a, B const & b, Cmp pred );</span> | |
114 | ||
115 | <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 | |
116 | template <class A> | |
117 | 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> | |
118 | <span class="RenoLink"><a href="mag_sqr_quat_.html">mag_sqr</a></span>( A const & a );</span> | |
119 | ||
120 | <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 | |
121 | template <class A> | |
122 | 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> | |
123 | <span class="RenoLink"><a href="mag_quat_.html">mag</a></span>( A const & a );</span> | |
124 | ||
125 | <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 | |
126 | template <class A> | |
127 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
128 | <span class="RenoLink"><a href="normalized_quat_.html">normalized</a></span>( A const & a );</span> | |
129 | ||
130 | <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 | |
131 | template <class A> | |
132 | void <span class="RenoLink"><a href="normalize_quat_.html">normalize</a></span>( A & a );</span> | |
133 | ||
134 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
135 | // <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 | |
136 | template <class A,class B> | |
137 | typename <span class="RenoLink"><a href="deduce_scalar.html">deduce_scalar</a></span><A,B>::type | |
138 | <span class="RenoLink"><a href="dot_quat_quat_.html">dot</a></span>( A const & a, B const & b );</span> | |
139 | ||
140 | <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 | |
141 | template <class A> | |
142 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
143 | <span class="RenoLink"><a href="conjugate.html">conjugate</a></span>( A const & a );</span> | |
144 | ||
145 | <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 | |
146 | template <class A> | |
147 | typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span><A>::type | |
148 | <span class="RenoLink"><a href="inverse_quat_.html">inverse</a></span>( A const & a );</span> | |
149 | ||
150 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
151 | // <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> | |
152 | template <class A,class B,class C> | |
153 | typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span><A,B> >::type | |
154 | <span class="RenoLink"><a href="slerp.html">slerp</a></span>( A const & a, B const & b, C c );</span> | |
155 | ||
156 | <span class="RenoIncludeSPAN">template <class T> | |
157 | -unspecified-return-type- <span class="RenoLink"><a href="zero_quat.html">zero_quat</a></span>();</span> | |
158 | ||
159 | <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 | |
160 | template <class A> | |
161 | void <span class="RenoLink"><a href="set_zero_quat_.html">set_zero</a></span>( A & a );</span> | |
162 | ||
163 | <span class="RenoIncludeSPAN">template <class S> | |
164 | -unspecified-return-type- <span class="RenoLink"><a href="identity_quat.html">identity_quat</a></span>();</span> | |
165 | ||
166 | <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 | |
167 | template <class A> | |
168 | void <span class="RenoLink"><a href="set_identity_quat_.html">set_identity</a></span>( A & a );</span> | |
169 | ||
170 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
171 | // <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 | |
172 | template <class A> | |
173 | -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> | |
174 | ||
175 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
176 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && | |
177 | // <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 | |
178 | template <class A> | |
179 | 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> | |
180 | ||
181 | <span class="RenoIncludeSPAN">//Only <span class="RenoLink"><a href="SFINAE_enable_if.html">enabled if</a></span>: | |
182 | // <span class="RenoLink"><a href="is_quat.html">is_quat</a></span><A>::value && | |
183 | // <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 | |
184 | template <class A,class B> | |
185 | 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> | |
186 | ||
187 | <span class="RenoIncludeSPAN">template <class Angle> | |
188 | -unspecified-return-type- <span class="RenoLink"><a href="rotx_quat_scalar_.html">rotx_quat</a></span>( Angle const & angle );</span> | |
189 | ||
190 | <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 | |
191 | template <class A> | |
192 | 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> | |
193 | ||
194 | <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 | |
195 | template <class A> | |
196 | 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> | |
197 | ||
198 | <span class="RenoIncludeSPAN">template <class Angle> | |
199 | -unspecified-return-type- <span class="RenoLink"><a href="roty_quat_scalar_.html">roty_quat</a></span>( Angle const & angle );</span> | |
200 | ||
201 | <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 | |
202 | template <class A> | |
203 | 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> | |
204 | ||
205 | <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 | |
206 | template <class A> | |
207 | 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> | |
208 | ||
209 | <span class="RenoIncludeSPAN">template <class Angle> | |
210 | -unspecified-return-type- <span class="RenoLink"><a href="rotz_quat_scalar_.html">rotz_quat</a></span>( Angle const & angle );</span> | |
211 | ||
212 | <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 | |
213 | template <class A> | |
214 | 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> | |
215 | ||
216 | <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 | |
217 | template <class A> | |
218 | 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> | |
219 | ||
220 | <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 | |
221 | template <class Scalar,class A> | |
222 | -unspecified-return_type- <span class="RenoLink"><a href="scalar_cast_quat_.html">scalar_cast</a></span>( A const & a );</span> | |
223 | ||
224 | <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 | |
225 | template <class A> | |
226 | -unspecified-return-type- <span class="RenoLink"><a href="qref.html">qref</a></span>( A & a );</span></span></span> | |
227 | } | |
228 | }</pre> | |
229 | </div><p>This is a list of all quaternion operations implemented by Boost QVM -- click on functions for individual documentation. General notes:</p> | |
230 | <div><ul><li> All functions use <span class="RenoLink"><a href="SFINAE_enable_if.html">SFINAE/enable_if</a></span>. They are available for any C++ type but only if it has been registered through the <i><span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span></i> template.</li> | |
231 | <li> When objects are returned by value their type is deduced either by the <i><span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span></i> template (for unary functions) or the <i><span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span></i> template (for binary functions).</li> | |
232 | <li> The type of scalar arguments is deduced independently from the type of the quaternion argument, so they are not required to match. Scalar arguments must convert implicitly to the quaternion scalar type.</li> | |
233 | </ul></div> | |
234 | </div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div> | |
235 | See also: <span class="RenoPageList"><a href="index.html">Boost QVM</a> | <a href="Synopsis.html">Synopsis</a></span> | |
236 | </div> | |
237 | <!-- Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. --> | |
238 | <!-- Distributed under the Boost Software License, Version 1.0. (See accompanying --> | |
239 | <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) --> | |
240 | <div id="footer"> | |
241 | <p> | |
242 | <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> | |
243 | <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> | |
244 | <small>Copyright (c) 2008-2016 by Emil Dotchevski and Reverge Studios, Inc.<br/> | |
245 | Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt">Boost Software License, Version 1.0</a>.</small> | |
246 | </p> | |
247 | </div> | |
248 | </div> | |
249 | </div> | |
250 | </div> | |
251 | </body> | |
252 | </html> |