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