]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/qvm/doc/quaternion_operations_reference.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / qvm / doc / quaternion_operations_reference.html
CommitLineData
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">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink"><a href="boost_qvm_quat_operations_hpp.html">boost/qvm/quat_operations.hpp</a></span>&gt;</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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
30 template &lt;class A,class B&gt;
31 A &amp; <span class="RenoLink"><a href="assign_quat_quat_.html">assign</a></span>( A &amp; a, B const &amp; 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>&lt;R&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;A&gt;::value
35 template &lt;class R,class A&gt;
36 R <span class="RenoLink"><a href="convert_to_quat_.html">convert_to</a></span>( A const &amp; 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>&lt;R&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_mat.html">is_mat</a></span>&lt;A&gt;::value &amp;&amp;
40 // <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_rows.html">rows</a></span>==3 &amp;&amp; <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="mat_traits_Matrix_cols.html">cols</a></span>==3
41 template &lt;class R,class A&gt;
42 R <span class="RenoLink"><a href="convert_to_quat_.html">convert_to</a></span>( A const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
46 template &lt;class A,class B&gt;
47 A &amp; <span class="RenoLink"><a href="operator_sub_eq_quat_quat_.html">operator-=</a></span>( A &amp; a, B const &amp; 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>&lt;A&gt;::value
50 template &lt;class A&gt;
51 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
52 <span class="RenoLink"><a href="operator_minus_quat_.html">operator-</a></span>( A const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value &amp;&amp;
56 template &lt;class A,class B&gt;
57 typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span>&lt;A,B&gt;::type
58 <span class="RenoLink"><a href="operator_minus_quat_quat_.html">operator-</a></span>( A const &amp; a, B const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
62 template &lt;class A,class B&gt;
63 A &amp; <span class="RenoLink"><a href="operator_add_quat_quat_.html">operator+=</a></span>( A &amp; a, B const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value &amp;&amp;
67 template &lt;class A,class B&gt;
68 typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span>&lt;A,B&gt;::type
69 <span class="RenoLink"><a href="operator_plus_quat_quat_.html">operator+</a></span>( A const &amp; a, B const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
72 template &lt;class A,class B&gt;
73 A &amp; <span class="RenoLink"><a href="operator_div_eq_quat_scalar_.html">operator/=</a></span>( A &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
76 template &lt;class A,class B&gt;
77 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
78 <span class="RenoLink"><a href="operator_over_quat_scalar_.html">operator/</a></span>( A const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
82 template &lt;class A,class B&gt;
83 A &amp; <span class="RenoLink"><a href="operator_mul_eq_quat_quat_.html">operator*=</a></span>( A &amp; a, B const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
86 template &lt;class A,class B&gt;
87 A &amp; <span class="RenoLink"><a href="operator_mul_eq_quat_scalar_.html">operator*=</a></span>( A &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
91 template &lt;class A,class B&gt;
92 typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span>&lt;A,B&gt;::type
93 <span class="RenoLink"><a href="operator_times_quat_quat_.html">operator*</a></span>( A const &amp; a, B const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
96 template &lt;class A,class B&gt;
97 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
98 <span class="RenoLink"><a href="operator_times_quat_scalar_.html">operator*</a></span>( A const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
102 template &lt;class A,class B&gt;
103 bool <span class="RenoLink"><a href="operator_eq_quat_quat_.html">operator==</a></span>( A const &amp; a, B const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
107 template &lt;class A,class B&gt;
108 bool <span class="RenoLink"><a href="operator_not_eq_quat_quat_.html">operator!=</a></span>( A const &amp; a, B const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
112 template &lt;class A,class B,class Cmp&gt;
113 bool <span class="RenoLink"><a href="cmp_quat_quat_.html">cmp</a></span>( A const &amp; a, B const &amp; 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>&lt;A&gt;::value
116 template &lt;class A&gt;
117 typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<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 &amp; 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>&lt;A&gt;::value
121 template &lt;class A&gt;
122 typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<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 &amp; 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>&lt;A&gt;::value
126 template &lt;class A&gt;
127 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
128 <span class="RenoLink"><a href="normalized_quat_.html">normalized</a></span>( A const &amp; 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>&lt;A&gt;::value
131 template &lt;class A&gt;
132 void <span class="RenoLink"><a href="normalize_quat_.html">normalize</a></span>( A &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value
136 template &lt;class A,class B&gt;
137 typename <span class="RenoLink"><a href="deduce_scalar.html">deduce_scalar</a></span>&lt;A,B&gt;::type
138 <span class="RenoLink"><a href="dot_quat_quat_.html">dot</a></span>( A const &amp; a, B const &amp; 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>&lt;A&gt;::value
141 template &lt;class A&gt;
142 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
143 <span class="RenoLink"><a href="conjugate.html">conjugate</a></span>( A const &amp; 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>&lt;A&gt;::value
146 template &lt;class A&gt;
147 typename <span class="RenoLink"><a href="deduce_quat.html">deduce_quat</a></span>&lt;A&gt;::type
148 <span class="RenoLink"><a href="inverse_quat_.html">inverse</a></span>( A const &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_quat.html">is_quat</a></span>&lt;B&gt;::value &amp;&amp; <span class="RenoLink"><a href="is_scalar.html">is_scalar</a></span>&lt;C&gt;
152 template &lt;class A,class B,class C&gt;
153 typename <span class="RenoLink"><a href="deduce_quat2.html">deduce_quat2</a></span>&lt;A,B&gt; &gt;::type
154 <span class="RenoLink"><a href="slerp.html">slerp</a></span>( A const &amp; a, B const &amp; b, C c );</span>
155
156 <span class="RenoIncludeSPAN">template &lt;class T&gt;
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>&lt;A&gt;::value
160 template &lt;class A&gt;
161 void <span class="RenoLink"><a href="set_zero_quat_.html">set_zero</a></span>( A &amp; a );</span>
162
163 <span class="RenoIncludeSPAN">template &lt;class S&gt;
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>&lt;A&gt;::value
167 template &lt;class A&gt;
168 void <span class="RenoLink"><a href="set_identity_quat_.html">set_identity</a></span>( A &amp; 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>&lt;A&gt;::value &amp;&amp; <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3
172 template &lt;class A&gt;
173 -unspecified-return-type- <span class="RenoLink"><a href="rot_quat.html">rot_quat</a></span>( A const &amp; axis, typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;A&gt;::<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>&lt;A&gt;::value &amp;&amp;
177 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp; <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3
178 template &lt;class A&gt;
179 void <span class="RenoLink"><a href="set_rot_quat_vec_scalar_.html">set_rot</a></span>( A &amp; a, B const &amp; axis, typename <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;B&gt;::<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>&lt;A&gt;::value &amp;&amp;
183 // <span class="RenoLink"><a href="is_vec.html">is_vec</a></span>&lt;B&gt;::value &amp;&amp; <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt;B&gt;::<span class="RenoLink"><a href="vec_traits_Vector_dim.html">dim</a></span>==3
184 template &lt;class A,class B&gt;
185 void <span class="RenoLink"><a href="rotate_quat_vec_scalar_.html">rotate</a></span>( A &amp; a, B const &amp; axis, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
186
187 <span class="RenoIncludeSPAN">template &lt;class Angle&gt;
188 -unspecified-return-type- <span class="RenoLink"><a href="rotx_quat_scalar_.html">rotx_quat</a></span>( Angle const &amp; 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>&lt;A&gt;::value
191 template &lt;class A&gt;
192 void <span class="RenoLink"><a href="set_rotx_quat_scalar_.html">set_rotx</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<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>&lt;A&gt;::value
195 template &lt;class A&gt;
196 void <span class="RenoLink"><a href="rotate_x_quat_scalar_.html">rotate_x</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
197
198 <span class="RenoIncludeSPAN">template &lt;class Angle&gt;
199 -unspecified-return-type- <span class="RenoLink"><a href="roty_quat_scalar_.html">roty_quat</a></span>( Angle const &amp; 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>&lt;A&gt;::value
202 template &lt;class A&gt;
203 void <span class="RenoLink"><a href="set_rotz_quat_scalar_.html">set_rotz</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<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>&lt;A&gt;::value
206 template &lt;class A&gt;
207 void <span class="RenoLink"><a href="rotate_y_quat_scalar_.html">rotate_y</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<span class="RenoLink"><a href="quat_traits_Q_scalar_type.html">scalar_type</a></span> angle );</span>
208
209 <span class="RenoIncludeSPAN">template &lt;class Angle&gt;
210 -unspecified-return-type- <span class="RenoLink"><a href="rotz_quat_scalar_.html">rotz_quat</a></span>( Angle const &amp; 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>&lt;A&gt;::value
213 template &lt;class A&gt;
214 void <span class="RenoLink"><a href="set_rotz_quat_scalar_.html">set_rotz</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<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>&lt;A&gt;::value
217 template &lt;class A&gt;
218 void <span class="RenoLink"><a href="rotate_z_quat_scalar_.html">rotate_z</a></span>( A &amp; a, typename <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt;A&gt;::<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>&lt;A&gt;::value
221 template &lt;class Scalar,class A&gt;
222 -unspecified-return_type- <span class="RenoLink"><a href="scalar_cast_quat_.html">scalar_cast</a></span>( A const &amp; 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>&lt;A&gt;::value
225 template &lt;class A&gt;
226 -unspecified-return-type- <span class="RenoLink"><a href="qref.html">qref</a></span>( A &amp; 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>
235See also: <span class="RenoPageList"><a href="index.html">Boost QVM</a>&nbsp;| <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/>
245Distributed 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>