00001
00002
00008 #if !defined(__cpt_Face_h__)
00009 #define __cpt_Face_h__
00010
00011
00012 #include "defs.h"
00013
00014 #include "../ads/array/FixedArray.h"
00015 #include "../ads/algorithm/min_max.h"
00016
00017 #include "../geom/grid/RegularGrid.h"
00018 #include "../geom/kernel/Plane.h"
00019 #include "../geom/polytope/IndexedEdgePolyhedron.h"
00020 #include "../geom/polytope/ScanConversionPolyhedron.h"
00021
00022 #include <vector>
00023
00024 #include <cmath>
00025
00026 BEGIN_NAMESPACE_CPT
00027
00028 template<int N, typename T = double>
00029 class Face;
00030
00032
00033 template<int N, typename T>
00034 bool
00035 operator==(const Face<N,T>& a, const Face<N,T>& b);
00036
00038
00039 template<int N, typename T>
00040 inline
00041 bool
00042 operator!=(const Face<N,T>& a, const Face<N,T>& b) {
00043 return !(a == b);
00044 }
00045
00046 END_NAMESPACE_CPT
00047
00048 #define __cpt_Face1_ipp__
00049 #include "Face1.ipp"
00050 #undef __cpt_Face1_ipp__
00051
00052 #define __cpt_Face2_ipp__
00053 #include "Face2.ipp"
00054 #undef __cpt_Face2_ipp__
00055
00056 #define __cpt_Face3_ipp__
00057 #include "Face3.ipp"
00058 #undef __cpt_Face3_ipp__
00059
00060 #endif