]> Dogcows Code - chaz/yoink/blob - src/Moof/cml/mathlib/typedef.h
extreme refactoring
[chaz/yoink] / src / Moof / cml / mathlib / typedef.h
1 /* -*- C++ -*- ------------------------------------------------------------
2
3 Copyright (c) 2007 Jesse Anders and Demian Nave http://cmldev.net/
4
5 The Configurable Math Library (CML) is distributed under the terms of the
6 Boost Software License, v1.0 (see cml/LICENSE for details).
7
8 *-----------------------------------------------------------------------*/
9 /** @file
10 * @brief
11 */
12
13 #ifndef typedef_h
14 #define typedef_h
15
16 #include <cml/vector.h>
17 #include <cml/matrix.h>
18 #include <cml/quaternion.h>
19 #include <cml/constants.h>
20 #include <cml/mathlib/epsilon.h>
21
22 namespace cml {
23
24 /* fixed-size vectors */
25 typedef vector< int, fixed<2> > vector2i;
26 typedef vector< float, fixed<2> > vector2f;
27 typedef vector< double, fixed<2> > vector2d;
28
29 typedef vector< int, fixed<3> > vector3i;
30 typedef vector< float, fixed<3> > vector3f;
31 typedef vector< double, fixed<3> > vector3d;
32
33 typedef vector< int, fixed<4> > vector4i;
34 typedef vector< float, fixed<4> > vector4f;
35 typedef vector< double, fixed<4> > vector4d;
36
37 /* fixed-size matrices */
38 typedef matrix< int, fixed<2,2>, row_basis, row_major > matrix22i_r;
39 typedef matrix< int, fixed<2,2>, col_basis, col_major > matrix22i_c;
40 typedef matrix< float, fixed<2,2>, row_basis, row_major > matrix22f_r;
41 typedef matrix< float, fixed<2,2>, col_basis, col_major > matrix22f_c;
42 typedef matrix< double, fixed<2,2>, row_basis, row_major > matrix22d_r;
43 typedef matrix< double, fixed<2,2>, col_basis, col_major > matrix22d_c;
44
45 typedef matrix< int, fixed<3,3>, row_basis, row_major > matrix33i_r;
46 typedef matrix< int, fixed<3,3>, col_basis, col_major > matrix33i_c;
47 typedef matrix< float, fixed<3,3>, row_basis, row_major > matrix33f_r;
48 typedef matrix< float, fixed<3,3>, col_basis, col_major > matrix33f_c;
49 typedef matrix< double, fixed<3,3>, row_basis, row_major > matrix33d_r;
50 typedef matrix< double, fixed<3,3>, col_basis, col_major > matrix33d_c;
51
52 typedef matrix< int, fixed<4,4>, row_basis, row_major > matrix44i_r;
53 typedef matrix< int, fixed<4,4>, col_basis, col_major > matrix44i_c;
54 typedef matrix< float, fixed<4,4>, row_basis, row_major > matrix44f_r;
55 typedef matrix< float, fixed<4,4>, col_basis, col_major > matrix44f_c;
56 typedef matrix< double, fixed<4,4>, row_basis, row_major > matrix44d_r;
57 typedef matrix< double, fixed<4,4>, col_basis, col_major > matrix44d_c;
58
59 typedef matrix< int, fixed<3,2>, row_basis, row_major > matrix32i_r;
60 typedef matrix< float, fixed<3,2>, row_basis, row_major > matrix32f_r;
61 typedef matrix< double, fixed<3,2>, row_basis, row_major > matrix32d_r;
62
63 typedef matrix< int, fixed<2,3>, col_basis, col_major > matrix23i_c;
64 typedef matrix< float, fixed<2,3>, col_basis, col_major > matrix23f_c;
65 typedef matrix< double, fixed<2,3>, col_basis, col_major > matrix23d_c;
66
67 typedef matrix< int, fixed<4,3>, row_basis, row_major > matrix43i_r;
68 typedef matrix< float, fixed<4,3>, row_basis, row_major > matrix43f_r;
69 typedef matrix< double, fixed<4,3>, row_basis, row_major > matrix43d_r;
70
71 typedef matrix< int, fixed<3,4>, col_basis, col_major > matrix34i_c;
72 typedef matrix< float, fixed<3,4>, col_basis, col_major > matrix34f_c;
73 typedef matrix< double, fixed<3,4>, col_basis, col_major > matrix34d_c;
74
75 /* quaternions */
76 typedef quaternion<float, fixed<>,vector_first,negative_cross>
77 quaternionf_n;
78 typedef quaternion<float, fixed<>,vector_first,positive_cross>
79 quaternionf_p;
80 typedef quaternion<double,fixed<>,vector_first,negative_cross>
81 quaterniond_n;
82 typedef quaternion<double,fixed<>,vector_first,positive_cross>
83 quaterniond_p;
84
85 /* dynamically resizable vectors */
86 typedef vector< int, dynamic<> > vectori;
87 typedef vector< float, dynamic<> > vectorf;
88 typedef vector< double, dynamic<> > vectord;
89
90 /* dynamically resizable matrices */
91 typedef matrix< int, dynamic<>, row_basis, row_major > matrixi_r;
92 typedef matrix< int, dynamic<>, col_basis, col_major > matrixi_c;
93 typedef matrix< float, dynamic<>, row_basis, row_major > matrixf_r;
94 typedef matrix< float, dynamic<>, col_basis, col_major > matrixf_c;
95 typedef matrix< double, dynamic<>, row_basis, row_major > matrixd_r;
96 typedef matrix< double, dynamic<>, col_basis, col_major > matrixd_c;
97
98 /* constants */
99 typedef constants<float> constantsf;
100 typedef constants<double> constantsd;
101
102 /* epsilon/tolerance values (placeholder) */
103 typedef epsilon<float> epsilonf;
104 typedef epsilon<double> epsilond;
105
106 } // namespace cml
107
108 #endif
This page took 0.034576 seconds and 4 git commands to generate.