1 #ifndef BOOST_QVM_QUAT_HPP_INCLUDED
2 #define BOOST_QVM_QUAT_HPP_INCLUDED
4 // Copyright 2008-2022 Emil Dotchevski and Reverge Studios, Inc.
6 // Distributed under the Boost Software License, Version 1.0. (See accompanying
7 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9 #include <boost/qvm/detail/quat_assign.hpp>
10 #include <boost/qvm/assert.hpp>
11 #include <boost/qvm/static_assert.hpp>
13 namespace boost { namespace qvm {
34 quat_traits< quat<T> >
36 typedef quat<T> this_quaternion;
37 typedef T scalar_type;
41 BOOST_QVM_CONSTEXPR BOOST_QVM_INLINE_CRITICAL
43 read_element( this_quaternion const & x )
45 BOOST_QVM_STATIC_ASSERT(I>=0);
46 BOOST_QVM_STATIC_ASSERT(I<4);
52 BOOST_QVM_CONSTEXPR BOOST_QVM_INLINE_CRITICAL
54 write_element( this_quaternion & x )
56 BOOST_QVM_STATIC_ASSERT(I>=0);
57 BOOST_QVM_STATIC_ASSERT(I<4);