added Gps_default_dcel and GeneralPolygonSetDcel

This commit is contained in:
Efi Fogel 2007-01-14 10:18:51 +00:00
parent 4238833890
commit 07e8371450
5 changed files with 100 additions and 3 deletions

View File

@ -0,0 +1,51 @@
\ccRefPageBegin
\begin{ccRefConcept}{GeneralPolygonSetDcel}
A doubly-connected edge-list (\dcel\ for short) data-structure. It consists
of three containers of records: vertices $V$, halfedges $E$, and faces $F$.
It maintains the incidence relation among them. The halfedges are ordered
in pairs sometimes referred to as twins, such that each halfedge pair
represent an edge.
A model of the \ccRefName\ concept must provide the following types and
operations. (In addition to the requirements here, the local types
\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
%=======
\ccCreation
\ccCreationVariable{dcel}
%========================
\ccConstructor{Gps_dcel();}
{constructs an empty \dcel.}
% \ccAccessFunctions
%=================
% \ccModifiers
\ccHasModels
\ccc{Gps_default_dcel<Traits>}\lcTex{
(\ccRefPage{CGAL::Gps_default_dcel<Traits>})}
\ccSeeAlso
\ccc{ArrangementDcel}\lcTex{(\ccRefPage{ArrangementDcel})}
\end{ccRefConcept}
\ccRefPageEnd

View File

@ -2,7 +2,7 @@
\begin{ccRefClass}{General_polygon_set_2<Traits>} \begin{ccRefClass}{General_polygon_set_2<Traits>}
\ccThree{General_polygon_set_2<Traits>}{Polygon_2}{} \ccThree{General_polygon_set_2<Traits,Dcel>}{Polygon_2}{}
\ccThreeToTwo \ccThreeToTwo
\ccDefinition \ccDefinition
@ -12,7 +12,8 @@ point set in the plane bounded by $x$ monotone curves. Points in the set
lie on the boundary or on the positive side of the curves. This class lie on the boundary or on the positive side of the curves. This class
template provides methods to apply regularized Boolean set-operations and template provides methods to apply regularized Boolean set-operations and
few other utility methods. An \ccc{Arrangement_2} data structure is few other utility methods. An \ccc{Arrangement_2} data structure is
internally used to represent the point set. internally used to represent the point set. The arrangement is
represented as a doubly-connected edge-list ({\sc Dcel}).
The \ccc{Traits} template-parameter should be instantiated with a The \ccc{Traits} template-parameter should be instantiated with a
model of the concept \ccc{GeneralPolygonSetTraits_2}. The traits class model of the concept \ccc{GeneralPolygonSetTraits_2}. The traits class
@ -26,6 +27,14 @@ 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
model of the concept \ccc{GeneralPolygonSetDcel_2}. It is instantiated
by default with the type \ccc{Gps_dcel<Traits>}. You can override this
default, with a {\sc Dcel} class you provide, typically an extension
of the \ccc{Gps_dcel} class template. Overriding the default is needed
only if you intend to obtain the undelying arrangement 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,
these methods operate on pairs of objects of type \ccClassTemplateName, or these methods operate on pairs of objects of type \ccClassTemplateName, or

View File

@ -0,0 +1,34 @@
\ccRefPageBegin
\begin{ccRefClass}{Gps_default_dcel<Traits>}
\ccDefinition
%============
The class \ccRefName\ is the default \dcel\ class used by the
\ccc{General_polygon_set_2} (and \ccc{Polygon_set_2}) class-templates
to represent the undelying \ccc{Arrangement_2} data structure.
\ccInclude{CGAL/Gps_default_dcel.h}
\ccIsModel
\ccc{GeneralPolygonSetDcel}
\ccInheritsFrom
\begin{tabbing}
\ccc{Arr_dcel_base<}\=\ccc{Arr_vertex_base<typename Traits_::Point_2>,} \\
\>\ccc{Arr_halfedge_base<typename Traits_::X_monotone_curve_2>,}\\
\>\ccc{Gps_face_base>}
\end{tabbing}
\ccTypes
\ccNestedType{template <class T> rebind}
{allows the rebinding of the \dcel\ with a different traits class \ccc{T}.}
\ccSeeAlso
\ccc{Arr_dcel_base<V,H,F>}\lcTex{(\ccRefPage{CGAL::Arr_dcel_base<V,H,F>})}
\end{ccRefClass}
\ccRefPageEnd

View File

@ -26,6 +26,7 @@ containment predicates.
\ccRefConceptPage{GeneralPolygonWithHoles_2}\\ \ccRefConceptPage{GeneralPolygonWithHoles_2}\\
\ccRefConceptPage{ArrangementDirectionalXMonotoneTraits_2}\\ \ccRefConceptPage{ArrangementDirectionalXMonotoneTraits_2}\\
\ccRefConceptPage{GeneralPolygonSetTraits_2} \ccRefConceptPage{GeneralPolygonSetTraits_2}
\ccRefConceptPage{GeneralPolygonSetDcel}
\subsection*{Classes} \subsection*{Classes}
@ -36,7 +37,8 @@ containment predicates.
\ccRefIdfierPage{CGAL::General_polygon_with_holes_2<Polygon>}\\ \ccRefIdfierPage{CGAL::General_polygon_with_holes_2<Polygon>}\\
\ccRefIdfierPage{CGAL::Gps_segment_traits_2<Kernel,Container,ArrSegmentTraits>}\\ \ccRefIdfierPage{CGAL::Gps_segment_traits_2<Kernel,Container,ArrSegmentTraits>}\\
\ccRefIdfierPage{CGAL::Gps_circle_segment_traits_2<Kernel>}\\ \ccRefIdfierPage{CGAL::Gps_circle_segment_traits_2<Kernel>}\\
\ccRefIdfierPage{CGAL::Gps_traits_2<ArrTraits,GeneralPolygon>} \ccRefIdfierPage{CGAL::Gps_traits_2<ArrTraits,GeneralPolygon>}\\
\ccRefIdfierPage{CGAL::Gps_default_dcel<Traits>}
\subsection*{Functions} \subsection*{Functions}

View File

@ -31,6 +31,7 @@
\input{Boolean_set_operations_2_ref/Gps_segment_traits_2.tex} \input{Boolean_set_operations_2_ref/Gps_segment_traits_2.tex}
\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/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}