Imported Upstream version 1.64.0
[platform/upstream/boost.git] / libs / qvm / doc / mat_traits.html
index 9cc9809..0b92b5a 100644 (file)
@@ -90,8 +90,22 @@ namespace boost
         };\r
     }\r
 }</pre>\r
+<p>Equivalently, we could use the <i><span class="RenoLink"><a href="mat_traits_defaults.html">mat_traits_defaults</a></span></i> template to shorten the above to:</p>\r
+<pre>namespace boost\r
+{\r
+    namespace <span class="RenoLink"><a href="qvm.html">qvm</a></span>\r
+    {\r
+        template &lt;&gt;\r
+        struct <span class="RenoLink">mat_traits</span>&lt;float33&gt;: <span class="RenoLink"><a href="mat_traits_defaults.html">mat_traits_defaults</a></span>&lt;float33,float,3,3&gt;\r
+        {\r
+            template &lt;int R,int C&gt; static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> &amp; <span class="RenoLink"><a href="mat_traits_M_write_element.html">write_element</a></span>( float33 &amp; m ) { return m.a[R][C]; }\r
+\r
+            static inline <span class="RenoLink"><a href="mat_traits_M_scalar_type.html">scalar_type</a></span> &amp; <span class="RenoLink"><a href="mat_traits_M_write_element_idx.html">write_element_idx</a></span>( int r, int c, float33 &amp; m ) { return m.a[r][c]; }\r
+        };\r
+    }\r
+}</pre>\r
 </div></div><div class="RenoAutoDIV"><div class="RenoHR"><hr/></div>\r
-See also: <span class="RenoPageList"><a href="assign_mat_mat_.html">assign(mat,mat)</a>&nbsp;| <a href="boost_qvm_mat_traits_hpp.html">boost/qvm/mat_traits.hpp</a>&nbsp;| <a href="boost_qvm_mat_traits_array_hpp.html">boost/qvm/mat_traits_array.hpp</a>&nbsp;| <a href="cmp_mat_mat_.html">cmp(mat,mat)</a>&nbsp;| <a href="convert_to_mat_.html">convert_to(mat)</a>&nbsp;| <a href="convert_to_quat_.html">convert_to(quat)</a>&nbsp;| <a href="deduce_mat.html">deduce_mat</a>&nbsp;| <a href="deduce_mat2.html">deduce_mat2</a>&nbsp;| <a href="determinant.html">determinant</a>&nbsp;| <a href="inverse_mat_.html">inverse(mat)</a>&nbsp;| <a href="is_mat.html">is_mat</a>&nbsp;| <a href="mat.html">mat</a>&nbsp;| <a href="mat_index_read.html">mat_index_read</a>&nbsp;| <a href="mat_index_write.html">mat_index_write</a>&nbsp;| <a href="mat_traits_M_read_element.html">mat_traits&lt;M&gt;::read_element</a>&nbsp;| <a href="mat_traits_M_read_element_idx.html">mat_traits&lt;M&gt;::read_element_idx</a>&nbsp;| <a href="mat_traits_M_scalar_type.html">mat_traits&lt;M&gt;::scalar_type</a>&nbsp;| <a href="mat_traits_M_write_element.html">mat_traits&lt;M&gt;::write_element</a>&nbsp;| <a href="mat_traits_M_write_element_idx.html">mat_traits&lt;M&gt;::write_element_idx</a>&nbsp;| <a href="mat_traits_Matrix_cols.html">mat_traits&lt;Matrix&gt;::cols</a>&nbsp;| <a href="mat_traits_Matrix_rows.html">mat_traits&lt;Matrix&gt;::rows</a>&nbsp;| <a href="operator_not_eq_mat_mat_.html">operator!=(mat,mat)</a>&nbsp;| <a href="operator_times_mat_mat_.html">operator*(mat,mat)</a>&nbsp;| <a href="operator_times_mat_vec_.html">operator*(mat,vec)</a>&nbsp;| <a href="operator_times_vec_mat_.html">operator*(vec,mat)</a>&nbsp;| <a href="operator_mul_eq_mat_mat_.html">operator*=(mat,mat)</a>&nbsp;| <a href="operator_plus_mat_mat_.html">operator+(mat,mat)</a>&nbsp;| <a href="operator_add_mat_mat_.html">operator+=(mat,mat)</a>&nbsp;| <a href="operator_minus_mat_mat_.html">operator-(mat,mat)</a>&nbsp;| <a href="operator_sub_eq_mat_mat_.html">operator-=(mat,mat)</a>&nbsp;| <a href="operator_eq_mat_mat_.html">operator==(mat,mat)</a>&nbsp;| <a href="rotate_mat_vec_scalar_.html">rotate(mat,vec,scalar)</a>&nbsp;| <a href="rotate_x_mat_scalar_.html">rotate_x(mat,scalar)</a>&nbsp;| <a href="rotate_y_mat_scalar_.html">rotate_y(mat,scalar)</a>&nbsp;| <a href="rotate_z_mat_scalar_.html">rotate_z(mat,scalar)</a>&nbsp;| <a href="SFINAE_enable_if.html">SFINAE/enable_if</a>&nbsp;| <a href="scalar.html">scalar</a>&nbsp;| <a href="set_identity_mat_.html">set_identity(mat)</a>&nbsp;| <a href="set_rot_mat_vec_scalar_.html">set_rot(mat,vec,scalar)</a>&nbsp;| <a href="set_rotx_mat_scalar_.html">set_rotx(mat,scalar)</a>&nbsp;| <a href="set_roty_mat_scalar_.html">set_roty(mat,scalar)</a>&nbsp;| <a href="set_rotz_mat_scalar_.html">set_rotz(mat,scalar)</a>&nbsp;| <a href="set_zero_mat_.html">set_zero(mat)</a>&nbsp;| <a href="transform_point.html">transform_point</a>&nbsp;| <a href="transform_vector.html">transform_vector</a>&nbsp;| <a href="translation.html">translation</a>&nbsp;| <a href="view_proxy.html">View Proxy</a></span>\r
+See also: <span class="RenoPageList"><a href="assign_mat_mat_.html">assign(mat,mat)</a>&nbsp;| <a href="boost_qvm_mat_traits_hpp.html">boost/qvm/mat_traits.hpp</a>&nbsp;| <a href="boost_qvm_mat_traits_array_hpp.html">boost/qvm/mat_traits_array.hpp</a>&nbsp;| <a href="boost_qvm_mat_traits_defaults_hpp.html">boost/qvm/mat_traits_defaults.hpp</a>&nbsp;| <a href="cmp_mat_mat_.html">cmp(mat,mat)</a>&nbsp;| <a href="convert_to_mat_.html">convert_to(mat)</a>&nbsp;| <a href="convert_to_quat_.html">convert_to(quat)</a>&nbsp;| <a href="deduce_mat.html">deduce_mat</a>&nbsp;| <a href="deduce_mat2.html">deduce_mat2</a>&nbsp;| <a href="determinant.html">determinant</a>&nbsp;| <a href="inverse_mat_.html">inverse(mat)</a>&nbsp;| <a href="is_mat.html">is_mat</a>&nbsp;| <a href="mat.html">mat</a>&nbsp;| <a href="mat_traits_M_read_element.html">mat_traits&lt;M&gt;::read_element</a>&nbsp;| <a href="mat_traits_M_read_element_idx.html">mat_traits&lt;M&gt;::read_element_idx</a>&nbsp;| <a href="mat_traits_M_scalar_type.html">mat_traits&lt;M&gt;::scalar_type</a>&nbsp;| <a href="mat_traits_M_write_element.html">mat_traits&lt;M&gt;::write_element</a>&nbsp;| <a href="mat_traits_M_write_element_idx.html">mat_traits&lt;M&gt;::write_element_idx</a>&nbsp;| <a href="mat_traits_Matrix_cols.html">mat_traits&lt;Matrix&gt;::cols</a>&nbsp;| <a href="mat_traits_Matrix_rows.html">mat_traits&lt;Matrix&gt;::rows</a>&nbsp;| <a href="mat_traits_defaults.html">mat_traits_defaults</a>&nbsp;| <a href="operator_not_eq_mat_mat_.html">operator!=(mat,mat)</a>&nbsp;| <a href="operator_times_mat_mat_.html">operator*(mat,mat)</a>&nbsp;| <a href="operator_times_mat_vec_.html">operator*(mat,vec)</a>&nbsp;| <a href="operator_times_vec_mat_.html">operator*(vec,mat)</a>&nbsp;| <a href="operator_mul_eq_mat_mat_.html">operator*=(mat,mat)</a>&nbsp;| <a href="operator_plus_mat_mat_.html">operator+(mat,mat)</a>&nbsp;| <a href="operator_add_mat_mat_.html">operator+=(mat,mat)</a>&nbsp;| <a href="operator_minus_mat_mat_.html">operator-(mat,mat)</a>&nbsp;| <a href="operator_sub_eq_mat_mat_.html">operator-=(mat,mat)</a>&nbsp;| <a href="operator_eq_mat_mat_.html">operator==(mat,mat)</a>&nbsp;| <a href="rotate_mat_vec_scalar_.html">rotate(mat,vec,scalar)</a>&nbsp;| <a href="rotate_x_mat_scalar_.html">rotate_x(mat,scalar)</a>&nbsp;| <a href="rotate_y_mat_scalar_.html">rotate_y(mat,scalar)</a>&nbsp;| <a href="rotate_z_mat_scalar_.html">rotate_z(mat,scalar)</a>&nbsp;| <a href="SFINAE_enable_if.html">SFINAE/enable_if</a>&nbsp;| <a href="scalar.html">scalar</a>&nbsp;| <a href="set_identity_mat_.html">set_identity(mat)</a>&nbsp;| <a href="set_rot_mat_vec_scalar_.html">set_rot(mat,vec,scalar)</a>&nbsp;| <a href="set_rotx_mat_scalar_.html">set_rotx(mat,scalar)</a>&nbsp;| <a href="set_roty_mat_scalar_.html">set_roty(mat,scalar)</a>&nbsp;| <a href="set_rotz_mat_scalar_.html">set_rotz(mat,scalar)</a>&nbsp;| <a href="set_zero_mat_.html">set_zero(mat)</a>&nbsp;| <a href="transform_point.html">transform_point</a>&nbsp;| <a href="transform_vector.html">transform_vector</a>&nbsp;| <a href="translation.html">translation</a>&nbsp;| <a href="view_proxy.html">View Proxy</a></span>\r
 </div>\r
 <!-- Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc. -->\r
 <!-- Distributed under the Boost Software License, Version 1.0. (See accompanying -->\r