BWAPI
SPAR/AIModule/BWTA/vendors/CGAL/CGAL/Arr_consolidated_curve_data_traits_2.h
Go to the documentation of this file.
00001 // Copyright (c) 2005, 2009  Tel-Aviv University (Israel).
00002 // 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/Arrangement_on_surface_2/include/CGAL/Arr_consolidated_curve_data_traits_2.h $
00015 // $Id: Arr_consolidated_curve_data_traits_2.h 49772 2009-06-03 21:25:53Z eric $
00016 // 
00017 //
00018 // Author(s)     : Ron Wein          <wein@post.tau.ac.il>
00019 //                 Efi Fogel         <efif@post.tau.ac.il>
00020 
00021 #ifndef CGAL_ARR_CONSOLIDATED_CURVE_DATA_TRAITS_2_H
00022 #define CGAL_ARR_CONSOLIDATED_CURVE_DATA_TRAITS_2_H
00023 
00028 #include<CGAL/Arr_curve_data_traits_2.h>
00029 #include<CGAL/Arr_geometry_traits/Consolidated_curve_data_aux.h>
00030 
00031 CGAL_BEGIN_NAMESPACE
00032 
00047 template <class Traits_, class Data_>
00048 class Arr_consolidated_curve_data_traits_2 :
00049   public Arr_curve_data_traits_2<Traits_,
00050                                  _Unique_list<Data_>, 
00051                                  _Consolidate_unique_lists<Data_>,
00052                                  Data_>
00053 {
00054 private:
00055 
00056   typedef Arr_curve_data_traits_2<Traits_,
00057                                   _Unique_list<Data_>, 
00058                                   _Consolidate_unique_lists<Data_>,
00059                                   Data_>            Base;
00060 
00061 public:
00062 
00063   typedef Traits_                                     Base_traits_2;
00064   typedef Data_                                       Data;
00065   typedef _Unique_list<Data_>                         Data_container;
00066   typedef typename Data_container::const_iterator     Data_iterator;
00067   typedef typename Data_container::const_iterator     Data_const_iterator;
00068 
00069   typedef typename Base::Curve_2                      Curve_2;
00070   typedef typename Base_traits_2::Curve_2             Base_curve_2;
00071   typedef typename Base::X_monotone_curve_2           X_monotone_curve_2;
00072   typedef typename Base_traits_2::X_monotone_curve_2  Base_x_monotone_curve_2;
00073   typedef typename Base_traits_2::Point_2             Point_2;
00074   typedef typename Base_traits_2::Multiplicity        Multiplicity;
00075 
00076   typedef typename Base_traits_2::Has_left_category   Has_left_category;
00077   
00078   typedef typename Base_traits_2::Has_merge_category  Base_has_merge_category;
00079   typedef Tag_true                                    Has_merge_category;
00080 
00081   // Base_traits_2 is Arr_curve_data_traits that already completes
00082   // incomplete tags
00083   typedef typename Base_traits_2::Arr_left_side_tag   Arr_left_side_tag;
00084   typedef typename Base_traits_2::Arr_bottom_side_tag Arr_bottom_side_tag;
00085   typedef typename Base_traits_2::Arr_top_side_tag    Arr_top_side_tag;
00086   typedef typename Base_traits_2::Arr_right_side_tag  Arr_right_side_tag;
00087 };
00088 
00089 CGAL_END_NAMESPACE
00090 
00091 #endif
00092 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines