X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2Fcml%2Fmathlib%2Ftypedef.h;fp=src%2Fcml%2Fmathlib%2Ftypedef.h;h=902a331d5e2195ff25cca2681ffce994c3643c3f;hp=0000000000000000000000000000000000000000;hb=6b0a0d0efafe34d48ab344fca3b479553bd4e62c;hpb=85783316365181491a3e3c0c63659972477cebba diff --git a/src/cml/mathlib/typedef.h b/src/cml/mathlib/typedef.h new file mode 100644 index 0000000..902a331 --- /dev/null +++ b/src/cml/mathlib/typedef.h @@ -0,0 +1,134 @@ +/* -*- C++ -*- ------------------------------------------------------------ + +Copyright (c) 2007 Jesse Anders and Demian Nave http://cmldev.net/ + +The Configurable Math Library (CML) is distributed under the terms of the +Boost Software License, v1.0 (see cml/LICENSE for details). + + *-----------------------------------------------------------------------*/ +/** @file + * @brief + */ + +#ifndef typedef_h +#define typedef_h + +#include +#include +#include +#include +#include + +namespace cml { + +/* fixed-size vectors */ +typedef vector< int, fixed<2> > vector2i; +typedef vector< float, fixed<2> > vector2f; +typedef vector< double, fixed<2> > vector2d; + +typedef vector< int, fixed<3> > vector3i; +typedef vector< float, fixed<3> > vector3f; +typedef vector< double, fixed<3> > vector3d; + +typedef vector< int, fixed<4> > vector4i; +typedef vector< float, fixed<4> > vector4f; +typedef vector< double, fixed<4> > vector4d; + +/* fixed-size matrices */ + +typedef matrix< int, fixed<2,2> > matrix22i; +typedef matrix< float, fixed<2,2> > matrix22f; +typedef matrix< double, fixed<2,2> > matrix22d; + +typedef matrix< int, fixed<2,2>, row_basis, row_major > matrix22i_r; +typedef matrix< int, fixed<2,2>, col_basis, col_major > matrix22i_c; +typedef matrix< float, fixed<2,2>, row_basis, row_major > matrix22f_r; +typedef matrix< float, fixed<2,2>, col_basis, col_major > matrix22f_c; +typedef matrix< double, fixed<2,2>, row_basis, row_major > matrix22d_r; +typedef matrix< double, fixed<2,2>, col_basis, col_major > matrix22d_c; + + +typedef matrix< int, fixed<3,3> > matrix33i; +typedef matrix< float, fixed<3,3> > matrix33f; +typedef matrix< double, fixed<3,3> > matrix33d; + +typedef matrix< int, fixed<3,3>, row_basis, row_major > matrix33i_r; +typedef matrix< int, fixed<3,3>, col_basis, col_major > matrix33i_c; +typedef matrix< float, fixed<3,3>, row_basis, row_major > matrix33f_r; +typedef matrix< float, fixed<3,3>, col_basis, col_major > matrix33f_c; +typedef matrix< double, fixed<3,3>, row_basis, row_major > matrix33d_r; +typedef matrix< double, fixed<3,3>, col_basis, col_major > matrix33d_c; + + +typedef matrix< int, fixed<4,4> > matrix44i; +typedef matrix< float, fixed<4,4> > matrix44f; +typedef matrix< double, fixed<4,4> > matrix44d; + +typedef matrix< int, fixed<4,4>, row_basis, row_major > matrix44i_r; +typedef matrix< int, fixed<4,4>, col_basis, col_major > matrix44i_c; +typedef matrix< float, fixed<4,4>, row_basis, row_major > matrix44f_r; +typedef matrix< float, fixed<4,4>, col_basis, col_major > matrix44f_c; +typedef matrix< double, fixed<4,4>, row_basis, row_major > matrix44d_r; +typedef matrix< double, fixed<4,4>, col_basis, col_major > matrix44d_c; + + +typedef matrix< int, fixed<3,2>, row_basis, row_major > matrix32i_r; +typedef matrix< float, fixed<3,2>, row_basis, row_major > matrix32f_r; +typedef matrix< double, fixed<3,2>, row_basis, row_major > matrix32d_r; + +typedef matrix< int, fixed<2,3>, col_basis, col_major > matrix23i_c; +typedef matrix< float, fixed<2,3>, col_basis, col_major > matrix23f_c; +typedef matrix< double, fixed<2,3>, col_basis, col_major > matrix23d_c; + +typedef matrix< int, fixed<4,3>, row_basis, row_major > matrix43i_r; +typedef matrix< float, fixed<4,3>, row_basis, row_major > matrix43f_r; +typedef matrix< double, fixed<4,3>, row_basis, row_major > matrix43d_r; + +typedef matrix< int, fixed<3,4>, col_basis, col_major > matrix34i_c; +typedef matrix< float, fixed<3,4>, col_basis, col_major > matrix34f_c; +typedef matrix< double, fixed<3,4>, col_basis, col_major > matrix34d_c; + + +/* quaternions */ +typedef quaternion,vector_first,negative_cross> + quaternionf_n; +typedef quaternion,vector_first,positive_cross> + quaternionf_p; +typedef quaternion,vector_first,negative_cross> + quaterniond_n; +typedef quaternion,vector_first,positive_cross> + quaterniond_p; +typedef quaternion quaternionf; +typedef quaternion quaterniond; + + +/* dynamically resizable vectors */ +typedef vector< int, dynamic<> > vectori; +typedef vector< float, dynamic<> > vectorf; +typedef vector< double, dynamic<> > vectord; + + +/* dynamically resizable matrices */ +typedef matrix< int, dynamic<> > matrixi; +typedef matrix< float, dynamic<> > matrixf; +typedef matrix< double, dynamic<> > matrixd; + +typedef matrix< int, dynamic<>, row_basis, row_major > matrixi_r; +typedef matrix< int, dynamic<>, col_basis, col_major > matrixi_c; +typedef matrix< float, dynamic<>, row_basis, row_major > matrixf_r; +typedef matrix< float, dynamic<>, col_basis, col_major > matrixf_c; +typedef matrix< double, dynamic<>, row_basis, row_major > matrixd_r; +typedef matrix< double, dynamic<>, col_basis, col_major > matrixd_c; + + +/* constants */ +typedef constants constantsf; +typedef constants constantsd; + +/* epsilon/tolerance values (placeholder) */ +typedef epsilon epsilonf; +typedef epsilon epsilond; + +} // namespace cml + +#endif