-//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.\r
-\r
-//Distributed under the Boost Software License, Version 1.0. (See accompanying\r
-//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)\r
-\r
-#ifndef UUID_49C5A1042AEF11DF9603880056D89593\r
-#define UUID_49C5A1042AEF11DF9603880056D89593\r
-\r
-#include <boost/qvm/detail/quat_assign.hpp>\r
-#include <boost/qvm/assert.hpp>\r
-#include <boost/qvm/static_assert.hpp>\r
-\r
-namespace\r
-boost\r
- {\r
- namespace\r
- qvm\r
- {\r
- template <class T>\r
- struct\r
- quat\r
- {\r
- T a[4];\r
- template <class R>\r
- operator R() const\r
- {\r
- R r;\r
- assign(r,*this);\r
- return r;\r
- }\r
- };\r
-\r
- template <class Q>\r
- struct quat_traits;\r
-\r
- template <class T>\r
- struct\r
- quat_traits< quat<T> >\r
- {\r
- typedef quat<T> this_quaternion;\r
- typedef T scalar_type;\r
-\r
- template <int I>\r
- static\r
- BOOST_QVM_INLINE_CRITICAL\r
- scalar_type\r
- read_element( this_quaternion const & x )\r
- {\r
- BOOST_QVM_STATIC_ASSERT(I>=0);\r
- BOOST_QVM_STATIC_ASSERT(I<4);\r
- return x.a[I];\r
- }\r
-\r
- template <int I>\r
- static\r
- BOOST_QVM_INLINE_CRITICAL\r
- scalar_type &\r
- write_element( this_quaternion & x )\r
- {\r
- BOOST_QVM_STATIC_ASSERT(I>=0);\r
- BOOST_QVM_STATIC_ASSERT(I<4);\r
- return x.a[I];\r
- }\r
- };\r
- }\r
- }\r
-\r
-#endif\r
+//Copyright (c) 2008-2016 Emil Dotchevski and Reverge Studios, Inc.
+
+//Distributed under the Boost Software License, Version 1.0. (See accompanying
+//file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef UUID_49C5A1042AEF11DF9603880056D89593
+#define UUID_49C5A1042AEF11DF9603880056D89593
+
+#include <boost/qvm/detail/quat_assign.hpp>
+#include <boost/qvm/assert.hpp>
+#include <boost/qvm/static_assert.hpp>
+
+namespace
+boost
+ {
+ namespace
+ qvm
+ {
+ template <class T>
+ struct
+ quat
+ {
+ T a[4];
+ template <class R>
+ operator R() const
+ {
+ R r;
+ assign(r,*this);
+ return r;
+ }
+ };
+
+ template <class Q>
+ struct quat_traits;
+
+ template <class T>
+ struct
+ quat_traits< quat<T> >
+ {
+ typedef quat<T> this_quaternion;
+ typedef T scalar_type;
+
+ template <int I>
+ static
+ BOOST_QVM_INLINE_CRITICAL
+ scalar_type
+ read_element( this_quaternion const & x )
+ {
+ BOOST_QVM_STATIC_ASSERT(I>=0);
+ BOOST_QVM_STATIC_ASSERT(I<4);
+ return x.a[I];
+ }
+
+ template <int I>
+ static
+ BOOST_QVM_INLINE_CRITICAL
+ scalar_type &
+ write_element( this_quaternion & x )
+ {
+ BOOST_QVM_STATIC_ASSERT(I>=0);
+ BOOST_QVM_STATIC_ASSERT(I<4);
+ return x.a[I];
+ }
+ };
+ }
+ }
+
+#endif