]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/qvm/doc/quaternion_vector_and_matrix_types_reference.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / qvm / doc / quaternion_vector_and_matrix_types_reference.html
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, vector and matrix types</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, Vector and Matrix Types</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_hpp.html">boost/qvm/quat.hpp</a></span>&gt;<span class="RenoBR">&nbsp;</span><br/><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink"><a href="boost_qvm_vec_hpp.html">boost/qvm/vec.hpp</a></span>&gt;<span class="RenoBR">&nbsp;</span><br/><span class="RenoEscape">&#35;<!--<wiki>`&#35;</wiki>--></span>include &lt;<span class="RenoLink"><a href="boost_qvm_mat_hpp.html">boost/qvm/mat.hpp</a></span>&gt;<span class="RenoBR">&nbsp;</span><br/></p>
22 <pre>namespace boost
23 {
24 namespace <span class="RenoLink"><a href="qvm.html">qvm</a></span>
25 {
26 <span class="RenoIncludeSPAN"> //*** Quaternion, vector and matrix types ***
27
28 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class T&gt;
29 struct <span class="RenoLink"><a href="quat.html">quat</a></span>
30 {
31 T a[4];
32
33 template &lt;class R&gt;
34 operator R() const
35 {
36 R r;
37 <span class="RenoLink"><a href="assign_quat_quat_.html">assign</a></span>(r,*this);
38 return r;
39 }
40 };
41
42 template &lt;class Quaternion&gt;
43 struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>;
44
45 template &lt;class T&gt;
46 struct <span class="RenoLink"><a href="quat_traits.html">quat_traits</a></span>&lt; <span class="RenoLink"><a href="quat.html">quat</a></span>&lt;T&gt; &gt;
47 {
48 typedef T scalar_type;
49
50 template &lt;int I&gt; 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>&lt;T&gt; const &amp; x ) { return x.a[I]; }
51 template &lt;int I&gt; static scalar_type &amp; <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>&lt;T&gt; &amp; x ) { return x.a[I]; }
52 };</span></span>
53
54 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class T,int Dim&gt;
55 struct <span class="RenoLink"><a href="vec.html">vec</a></span>
56 {
57 T a[Dim];
58
59 template &lt;class R&gt;
60 operator R() const
61 {
62 R r;
63 <span class="RenoLink"><a href="assign_vec_vec_.html">assign</a></span>(r,*this);
64 return r;
65 }
66 };
67
68 template &lt;class Vector&gt;
69 struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>;
70
71 template &lt;class T,int Dim&gt;
72 struct <span class="RenoLink"><a href="vec_traits.html">vec_traits</a></span>&lt; <span class="RenoLink"><a href="vec.html">vec</a></span>&lt;T,Dim&gt; &gt;
73 {
74 typedef T scalar_type;
75 static int const dim=Dim;
76
77 template &lt;int I&gt; 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>&lt;T,Dim&gt; const &amp; x ) { return x.a[I]; }
78 template &lt;int I&gt; static scalar_type &amp; <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>&lt;T,Dim&gt; &amp; x ) { return x.a[I]; }
79
80 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>&lt;T,Dim&gt; const &amp; x ) { return x.a[i]; }
81 static scalar_type &amp; <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>&lt;T,Dim&gt; &amp; x ) { return x.a[i]; }
82 };</span></span>
83
84 <span class="RenoIncludeSPAN"><span class="RenoIncludeSPAN">template &lt;class T,int Rows,int Cols&gt;
85 struct <span class="RenoLink"><a href="mat.html">mat</a></span>
86 {
87 T a[Rows][Cols];
88
89 template &lt;class R&gt;
90 operator R() const
91 {
92 R r;
93 <span class="RenoLink"><a href="assign_mat_mat_.html">assign</a></span>(r,*this);
94 return r;
95 }
96 };
97
98 template &lt;class Matrix&gt;
99 struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>;
100
101 template &lt;class T,int Rows,int Cols&gt;
102 struct <span class="RenoLink"><a href="mat_traits.html">mat_traits</a></span>&lt; <span class="RenoLink"><a href="mat.html">mat</a></span>&lt;T,Rows,Cols&gt; &gt;
103 {
104 typedef T scalar_type;
105 static int const rows=Rows;
106 static int const cols=Cols;
107
108 template &lt;int Row,int Col&gt; 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>&lt;T,Rows,Cols&gt; const &amp; x ) { return x.a[Row][Col]; }
109 template &lt;int Row,int Col&gt; static scalar_type &amp; <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>&lt;T,Rows,Cols&gt; &amp; x ) { return x.a[Row][Col]; }
110
111 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>&lt;T,Rows,Cols&gt; const &amp; x ) { return x.a[row][col]; }
112 static scalar_type &amp; <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>&lt;T,Rows,Cols&gt; &amp; x ) { return x.a[row][col]; }
113 };</span></span></span>
114 }
115 }</pre>
116 </div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>
117 See also: <span class="RenoPageList"><a href="index.html">Boost QVM</a>&nbsp;| <a href="Synopsis.html">Synopsis</a></span>
118 </div>
119 <!-- Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. -->
120 <!-- Distributed under the Boost Software License, Version 1.0. (See accompanying -->
121 <!-- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -->
122 <div id="footer">
123 <p>
124 <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>
125 <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>
126 <small>Copyright (c) 2008-2016 by Emil Dotchevski and Reverge Studios, Inc.<br/>
127 Distributed under the <a href="http://www.boost.org/LICENSE_1_0.txt">Boost Software License, Version 1.0</a>.</small>
128 </p>
129 </div>
130 </div>
131 </div>
132 </div>
133 </body>
134 </html>