BWAPI
|
00001 // Copyright (c) 2005 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_default_overlay_traits.h $ 00015 // $Id: Arr_default_overlay_traits.h 44257 2008-07-17 09:53:22Z eric $ 00016 // 00017 // 00018 // Author(s) : Ron Wein <wein@post.tau.ac.il> 00019 // Baruch Zukerman <baruchzu@post.tau.ac.il> 00020 00021 #ifndef CGAL_ARR_DEFAULT_OVERLAY_TRAITS_H 00022 #define CGAL_ARR_DEFAULT_OVERLAY_TRAITS_H 00023 00028 #include <CGAL/Arr_default_dcel.h> 00029 #include <CGAL/Arr_extended_dcel.h> 00030 #include <CGAL/Sweep_line_2/Arr_default_overlay_traits_base.h> 00031 00032 CGAL_BEGIN_NAMESPACE 00033 00041 template <class Arrangement_> 00042 class Arr_default_overlay_traits : 00043 public _Arr_default_overlay_traits_base<Arrangement_, 00044 Arrangement_, 00045 Arrangement_> 00046 {}; 00047 00059 template <class ArrangementA, class ArrangementB, class ArrangementR, 00060 class OverlayFaceData_> 00061 class Arr_face_overlay_traits : 00062 public _Arr_default_overlay_traits_base<ArrangementA, 00063 ArrangementB, 00064 ArrangementR> 00065 { 00066 public: 00067 00068 typedef typename ArrangementA::Face_const_handle Face_handle_A; 00069 typedef typename ArrangementB::Face_const_handle Face_handle_B; 00070 typedef typename ArrangementR::Face_handle Face_handle_R; 00071 00072 typedef OverlayFaceData_ Overlay_face_data; 00073 00074 private: 00075 00076 Overlay_face_data overlay_face_data; 00077 00078 public: 00079 00083 virtual void create_face (Face_handle_A f1, 00084 Face_handle_B f2, 00085 Face_handle_R f) const 00086 { 00087 // Overlay the data objects associated with f1 and f2 and store the result 00088 // with f. 00089 f->set_data (overlay_face_data (f1->data(), f2->data())); 00090 return; 00091 } 00092 00093 }; 00094 00095 CGAL_END_NAMESPACE 00096 00097 #endif