BWAPI
SPAR/AIModule/BWTA/vendors/CGAL/CGAL/Segment_Delaunay_graph_2/Traits_base_2.h
Go to the documentation of this file.
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines