mirror of https://github.com/CGAL/cgal
Added Dcel as a template parameter to General_polygon_set_2 and Polygon_set_2
This commit is contained in:
parent
07e8371450
commit
c11f6590ae
|
|
@ -2,27 +2,23 @@
|
||||||
|
|
||||||
\begin{ccRefConcept}{GeneralPolygonSetDcel}
|
\begin{ccRefConcept}{GeneralPolygonSetDcel}
|
||||||
|
|
||||||
A doubly-connected edge-list (\dcel\ for short) data-structure. It consists
|
\ccDefinition
|
||||||
of three containers of records: vertices $V$, halfedges $E$, and faces $F$.
|
% ===========
|
||||||
It maintains the incidence relation among them. The halfedges are ordered
|
The concept \ccRefName{} refines the corresponding arrangemen-\dcel{}
|
||||||
in pairs sometimes referred to as twins, such that each halfedge pair
|
concept \ccc{ArrangemenDcel}. A model of this concept must provide the
|
||||||
represent an edge.
|
types \ccStyle{Vertex}, \ccStyle{Halfedge}, \ccStyle{Face},
|
||||||
|
\ccStyle{Hole}, and \ccStyle{Isolated_vertex}, which must model the
|
||||||
|
concepts
|
||||||
|
\ccc{ArrangementDcelVertex},
|
||||||
|
\ccc{ArrangementDcelHalfedge},
|
||||||
|
\ccc{GeneralPolygonSetDcelFace},
|
||||||
|
\ccc{ArrangementDcelHole}, and
|
||||||
|
\ccc{ArrangementDcelIsolatedVertex} respectively.
|
||||||
|
Notice that this concept differs from the base concept \ccc{ArrangemenDcel}
|
||||||
|
only in the type \ccStyle{Face}.
|
||||||
|
|
||||||
A model of the \ccRefName\ concept must provide the following types and
|
\ccRefines
|
||||||
operations. (In addition to the requirements here, the local types
|
\ccc{ArrangementDcel}
|
||||||
\ccHtmlNoLinksFrom{\ccStyle{Vertex},\ccStyle{Halfedge}, \ccStyle{Face}
|
|
||||||
\ccStyle{Hole} and \ccStyle{Isolated_vertex}}
|
|
||||||
must be models of the concepts
|
|
||||||
\ccc{ArrangementDcelVertex}\lcTex{
|
|
||||||
(\ccRefPage{ArrangementDcelVertex})},
|
|
||||||
\ccc{ArrangementDcelHalfedge}\lcTex{
|
|
||||||
(\ccRefPage{ArrangementDcelHalfedge})},
|
|
||||||
\ccc{ArrangementDcelFace}\lcTex{
|
|
||||||
(\ccRefPage{ArrangementDcelFace})},
|
|
||||||
\ccc{ArrangementDcelHole}\lcTex{
|
|
||||||
(\ccRefPage{ArrangementDcelHole})} and
|
|
||||||
\ccc{ArrangementDcelIsolatedVertex}\lcTex{
|
|
||||||
(\ccRefPage{ArrangementDcelIsolatedVertex})} respectively.)
|
|
||||||
|
|
||||||
% \ccTypes
|
% \ccTypes
|
||||||
%=======
|
%=======
|
||||||
|
|
@ -42,9 +38,6 @@ must be models of the concepts
|
||||||
\ccc{Gps_default_dcel<Traits>}\lcTex{
|
\ccc{Gps_default_dcel<Traits>}\lcTex{
|
||||||
(\ccRefPage{CGAL::Gps_default_dcel<Traits>})}
|
(\ccRefPage{CGAL::Gps_default_dcel<Traits>})}
|
||||||
|
|
||||||
\ccSeeAlso
|
|
||||||
\ccc{ArrangementDcel}\lcTex{(\ccRefPage{ArrangementDcel})}
|
|
||||||
|
|
||||||
\end{ccRefConcept}
|
\end{ccRefConcept}
|
||||||
|
|
||||||
\ccRefPageEnd
|
\ccRefPageEnd
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
\ccRefPageBegin
|
||||||
|
|
||||||
|
\begin{ccRefConcept}{GeneralPolygonSetDcelFace}
|
||||||
|
|
||||||
|
\ccDefinition
|
||||||
|
% ===========
|
||||||
|
A face record in a \dcel{} data structure used by the
|
||||||
|
\ccc{General_polygon_set_2} and \ccc{Polygon_set_2} class-templates
|
||||||
|
to represent the undelying internal \ccc{Arrangement_2} data structure.
|
||||||
|
|
||||||
|
\ccRefines
|
||||||
|
\ccc{ArrangementDcelFace}
|
||||||
|
|
||||||
|
% \ccTypes
|
||||||
|
|
||||||
|
\ccCreation
|
||||||
|
\ccCreationVariable{f}
|
||||||
|
% =========
|
||||||
|
\ccConstructor{Gps_dcel_face();}
|
||||||
|
{default constructor.}
|
||||||
|
|
||||||
|
\ccMethod{void assign (const Self& other);}
|
||||||
|
{assigns \ccVar{} with the contents of the \ccc{other} face.}
|
||||||
|
|
||||||
|
\ccHtmlNoLinksFrom{ % to avoid linkage of Vertex, etc to HDS::Vertex
|
||||||
|
|
||||||
|
\ccAccessFunctions
|
||||||
|
% ================
|
||||||
|
\ccMethod{bool contained() const;}{%
|
||||||
|
returns \ccc{true} if the face is contained in the general-polygon set,
|
||||||
|
and \ccc{false} otherwise.}
|
||||||
|
|
||||||
|
\ccMethod{bool visited();}{%
|
||||||
|
returns \ccc{true} if the face has been visited, and \ccc{false} otherwise.
|
||||||
|
This is used internally by the some of the operations of the
|
||||||
|
\ccc{General_polygon_set_2} class that traverse the arrangement faces.}
|
||||||
|
|
||||||
|
\ccModifiers
|
||||||
|
% ==========
|
||||||
|
\ccMethod{void set_contained(bool flag);}{%
|
||||||
|
marks the face as contained (if \ccc{flag} is \ccc{true}), or as a hole
|
||||||
|
(if it is \ccc{false}).}
|
||||||
|
|
||||||
|
\ccMethod{void set_visited(bool flag);}
|
||||||
|
{marks the face as visited (if \ccc{flag} is \ccc{true}), or as not visited
|
||||||
|
(if it is \ccc{false}). This is used internally by the some of the
|
||||||
|
operations of the \ccc{General_polygon_set_2} class that traverse the
|
||||||
|
arrangement faces..}
|
||||||
|
|
||||||
|
} % ccHtmlNoLinksFrom
|
||||||
|
|
||||||
|
\ccSeeAlso
|
||||||
|
|
||||||
|
\ccc{ArrangementDcel}\lcTex{(\ccRefPage{ArrangementDcel})}\\
|
||||||
|
\ccc{ArrangementDcelVertex}\lcTex{(\ccRefPage{ArrangementDcelVertex})}\\
|
||||||
|
\ccc{ArrangementDcelHalfedge}\lcTex{(\ccRefPage{ArrangementDcelHalfedge})}
|
||||||
|
|
||||||
|
\end{ccRefConcept}
|
||||||
|
|
||||||
|
\ccRefPageEnd
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
\ccRefPageBegin
|
\ccRefPageBegin
|
||||||
|
|
||||||
\begin{ccRefClass}{General_polygon_set_2<Traits>}
|
\begin{ccRefClass}{General_polygon_set_2<Traits,Dcel>}
|
||||||
|
|
||||||
\ccThree{General_polygon_set_2<Traits,Dcel>}{Polygon_2}{}
|
\ccThree{General_polygon_set_2<Traits,Dcel>}{Polygon_2}{}
|
||||||
\ccThreeToTwo
|
\ccThreeToTwo
|
||||||
|
|
@ -27,13 +27,13 @@ the boundaries of the general polygons. The traits class supports geometric
|
||||||
operations on the types above. We sometimes use the term {\em polygon} instead
|
operations on the types above. We sometimes use the term {\em polygon} instead
|
||||||
of general polygon for simplicity hereafter.
|
of general polygon for simplicity hereafter.
|
||||||
|
|
||||||
The \ccc{Dcel} template-parameter should be instantiated with a
|
The template parameter \ccc{Dcel} should be instantiated with a
|
||||||
model of the concept \ccc{GeneralPolygonSetDcel_2}. It is instantiated
|
model of the concept \ccc{GeneralPolygonSetDcel}. It is instantiated
|
||||||
by default with the type \ccc{Gps_dcel<Traits>}. You can override this
|
by default with the type \ccc{Gps_default_dcel<Traits>}. You can override
|
||||||
default, with a {\sc Dcel} class you provide, typically an extension
|
this default, with a different {\sc Dcel} class, typically an extension
|
||||||
of the \ccc{Gps_dcel} class template. Overriding the default is needed
|
of the \ccc{Gps_default_dcel} class template. Overriding the default is
|
||||||
only if you intend to obtain the undelying arrangement and process it
|
necessary only if you intend to obtain the undelying internal arrangement
|
||||||
further.
|
and process it further.
|
||||||
|
|
||||||
The input and output of the Boolean set-operations methods consist of one
|
The input and output of the Boolean set-operations methods consist of one
|
||||||
or more general polygons, some of which may have holes. In particular,
|
or more general polygons, some of which may have holes. In particular,
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
|
|
||||||
\ccDefinition
|
\ccDefinition
|
||||||
%============
|
%============
|
||||||
The class \ccRefName\ is the default \dcel\ class used by the
|
The class \ccRefName\ is the default \dcel{} class used by the
|
||||||
\ccc{General_polygon_set_2} (and \ccc{Polygon_set_2}) class-templates
|
\ccc{General_polygon_set_2} and \ccc{Polygon_set_2} class-templates
|
||||||
to represent the undelying \ccc{Arrangement_2} data structure.
|
to represent the undelying internal \ccc{Arrangement_2} data structure.
|
||||||
|
|
||||||
\ccInclude{CGAL/Gps_default_dcel.h}
|
\ccInclude{CGAL/Gps_default_dcel.h}
|
||||||
|
|
||||||
|
|
@ -25,9 +25,7 @@ to represent the undelying \ccc{Arrangement_2} data structure.
|
||||||
\ccNestedType{template <class T> rebind}
|
\ccNestedType{template <class T> rebind}
|
||||||
{allows the rebinding of the \dcel\ with a different traits class \ccc{T}.}
|
{allows the rebinding of the \dcel\ with a different traits class \ccc{T}.}
|
||||||
|
|
||||||
\ccSeeAlso
|
% \ccSeeAlso
|
||||||
|
|
||||||
\ccc{Arr_dcel_base<V,H,F>}\lcTex{(\ccRefPage{CGAL::Arr_dcel_base<V,H,F>})}
|
|
||||||
|
|
||||||
\end{ccRefClass}
|
\end{ccRefClass}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,27 @@
|
||||||
\ccRefPageBegin
|
\ccRefPageBegin
|
||||||
|
|
||||||
\begin{ccRefClass}{Polygon_set_2<Kernel,Container>}
|
\begin{ccRefClass}{Polygon_set_2<Kernel,Container,Dcel>}
|
||||||
|
|
||||||
\ccThree{Polygon_set_2<Kernel,Container>}{Polygon_2}{}
|
\ccThree{Polygon_set_2<Kernel,Container,Dcel>}{Polygon_2}{}
|
||||||
\ccThreeToTwo
|
\ccThreeToTwo
|
||||||
|
|
||||||
\ccDefinition
|
\ccDefinition
|
||||||
%============
|
%============
|
||||||
|
|
||||||
The class \ccRefName\ represents sets of linear polygons with holes.
|
The class \ccRefName{} represents sets of linear polygons with holes.
|
||||||
It is parameterized with two types (\ccc{Kernel} and \ccc{Container}) that
|
It is parameterized with three types. The types (\ccc{Kernel} and
|
||||||
are used to instantiate the type \ccc{CGAL::Polygon_2<Kernel,Container>}.
|
\ccc{Container}) are used to instantiate the type
|
||||||
The latter is used to represents the outer boundary and the boundary of the
|
\ccc{CGAL::Polygon_2<Kernel,Container>}. The type \ccc{Container} is used
|
||||||
holes of the set members.
|
to represents the outer boundary and the boundary of the holes of the set
|
||||||
|
members.
|
||||||
|
|
||||||
|
The \ccc{Dcel} template-parameter should be instantiated with a
|
||||||
|
model of the concept \ccc{GeneralPolygonSetDcel}. It is instantiated
|
||||||
|
by default with the type \ccc{Gps_default_dcel<Traits>}. You can override
|
||||||
|
this default, with a different {\sc Dcel} class, typically an extension
|
||||||
|
of the \ccc{Gps_default_dcel} class template. Overriding the default is
|
||||||
|
necessary only if you intend to obtain the undelying internal arrangement
|
||||||
|
and process it further.
|
||||||
|
|
||||||
\ccInclude{CGAL/Polygon_set_2.h}
|
\ccInclude{CGAL/Polygon_set_2.h}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,9 @@ containment predicates.
|
||||||
\ccRefConceptPage{GeneralPolygon_2}\\
|
\ccRefConceptPage{GeneralPolygon_2}\\
|
||||||
\ccRefConceptPage{GeneralPolygonWithHoles_2}\\
|
\ccRefConceptPage{GeneralPolygonWithHoles_2}\\
|
||||||
\ccRefConceptPage{ArrangementDirectionalXMonotoneTraits_2}\\
|
\ccRefConceptPage{ArrangementDirectionalXMonotoneTraits_2}\\
|
||||||
\ccRefConceptPage{GeneralPolygonSetTraits_2}
|
\ccRefConceptPage{GeneralPolygonSetTraits_2}\\
|
||||||
\ccRefConceptPage{GeneralPolygonSetDcel}
|
\ccRefConceptPage{GeneralPolygonSetDcel}\\
|
||||||
|
\ccRefConceptPage{GeneralPolygonSetDcelFace}
|
||||||
|
|
||||||
\subsection*{Classes}
|
\subsection*{Classes}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,8 @@
|
||||||
\input{Boolean_set_operations_2_ref/Gps_circle_segment_traits_2.tex}
|
\input{Boolean_set_operations_2_ref/Gps_circle_segment_traits_2.tex}
|
||||||
\input{Boolean_set_operations_2_ref/Gps_traits_2.tex}
|
\input{Boolean_set_operations_2_ref/Gps_traits_2.tex}
|
||||||
\input{Boolean_set_operations_2_ref/Gps_default_dcel.tex}
|
\input{Boolean_set_operations_2_ref/Gps_default_dcel.tex}
|
||||||
|
\input{Boolean_set_operations_2_ref/GeneralPolygonSetDcel}
|
||||||
|
\input{Boolean_set_operations_2_ref/GeneralPolygonSetDcelFace}
|
||||||
\input{Boolean_set_operations_2_ref/Bso_complement.tex}
|
\input{Boolean_set_operations_2_ref/Bso_complement.tex}
|
||||||
\input{Boolean_set_operations_2_ref/Bso_difference.tex}
|
\input{Boolean_set_operations_2_ref/Bso_difference.tex}
|
||||||
\input{Boolean_set_operations_2_ref/Bso_do_intersect.tex}
|
\input{Boolean_set_operations_2_ref/Bso_do_intersect.tex}
|
||||||
|
|
|
||||||
|
|
@ -16,18 +16,24 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Author(s) : Baruch Zukerman <baruchzu@post.tau.ac.il>
|
// Author(s) : Baruch Zukerman <baruchzu@post.tau.ac.il>
|
||||||
|
// Efi Fogel <efif@post.tau.ac.il>
|
||||||
|
|
||||||
#ifndef CGAL_GPS_DCEL_H
|
#ifndef CGAL_GPS_DEFAULT_DCEL_H
|
||||||
#define CGAL_GPS_DCEL_H
|
#define CGAL_GPS_DEFAULT_DCEL_H
|
||||||
|
|
||||||
|
/*! \file
|
||||||
|
* This class is the default \dcel{} class used by the General_polygon_set_2
|
||||||
|
* and Polygon_set_2} class-templates to represent the undelying internal
|
||||||
|
* Arrangement_2 data structure.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <CGAL/Arr_default_dcel.h>
|
#include <CGAL/Arr_default_dcel.h>
|
||||||
|
|
||||||
CGAL_BEGIN_NAMESPACE
|
CGAL_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
class Gps_face_base : public Arr_face_base
|
||||||
class Gps_face : public Arr_face_base
|
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
mutable char m_info;
|
mutable char m_info;
|
||||||
|
|
||||||
enum
|
enum
|
||||||
|
|
@ -38,11 +44,10 @@ class Gps_face : public Arr_face_base
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
||||||
//Constructor
|
//Constructor
|
||||||
Gps_face() : Arr_face_base(),
|
Gps_face_base() :
|
||||||
m_info(0)
|
Arr_face_base(),
|
||||||
|
m_info(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
/*! Assign from another face. */
|
/*! Assign from another face. */
|
||||||
|
|
@ -50,7 +55,7 @@ public:
|
||||||
{
|
{
|
||||||
Arr_face_base::assign (f);
|
Arr_face_base::assign (f);
|
||||||
|
|
||||||
const Gps_face& ex_f = static_cast<const Gps_face&>(f);
|
const Gps_face_base & ex_f = static_cast<const Gps_face_base&>(f);
|
||||||
m_info = ex_f.m_info;
|
m_info = ex_f.m_info;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -61,7 +66,7 @@ public:
|
||||||
|
|
||||||
void set_contained(bool b)
|
void set_contained(bool b)
|
||||||
{
|
{
|
||||||
if(b)
|
if (b)
|
||||||
m_info |= CONTAINED;
|
m_info |= CONTAINED;
|
||||||
else
|
else
|
||||||
m_info &= ~CONTAINED;
|
m_info &= ~CONTAINED;
|
||||||
|
|
@ -74,7 +79,7 @@ public:
|
||||||
|
|
||||||
void set_visited(bool b) const
|
void set_visited(bool b) const
|
||||||
{
|
{
|
||||||
if(b)
|
if (b)
|
||||||
m_info |= VISITED;
|
m_info |= VISITED;
|
||||||
else
|
else
|
||||||
m_info &= ~VISITED;
|
m_info &= ~VISITED;
|
||||||
|
|
@ -84,16 +89,14 @@ public:
|
||||||
|
|
||||||
|
|
||||||
template <class Traits_>
|
template <class Traits_>
|
||||||
class Gps_dcel :
|
class Gps_default_dcel :
|
||||||
public Arr_dcel_base<Arr_vertex_base<typename Traits_::Point_2>,
|
public Arr_dcel_base<Arr_vertex_base<typename Traits_::Point_2>,
|
||||||
Arr_halfedge_base<typename Traits_::X_monotone_curve_2>,
|
Arr_halfedge_base<typename Traits_::X_monotone_curve_2>,
|
||||||
Gps_face>
|
Gps_face_base>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/*! Default constructor. */
|
/*! Default constructor. */
|
||||||
Gps_dcel()
|
Gps_default_dcel() {}
|
||||||
{}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -16,6 +16,7 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// Author(s) : Baruch Zukerman <baruchzu@post.tau.ac.il>
|
// Author(s) : Baruch Zukerman <baruchzu@post.tau.ac.il>
|
||||||
|
// Efi Fogel <efif@post.tau.ac.il>
|
||||||
|
|
||||||
#ifndef CGAL_GPS_UTILS_H
|
#ifndef CGAL_GPS_UTILS_H
|
||||||
#define CGAL_GPS_UTILS_H
|
#define CGAL_GPS_UTILS_H
|
||||||
|
|
@ -25,8 +26,8 @@
|
||||||
#include <CGAL/function_objects.h>
|
#include <CGAL/function_objects.h>
|
||||||
#include <CGAL/circulator.h>
|
#include <CGAL/circulator.h>
|
||||||
#include <CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h>
|
#include <CGAL/Boolean_set_operations_2/Gps_bfs_scanner.h>
|
||||||
#include <CGAL/Boolean_set_operations_2/Gps_dcel.h>
|
|
||||||
#include <CGAL/Arr_accessor.h>
|
#include <CGAL/Arr_accessor.h>
|
||||||
|
|
||||||
#include <queue>
|
#include <queue>
|
||||||
|
|
||||||
template <class Traits_, class Dcel_>
|
template <class Traits_, class Dcel_>
|
||||||
|
|
@ -47,7 +48,7 @@ class Arr_bfs_scanner
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef typename Arrangement::Traits_2 Gps_traits;
|
typedef typename Arrangement::Traits_2 Gps_traits;
|
||||||
typedef typename Arrangement::Dcel My_gps_dcel;
|
typedef typename Arrangement::Dcel Gps_dcel;
|
||||||
typedef typename Gps_traits::Polygon_2 Polygon_2;
|
typedef typename Gps_traits::Polygon_2 Polygon_2;
|
||||||
typedef typename Gps_traits::Polygon_with_holes_2 Polygon_with_holes_2;
|
typedef typename Gps_traits::Polygon_with_holes_2 Polygon_with_holes_2;
|
||||||
typedef typename Arrangement::Ccb_halfedge_const_circulator
|
typedef typename Arrangement::Ccb_halfedge_const_circulator
|
||||||
|
|
@ -121,7 +122,7 @@ public:
|
||||||
void scan_ccb(Ccb_halfedge_const_circulator ccb)
|
void scan_ccb(Ccb_halfedge_const_circulator ccb)
|
||||||
{
|
{
|
||||||
Polygon_2 pgn_boundary;
|
Polygon_2 pgn_boundary;
|
||||||
General_polygon_set_2<Gps_traits, My_gps_dcel>::
|
General_polygon_set_2<Gps_traits, Gps_dcel>::
|
||||||
construct_polygon(ccb, pgn_boundary, m_traits);
|
construct_polygon(ccb, pgn_boundary, m_traits);
|
||||||
|
|
||||||
Ccb_halfedge_const_circulator ccb_end = ccb;
|
Ccb_halfedge_const_circulator ccb_end = ccb;
|
||||||
|
|
@ -165,7 +166,7 @@ public:
|
||||||
if (!f->contained())
|
if (!f->contained())
|
||||||
{
|
{
|
||||||
m_pgn_holes.push_back(Polygon_2());
|
m_pgn_holes.push_back(Polygon_2());
|
||||||
General_polygon_set_2<Gps_traits, My_gps_dcel>::
|
General_polygon_set_2<Gps_traits, Gps_dcel>::
|
||||||
construct_polygon(f->outer_ccb(), m_pgn_holes.back(), m_traits);
|
construct_polygon(f->outer_ccb(), m_pgn_holes.back(), m_traits);
|
||||||
m_holes_q.push(f);
|
m_holes_q.push(f);
|
||||||
}
|
}
|
||||||
|
|
@ -199,7 +200,7 @@ public:
|
||||||
CGAL_assertion(!he->twin()->face()->contained());
|
CGAL_assertion(!he->twin()->face()->contained());
|
||||||
|
|
||||||
m_pgn_holes.push_back(Polygon_2());
|
m_pgn_holes.push_back(Polygon_2());
|
||||||
General_polygon_set_2<Gps_traits, My_gps_dcel>::
|
General_polygon_set_2<Gps_traits, Gps_dcel>::
|
||||||
construct_polygon(he->twin()->face()->outer_ccb(),
|
construct_polygon(he->twin()->face()->outer_ccb(),
|
||||||
m_pgn_holes.back(), m_traits);
|
m_pgn_holes.back(), m_traits);
|
||||||
m_holes_q.push(he->twin()->face());
|
m_holes_q.push(he->twin()->face());
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
#include <CGAL/Arr_walk_along_line_point_location.h>
|
#include <CGAL/Arr_walk_along_line_point_location.h>
|
||||||
|
|
||||||
#include <CGAL/Arr_overlay.h>
|
#include <CGAL/Arr_overlay.h>
|
||||||
#include <CGAL/Boolean_set_operations_2/Gps_dcel.h>
|
#include <CGAL/Boolean_set_operations_2/Gps_default_dcel.h>
|
||||||
#include <CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h>
|
#include <CGAL/Boolean_set_operations_2/Gps_do_intersect_functor.h>
|
||||||
#include <CGAL/Boolean_set_operations_2/Gps_intersection_functor.h>
|
#include <CGAL/Boolean_set_operations_2/Gps_intersection_functor.h>
|
||||||
#include <CGAL/Boolean_set_operations_2/Gps_join_functor.h>
|
#include <CGAL/Boolean_set_operations_2/Gps_join_functor.h>
|
||||||
|
|
@ -43,7 +43,7 @@
|
||||||
CGAL_BEGIN_NAMESPACE
|
CGAL_BEGIN_NAMESPACE
|
||||||
|
|
||||||
// General_polygon_set_2
|
// General_polygon_set_2
|
||||||
template <class Traits_, class Dcel_ = Gps_dcel<Traits_> >
|
template <class Traits_, class Dcel_ = Gps_default_dcel<Traits_> >
|
||||||
class General_polygon_set_2
|
class General_polygon_set_2
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
#include <CGAL/Polygon_2.h>
|
#include <CGAL/Polygon_2.h>
|
||||||
#include <CGAL/General_polygon_set_2.h>
|
#include <CGAL/General_polygon_set_2.h>
|
||||||
#include <CGAL/Gps_segment_traits_2.h>
|
#include <CGAL/Gps_segment_traits_2.h>
|
||||||
#include <CGAL/Boolean_set_operations_2/Gps_dcel.h>
|
#include <CGAL/Boolean_set_operations_2/Gps_default_dcel.h>
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
|
@ -32,7 +32,8 @@ CGAL_BEGIN_NAMESPACE
|
||||||
|
|
||||||
template <class Kernel,
|
template <class Kernel,
|
||||||
typename Containter = std::vector<typename Kernel::Point_2>,
|
typename Containter = std::vector<typename Kernel::Point_2>,
|
||||||
class Dcel_ = Gps_dcel<Gps_segment_traits_2<Kernel, Containter> > >
|
class Dcel_ =
|
||||||
|
Gps_default_dcel<Gps_segment_traits_2<Kernel, Containter> > >
|
||||||
class Polygon_set_2 :
|
class Polygon_set_2 :
|
||||||
public General_polygon_set_2<Gps_segment_traits_2<Kernel, Containter>, Dcel_>
|
public General_polygon_set_2<Gps_segment_traits_2<Kernel, Containter>, Dcel_>
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue