BWAPI
|
00001 // Copyright (c) 2000-2004 Utrecht University (The Netherlands), 00002 // ETH Zurich (Switzerland), Freie Universitaet Berlin (Germany), 00003 // INRIA Sophia-Antipolis (France), Martin-Luther-University Halle-Wittenberg 00004 // (Germany), Max-Planck-Institute Saarbruecken (Germany), RISC Linz (Austria), 00005 // and Tel-Aviv University (Israel). All rights reserved. 00006 // 00007 // This file is part of CGAL (www.cgal.org); you can redistribute it and/or 00008 // modify it under the terms of the GNU Lesser General Public License as 00009 // published by the Free Software Foundation; version 2.1 of the License. 00010 // See the file LICENSE.LGPL distributed with CGAL. 00011 // 00012 // Licensees holding a valid commercial license may use this file in 00013 // accordance with the commercial license agreement provided with the software. 00014 // 00015 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00016 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00017 // 00018 // $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.5-branch/Cartesian_kernel/include/CGAL/Cartesian/Cartesian_base.h $ 00019 // $Id: Cartesian_base.h 45156 2008-08-26 13:40:26Z spion $ 00020 // 00021 // 00022 // Author(s) : Sylvain Pion 00023 00024 #ifndef CGAL_CARTESIAN_BASE_H 00025 #define CGAL_CARTESIAN_BASE_H 00026 00027 #include <CGAL/basic.h> 00028 #include <CGAL/basic_classes.h> 00029 #include <CGAL/Kernel/global_functions.h> 00030 00031 #include <CGAL/Cartesian/Point_2.h> 00032 #include <CGAL/Cartesian/Vector_2.h> 00033 #include <CGAL/Cartesian/Direction_2.h> 00034 #include <CGAL/Cartesian/Line_2.h> 00035 #include <CGAL/Cartesian/Ray_2.h> 00036 #include <CGAL/Cartesian/Segment_2.h> 00037 #include <CGAL/Cartesian/Triangle_2.h> 00038 #include <CGAL/Cartesian/Circle_2.h> 00039 #include <CGAL/Cartesian/Iso_rectangle_2.h> 00040 #include <CGAL/Cartesian/Aff_transformation_2.h> 00041 #include <CGAL/Cartesian/Data_accessor_2.h> 00042 #include <CGAL/ConicCPA2.h> 00043 00044 #include <CGAL/Cartesian/predicates_on_points_2.h> 00045 #include <CGAL/Cartesian/predicates_on_directions_2.h> 00046 #include <CGAL/Cartesian/basic_constructions_2.h> 00047 00048 #include <CGAL/Cartesian/Point_3.h> 00049 #include <CGAL/Cartesian/Vector_3.h> 00050 #include <CGAL/Cartesian/Direction_3.h> 00051 #include <CGAL/Cartesian/Line_3.h> 00052 #include <CGAL/Cartesian/Plane_3.h> 00053 #include <CGAL/Cartesian/Ray_3.h> 00054 #include <CGAL/Cartesian/Segment_3.h> 00055 #include <CGAL/Cartesian/Triangle_3.h> 00056 #include <CGAL/Cartesian/Tetrahedron_3.h> 00057 #include <CGAL/Cartesian/Iso_cuboid_3.h> 00058 #include <CGAL/Cartesian/Sphere_3.h> 00059 #include <CGAL/Cartesian/Circle_3.h> 00060 #include <CGAL/Cartesian/Aff_transformation_3.h> 00061 00062 #include <CGAL/Cartesian/predicates_on_points_3.h> 00063 #include <CGAL/Cartesian/predicates_on_planes_3.h> 00064 #include <CGAL/Cartesian/basic_constructions_3.h> 00065 00066 #include <CGAL/representation_tags.h> 00067 #include <CGAL/Cartesian/function_objects.h> 00068 #include <CGAL/Uncertain.h> 00069 00070 CGAL_BEGIN_NAMESPACE 00071 00072 template < typename K_, typename FT_> 00073 struct Cartesian_base 00074 { 00075 typedef K_ Kernel; 00076 typedef FT_ FT; 00077 typedef Cartesian_base<K_,FT_> Self; 00078 typedef Cartesian_tag Rep_tag; 00079 typedef Cartesian_tag Kernel_tag; 00080 00081 typedef CGAL::Object Object_2; 00082 typedef CGAL::Object Object_3; 00083 00084 // Boolean had originally been Bool. It was renamed to avoid a conflict 00085 // between a macro defined in Xlib.h poorly chosen to have the same name, 00086 // that is 'Bool'. 00087 typedef typename Same_uncertainty_nt<bool, FT>::type 00088 Boolean; 00089 typedef typename Same_uncertainty_nt<CGAL::Sign, FT>::type 00090 Sign; 00091 typedef typename Same_uncertainty_nt<CGAL::Comparison_result, FT>::type 00092 Comparison_result; 00093 typedef typename Same_uncertainty_nt<CGAL::Orientation, FT>::type 00094 Orientation; 00095 typedef typename Same_uncertainty_nt<CGAL::Oriented_side, FT>::type 00096 Oriented_side; 00097 typedef typename Same_uncertainty_nt<CGAL::Bounded_side, FT>::type 00098 Bounded_side; 00099 typedef typename Same_uncertainty_nt<CGAL::Angle, FT>::type 00100 Angle; 00101 00102 template <typename T> 00103 struct Ambient_dimension { 00104 typedef typename T::Ambient_dimension type; 00105 }; 00106 00107 template <typename T> 00108 struct Feature_dimension { 00109 typedef typename T::Feature_dimension type; 00110 }; 00111 00112 typedef PointC2<Kernel> Point_2; 00113 typedef VectorC2<Kernel> Vector_2; 00114 typedef DirectionC2<Kernel> Direction_2; 00115 typedef SegmentC2<Kernel> Segment_2; 00116 typedef LineC2<Kernel> Line_2; 00117 typedef RayC2<Kernel> Ray_2; 00118 typedef TriangleC2<Kernel> Triangle_2; 00119 typedef CircleC2<Kernel> Circle_2; 00120 typedef Iso_rectangleC2<Kernel> Iso_rectangle_2; 00121 typedef Aff_transformationC2<Kernel> Aff_transformation_2; 00122 00123 typedef PointC3<Kernel> Point_3; 00124 typedef VectorC3<Kernel> Vector_3; 00125 typedef DirectionC3<Kernel> Direction_3; 00126 typedef LineC3<Kernel> Line_3; 00127 typedef PlaneC3<Kernel> Plane_3; 00128 typedef RayC3<Kernel> Ray_3; 00129 typedef SegmentC3<Kernel> Segment_3; 00130 typedef TriangleC3<Kernel> Triangle_3; 00131 typedef TetrahedronC3<Kernel> Tetrahedron_3; 00132 typedef Iso_cuboidC3<Kernel> Iso_cuboid_3; 00133 typedef SphereC3<Kernel> Sphere_3; 00134 typedef CircleC3<Kernel> Circle_3; 00135 typedef Aff_transformationC3<Kernel> Aff_transformation_3; 00136 00137 typedef const FT_* Cartesian_const_iterator_2; 00138 typedef const FT_* Cartesian_const_iterator_3; 00139 00140 // Undocumented stuff. 00141 typedef Data_accessorC2<Kernel> Data_accessor_2; 00142 typedef ConicCPA2<Point_2,Data_accessor_2> Conic_2; 00143 }; 00144 00145 CGAL_END_NAMESPACE 00146 00147 #endif // CGAL_CARTESIAN_BASE_H