// Copyright (c) 2005,2006,2007,2008,2009,2010,2011 Tel-Aviv University (Israel). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v5.1/Arrangement_on_surface_2/include/CGAL/Arr_default_overlay_traits.h $ // $Id: Arr_default_overlay_traits.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Ron Wein // Baruch Zukerman #ifndef CGAL_ARR_DEFAULT_OVERLAY_TRAITS_H #define CGAL_ARR_DEFAULT_OVERLAY_TRAITS_H #include #include /*! \file * * Definition of default overlay-traits classes. */ #include #include #include namespace CGAL { /*! \class * * An overlay-traits class for computing the overlay of two arrangement that * are templated with the default DCEL classes, namely they store no extra * data with their DCEL features. The resulting arrangement is also assumed * to be templated with the default DCEL. */ template class Arr_default_overlay_traits : public _Arr_default_overlay_traits_base {}; /*! \class * * An overlay-traits class for computing the overlay of two arrangement whose * face records are extended with auxiliary data fields, of type Data1 and * Data2, respectively. The resulting arrangement is also assumed to be * templated with the face-extended DCEL, where each face stores an auxiliary * Res_data field. * The resulting data object that corresponds to the overlay of two data * object of type Data1 and Data2 is computed using the functor * Overlay_face_data. */ template class Arr_face_overlay_traits : public _Arr_default_overlay_traits_base { public: typedef typename ArrangementA::Face_const_handle Face_handle_A; typedef typename ArrangementB::Face_const_handle Face_handle_B; typedef typename ArrangementR::Face_handle Face_handle_R; typedef OverlayFaceData_ Overlay_face_data; private: Overlay_face_data overlay_face_data; public: /*! Create a face f that matches the overlapping region between f1 and f2. */ virtual void create_face(Face_handle_A f1, Face_handle_B f2, Face_handle_R f) const { // Overlay the data objects associated with f1 and f2 and store the result // with f. f->set_data (overlay_face_data (f1->data(), f2->data())); return; } }; } //namespace CGAL #include #endif