1 // Copyright (c) 2005-2008 Fernando Luis Cacciola Carballal. All rights reserved. 2 // 3 // This file is part of CGAL (www.cgal.org). 4 // 5 // $URL: https://github.com/CGAL/cgal/blob/v5.3/Straight_skeleton_2/include/CGAL/Straight_skeleton_face_base_2.h $ 6 // $Id: Straight_skeleton_face_base_2.h 0779373 2020-03-26T13:31:46+01:00 Sébastien Loriot 7 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial 8 // 9 // Author(s) : Fernando Cacciola <fernando_cacciola@ciudad.com.ar> 10 // 11 #ifndef CGAL_STRAIGHT_SKELETON_FACE_BASE_2_H 12 #define CGAL_STRAIGHT_SKELETON_FACE_BASE_2_H 1 13 14 #include <CGAL/license/Straight_skeleton_2.h> 15 16 17 #include <CGAL/tags.h> 18 #include <CGAL/Kernel_traits.h> 19 20 namespace CGAL { 21 22 template <class Refs> 23 class Straight_skeleton_face_base_base_2 24 { 25 public: 26 27 typedef Straight_skeleton_face_base_base_2<Refs> Base; 28 29 typedef Refs HalfedgeDS; 30 typedef Tag_true Supports_face_halfedge; 31 typedef typename Refs::Vertex_handle Vertex_handle; 32 typedef typename Refs::Vertex_const_handle Vertex_const_handle; 33 typedef typename Refs::Halfedge_handle Halfedge_handle; 34 typedef typename Refs::Halfedge_const_handle Halfedge_const_handle; 35 typedef typename Refs::Face_handle Face_handle; 36 typedef typename Refs::Face_const_handle Face_const_handle; 37 typedef typename Refs::Vertex Vertex; 38 typedef typename Refs::Halfedge Halfedge; 39 Straight_skeleton_face_base_base_2()40 Straight_skeleton_face_base_base_2() : mID(-1) {} 41 Straight_skeleton_face_base_base_2(int aID)42 Straight_skeleton_face_base_base_2( int aID ) : mID(aID) {} 43 44 public: 45 id()46 int id() const { return mID ; } 47 halfedge()48 Halfedge_handle halfedge() { return mHE; } halfedge()49 Halfedge_const_handle halfedge() const { return mHE; } 50 set_halfedge(Halfedge_handle aHE)51 void set_halfedge( Halfedge_handle aHE ) { mHE = aHE; } 52 reset_id(int aID)53 void reset_id ( int aID ) { mID = aID ; } 54 55 private: 56 57 int mID ; 58 Halfedge_handle mHE; 59 60 }; 61 62 template < class Refs > 63 class Straight_skeleton_face_base_2 : public Straight_skeleton_face_base_base_2<Refs> 64 { 65 public: 66 67 typedef typename Refs::Vertex_handle Vertex_handle; 68 typedef typename Refs::Halfedge_handle Halfedge_handle; 69 typedef typename Refs::Face_handle Face_handle; 70 71 typedef Straight_skeleton_face_base_base_2<Refs> Base ; 72 Straight_skeleton_face_base_2()73 Straight_skeleton_face_base_2() {} 74 Straight_skeleton_face_base_2(int aID)75 Straight_skeleton_face_base_2( int aID ) : Base(aID) {} 76 77 private: 78 set_halfedge(Halfedge_handle aHE)79 void set_halfedge( Halfedge_handle aHE ) { Base::set_halfedge(aHE) ; } reset_id(int aID)80 void reset_id ( int aID ) { Base::reset_id(aID) ; } 81 82 } ; 83 84 } // end namespace CGAL 85 86 #endif // CGAL_STRAIGHT_SKELETON_FACE_BASE_2_H // 87 // EOF // 88 89