• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
2 
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)
5 
6 #ifndef BOOST_QVM_86A42DA4385511E7822024B881262D2E
7 #define BOOST_QVM_86A42DA4385511E7822024B881262D2E
8 
9 #include <boost/qvm/inline.hpp>
10 #include <boost/qvm/enable_if.hpp>
11 #include <boost/qvm/quat_traits.hpp>
12 
13 namespace
14 boost
15     {
16     namespace
17     qvm
18         {
19         template <class A,class B>
20         BOOST_QVM_INLINE_OPERATIONS
21         typename enable_if_c<
22             is_quat<A>::value && is_quat<B>::value,
23             A &>::type
assign(A & a,B const & b)24         assign( A & a, B const & b )
25             {
26             quat_traits<A>::template write_element<0>(a) = quat_traits<B>::template read_element<0>(b);
27             quat_traits<A>::template write_element<1>(a) = quat_traits<B>::template read_element<1>(b);
28             quat_traits<A>::template write_element<2>(a) = quat_traits<B>::template read_element<2>(b);
29             quat_traits<A>::template write_element<3>(a) = quat_traits<B>::template read_element<3>(b);
30             return a;
31             }
32         }
33     }
34 
35 #endif
36