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