|
BWAPI
|
00001 // Copyright (c) 2003,2004,2005,2006 INRIA Sophia-Antipolis (France) and 00002 // Notre Dame University (U.S.A.). All rights reserved. 00003 // 00004 // This file is part of CGAL (www.cgal.org); you may redistribute it under 00005 // the terms of the Q Public License version 1.0. 00006 // See the file LICENSE.QPL distributed with CGAL. 00007 // 00008 // Licensees holding a valid commercial license may use this file in 00009 // accordance with the commercial license agreement provided with the software. 00010 // 00011 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00012 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00013 // 00014 // $URL: svn+ssh://scm.gforge.inria.fr/svn/cgal/branches/CGAL-3.5-branch/Segment_Delaunay_graph_2/include/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h $ 00015 // $Id: Traits_base_2.h 41433 2008-01-03 19:02:00Z spion $ 00016 // 00017 // Author(s) : Menelaos Karavelas <mkaravel@cse.nd.edu> 00018 00019 #ifndef CGAL_SEGMENT_DELAUNAY_GRAPH_2_TRAITS_BASE_2_H 00020 #define CGAL_SEGMENT_DELAUNAY_GRAPH_2_TRAITS_BASE_2_H 00021 00022 #include <CGAL/Segment_Delaunay_graph_2/basic.h> 00023 #include <CGAL/Segment_Delaunay_graph_2/Predicates_C2.h> 00024 #include <CGAL/Segment_Delaunay_graph_2/Constructions_C2.h> 00025 #include <CGAL/Segment_Delaunay_graph_2/Kernel_wrapper_2.h> 00026 00027 CGAL_BEGIN_NAMESPACE 00028 00029 //----------------------------------------------------------------------- 00030 // the Traits class 00031 //----------------------------------------------------------------------- 00032 00033 template<class R, class MTag, class ITag> 00034 class Segment_Delaunay_graph_traits_base_2 00035 { 00036 public: 00037 //----------------------------------------------------------------------- 00038 // TYPE DEFINITIONS 00039 //----------------------------------------------------------------------- 00040 00041 // BASIC TYPES 00042 //------------ 00043 00044 typedef 00045 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Kernel_wrapper_2<R,ITag> Kernel; 00046 typedef Kernel K; 00047 typedef R Rep; 00048 typedef MTag Method_tag; 00049 00050 // the following tag controls how support intersections in the 00051 // traits. If it is Tag_true then we fully support intersections. 00052 // If it is Tag_true it is assumed that no intersections appear in 00053 // the data and so there is limited support for intersections. 00054 typedef ITag Intersections_tag; 00055 00056 typedef typename Kernel::Point_2 Point_2; 00057 typedef typename Kernel::Line_2 Line_2; 00058 typedef typename Kernel::Segment_2 Segment_2; 00059 typedef typename Kernel::Ray_2 Ray_2; 00060 // typedef typename Kernel::Circle_2 Circle_2; 00061 00062 typedef typename Kernel::Site_2 Site_2; 00063 typedef typename Kernel::Object_2 Object_2; 00064 00065 typedef typename Kernel::FT FT; 00066 typedef typename Kernel::RT RT; 00067 00068 protected: 00069 typedef 00070 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Internal::Arrangement_enum 00071 Arrangement_enum; 00072 00073 public: 00074 // OBJECT CONSTRUCTION & ASSIGNMENT 00075 //------------------------------- 00076 typedef typename Kernel::Construct_object_2 Construct_object_2; 00077 typedef typename Kernel::Assign_2 Assign_2; 00078 00079 // CONSTRUCTIONS 00080 //-------------- 00081 // vertex and Voronoi circle 00082 typedef 00083 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Construct_svd_vertex_2<K,MTag> 00084 Construct_svd_vertex_2; 00085 00086 /* 00087 typedef 00088 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Construct_svd_circle_2<K,MTag> 00089 Construct_svd_circle_2; 00090 */ 00091 00092 // PREDICATES 00093 //----------- 00094 typedef 00095 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Compare_x_2<K> 00096 Compare_x_2; 00097 00098 typedef 00099 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Compare_y_2<K> 00100 Compare_y_2; 00101 00102 typedef 00103 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Orientation_C2<K> 00104 Orientation_2; 00105 00106 typedef 00107 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Are_same_points_C2<K> 00108 Equal_2; 00109 00110 typedef 00111 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Are_parallel_C2<K> 00112 Are_parallel_2; 00113 00114 typedef 00115 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Oriented_side_of_bisector_C2<K,MTag> 00116 Oriented_side_of_bisector_2; 00117 00118 typedef 00119 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Vertex_conflict_C2<K,MTag> 00120 Vertex_conflict_2; 00121 00122 typedef 00123 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Finite_edge_interior_conflict_C2<K,MTag> 00124 Finite_edge_interior_conflict_2; 00125 00126 typedef 00127 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Infinite_edge_interior_conflict_C2<K,MTag> 00128 Infinite_edge_interior_conflict_2; 00129 00130 typedef 00131 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Is_degenerate_edge_C2<K,MTag> 00132 Is_degenerate_edge_2; 00133 00134 typedef 00135 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Arrangement_type_C2<K> 00136 Arrangement_type_2; 00137 00138 typedef 00139 CGAL_SEGMENT_DELAUNAY_GRAPH_2_NS::Oriented_side_C2<K,MTag> 00140 Oriented_side_2; 00141 00142 public: 00143 //----------------------------------------------------------------------- 00144 // ACCESS TO OBJECTS 00145 //----------------------------------------------------------------------- 00146 00147 // OBJECT CONSTRUCTION & ASSIGNMENT 00148 //--------------------------------- 00149 Assign_2 00150 assign_2_object() const { 00151 return Assign_2(); 00152 } 00153 00154 Construct_object_2 00155 construct_object_2_object() const { 00156 return Construct_object_2(); 00157 } 00158 00159 // CONSTRUCTIONS 00160 //-------------- 00161 Construct_svd_vertex_2 00162 construct_svd_vertex_2_object() const { 00163 return Construct_svd_vertex_2(); 00164 } 00165 00166 /* 00167 Construct_svd_circle_2 00168 construct_svd_circle_2_object() const { 00169 return Construct_svd_circle_2(); 00170 } 00171 */ 00172 00173 // PREDICATES 00174 //----------- 00175 Compare_x_2 00176 compare_x_2_object() const { 00177 return Compare_x_2(); 00178 } 00179 00180 Compare_y_2 00181 compare_y_2_object() const { 00182 return Compare_y_2(); 00183 } 00184 00185 Orientation_2 00186 orientation_2_object() const { 00187 return Orientation_2(); 00188 } 00189 00190 Equal_2 00191 equal_2_object() const { 00192 return Equal_2(); 00193 } 00194 00195 Are_parallel_2 00196 are_parallel_2_object() const { 00197 return Are_parallel_2(); 00198 } 00199 00200 Oriented_side_of_bisector_2 00201 oriented_side_of_bisector_2_object() const { 00202 return Oriented_side_of_bisector_2(); 00203 } 00204 00205 Vertex_conflict_2 00206 vertex_conflict_2_object() const { 00207 return Vertex_conflict_2(); 00208 } 00209 00210 Finite_edge_interior_conflict_2 00211 finite_edge_interior_conflict_2_object() const { 00212 return Finite_edge_interior_conflict_2(); 00213 } 00214 00215 Infinite_edge_interior_conflict_2 00216 infinite_edge_interior_conflict_2_object() const { 00217 return Infinite_edge_interior_conflict_2(); 00218 } 00219 00220 Is_degenerate_edge_2 00221 is_degenerate_edge_2_object() const { 00222 return Is_degenerate_edge_2(); 00223 } 00224 00225 Arrangement_type_2 00226 arrangement_type_2_object() const { 00227 return Arrangement_type_2(); 00228 } 00229 00230 Oriented_side_2 00231 oriented_side_2_object() const { 00232 return Oriented_side_2(); 00233 } 00234 00235 }; 00236 00237 CGAL_END_NAMESPACE 00238 00239 #endif // CGAL_SEGMENT_DELAUNAY_GRAPH_2_TRAITS_BASE_2_H
1.7.6.1