]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/qvm/test/rot_mat_test.cpp
1 //Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
3 //Distributed under the Boost Software License, Version 1.0. (See accompanying
4 //file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 #include <boost/qvm/mat_operations.hpp>
7 #include "test_qvm_matrix.hpp"
8 #include "test_qvm_vector.hpp"
17 using namespace boost::qvm
;
18 test_qvm::vector
<V1
,3> axis
; axis
.a
[0]=1;
19 for( float r
=0; r
<6.28f
; r
+=0.5f
)
21 test_qvm::matrix
<M1
,D
,D
> const m1
=rot_mat
<D
>(axis
,r
);
22 test_qvm::rotation_x(m1
.b
,r
);
23 BOOST_QVM_TEST_EQ(m1
.a
,m1
.b
);
24 test_qvm::matrix
<M1
,D
,D
> m2(42,1);
26 test_qvm::rotation_x(m2
.b
,r
);
27 BOOST_QVM_TEST_EQ(m2
.a
,m2
.b
);
28 test_qvm::matrix
<M1
,D
,D
> m3(42,1);
29 test_qvm::matrix
<M1
,D
,D
> m4(42,1);
32 BOOST_QVM_TEST_EQ(m3
.a
,m3
.a
);
40 using namespace boost::qvm
;
41 test_qvm::vector
<V1
,3> axis
; axis
.a
[1]=1;
42 for( float r
=0; r
<6.28f
; r
+=0.5f
)
44 test_qvm::matrix
<M1
,D
,D
> m1
=rot_mat
<D
>(axis
,r
);
45 test_qvm::rotation_y(m1
.b
,r
);
46 BOOST_QVM_TEST_EQ(m1
.a
,m1
.b
);
47 test_qvm::matrix
<M1
,D
,D
> m2(42,1);
49 test_qvm::rotation_y(m2
.b
,r
);
50 BOOST_QVM_TEST_EQ(m2
.a
,m2
.b
);
51 test_qvm::matrix
<M1
,D
,D
> m3(42,1);
52 test_qvm::matrix
<M1
,D
,D
> m4(42,1);
55 BOOST_QVM_TEST_EQ(m3
.a
,m3
.a
);
63 using namespace boost::qvm
;
64 test_qvm::vector
<V1
,3> axis
; axis
.a
[2]=1;
65 for( float r
=0; r
<6.28f
; r
+=0.5f
)
67 test_qvm::matrix
<M1
,D
,D
> m1
=rot_mat
<D
>(axis
,r
);
68 test_qvm::rotation_z(m1
.b
,r
);
69 BOOST_QVM_TEST_EQ(m1
.a
,m1
.b
);
70 test_qvm::matrix
<M1
,D
,D
> m2(42,1);
72 test_qvm::rotation_z(m2
.b
,r
);
73 BOOST_QVM_TEST_EQ(m2
.a
,m2
.b
);
74 test_qvm::matrix
<M1
,D
,D
> m3(42,1);
75 test_qvm::matrix
<M1
,D
,D
> m4(42,1);
78 BOOST_QVM_TEST_EQ(m3
.a
,m3
.a
);
95 return boost::report_errors();