00001 /* -*- C++ -*- ------------------------------------------------------------ 00002 00003 Copyright (c) 2007 Jesse Anders and Demian Nave http://cmldev.net/ 00004 00005 The Configurable Math Library (CML) is distributed under the terms of the 00006 Boost Software License, v1.0 (see cml/LICENSE for details). 00007 00008 *-----------------------------------------------------------------------*/ 00013 #ifndef cml_quaternion_h 00014 #define cml_quaternion_h 00015 00016 #include <cml/core/common.h> 00017 00018 namespace cml { 00019 00020 // NOTE: 'scale' constant no longer used. 00021 00023 struct positive_cross { 00024 /*enum { scale = 1 };*/ 00025 }; 00026 00028 struct negative_cross { 00029 /*enum { scale = -1 };*/ 00030 }; 00031 00033 struct scalar_first { 00034 enum { W, X, Y, Z }; 00035 }; 00036 00038 struct vector_first { 00039 enum { X, Y, Z, W }; 00040 }; 00041 00051 template<typename Element, class ArrayType = fixed<>, 00052 class Order = scalar_first, class Cross = positive_cross> class quaternion; 00053 00054 } // namespace cml 00055 00056 #include <cml/quaternion/quaternion_ops.h> 00057 #include <cml/quaternion/conjugate.h> 00058 #include <cml/quaternion/quaternion_mul.h> 00059 #include <cml/quaternion/quaternion_functions.h> 00060 #include <cml/quaternion/quaternion_comparison.h> 00061 #include <cml/quaternion/inverse.h> 00062 #include <cml/quaternion/quaternion_print.h> 00063 00064 #include <cml/quaternion/quaternion.h> 00065 00066 #endif 00067 00068 // ------------------------------------------------------------------------- 00069 // vim:ft=cpp