1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  */
16 
17 #pragma once
18 
19 /** \file
20  * \ingroup freestyle
21  * \brief Vectors and Matrices (useful type definitions)
22  */
23 
24 #include "VecMat.h"
25 
26 #include "../system/Precision.h"
27 
28 namespace Freestyle {
29 
30 namespace Geometry {
31 
32 typedef VecMat::Vec2<unsigned> Vec2u;
33 typedef VecMat::Vec2<int> Vec2i;
34 typedef VecMat::Vec2<float> Vec2f;
35 typedef VecMat::Vec2<double> Vec2d;
36 typedef VecMat::Vec2<real> Vec2r;
37 
38 typedef VecMat::Vec3<unsigned> Vec3u;
39 typedef VecMat::Vec3<int> Vec3i;
40 typedef VecMat::Vec3<float> Vec3f;
41 typedef VecMat::Vec3<double> Vec3d;
42 typedef VecMat::Vec3<real> Vec3r;
43 
44 typedef VecMat::HVec3<unsigned> HVec3u;
45 typedef VecMat::HVec3<int> HVec3i;
46 typedef VecMat::HVec3<float> HVec3f;
47 typedef VecMat::HVec3<double> HVec3d;
48 typedef VecMat::HVec3<real> HVec3r;
49 
50 typedef VecMat::SquareMatrix<unsigned, 2> Matrix22u;
51 typedef VecMat::SquareMatrix<int, 2> Matrix22i;
52 typedef VecMat::SquareMatrix<float, 2> Matrix22f;
53 typedef VecMat::SquareMatrix<double, 2> Matrix22d;
54 typedef VecMat::SquareMatrix<real, 2> Matrix22r;
55 
56 typedef VecMat::SquareMatrix<unsigned, 3> Matrix33u;
57 typedef VecMat::SquareMatrix<int, 3> Matrix33i;
58 typedef VecMat::SquareMatrix<float, 3> Matrix33f;
59 typedef VecMat::SquareMatrix<double, 3> Matrix33d;
60 typedef VecMat::SquareMatrix<real, 3> Matrix33r;
61 
62 typedef VecMat::SquareMatrix<unsigned, 4> Matrix44u;
63 typedef VecMat::SquareMatrix<int, 4> Matrix44i;
64 typedef VecMat::SquareMatrix<float, 4> Matrix44f;
65 typedef VecMat::SquareMatrix<double, 4> Matrix44d;
66 typedef VecMat::SquareMatrix<real, 4> Matrix44r;
67 
68 }  // end of namespace Geometry
69 
70 } /* namespace Freestyle */
71