improved traits

This commit is contained in:
Efi Fogel 2006-10-24 12:29:19 +00:00
parent 5b41a2a48d
commit cda70cbb64
3 changed files with 53 additions and 46 deletions

View File

@ -1,18 +1,12 @@
% +------------------------------------------------------------------------+
% | Reference manual page: ArrangementTraits.tex
% +------------------------------------------------------------------------+
% |
% | Package: Arrangement_2
% |
% +------------------------------------------------------------------------+
% Reference manual page: ArrangementTraits.tex
% Package: Arrangement_2
\ccRefPageBegin
\begin{ccRefConcept}{ArrangementTraits_2}
\ccDefinition
This refined arrangement-traits concept allows the construction of arrangement
% ===========
The concept \ccRefName{} allows the construction of arrangement
of {\sl general} planar curves. Models of this concept are used
by the free \ccc{insert()} functions of the arrangement package and
by the \ccc{Arrangement_with_history_2} class.
@ -27,20 +21,18 @@ and \ccc{X_monotone_curve_2} types, defined in the basic traits concept).
\ccc{ArrangementXMonotoneTraits_2}
\ccTypes
%=======
% ======
\ccNestedType{Curve_2}{represents a general planar curve.}
\ccHeading{Functor Types}
%========================
% =======================
\ccThree{Compare_y_at_x_2}{}{\hspace*{14cm}}
\ccThreeToTwo
\ccNestedType{Make_x_monotone_2}
{provides the operator (parameterized by the \ccc{OutputIterator} type)~:
\begin{itemize}
\item \ccc{OutputIterator operator() (Curve_2 c, OutputIterator oi)} \\
\item \ccc{OutputIterator operator() (Curve_2 c, OutputIterator oi)}\\
which subdivides the input curve \ccc{c} into $x$-monotone subcurves and
isolated points, and inserts the results into a container through the
given output iterator. The value type of \ccc{OutputIterator} is
@ -49,43 +41,32 @@ and \ccc{X_monotone_curve_2} types, defined in the basic traits concept).
operator returns a past-the-end iterator for the output sequence.
\end{itemize}}
\ccCreation
\ccCreationVariable{traits}
%==========================
\ccThree{Construct_x_monotone_curve_2~~~}{}{\hspace*{7cm}}
\ccThreeToTwo
\ccConstructor{ArrangementTraits_2();}{default constructor.}
\ccGlue
\ccConstructor{ArrangementTraits_2(ArrangementTraits_2 other);}
{copy constructor}
\ccGlue
\ccMethod{ArrangementTraits_2 operator=(other);}{assignment operator.}
\ccCreationVariable{traits}
% \ccCreation
% =========
\ccHeading{Accessing Functor Objects}
%====================================
\ccMethod{Make_x_monotone_2 make_x_monotone_2_object();} {}
% ===================================
\ccMethod{Make_x_monotone_2 make_x_monotone_2_object();}{}
\ccHasModels
%===========
\ccc{CGAL::Arr_segment_traits_2<Kernel>} \\
\ccc{CGAL::Arr_non_caching_segment_traits_2<Kernel>} \\
\ccc{CGAL::Arr_polyline_traits_2<SegmentTraits>} \\
\ccc{CGAL::Arr_circle_segment_traits_2<Kernel>} \\
\ccc{CGAL::Arr_conic_traits_2<RatKernel,AlgKernel,NtTraits>} \\
\ccc{CGAL::Arr_rational_arc_traits_2<AlgKernel,NtTraits>} \\
% ==========
\ccc{CGAL::Arr_segment_traits_2<Kernel>}\\
\ccc{CGAL::Arr_non_caching_segment_traits_2<Kernel>}\\
\ccc{CGAL::Arr_polyline_traits_2<SegmentTraits>}\\
\ccc{CGAL::Arr_circle_segment_traits_2<Kernel>}\\
\ccc{CGAL::Arr_conic_traits_2<RatKernel,AlgKernel,NtTraits>}\\
\ccc{CGAL::Arr_rational_arc_traits_2<AlgKernel,NtTraits>}\\
\ccc{CGAL::Arr_curve_data_traits_2<Tr,XData,Mrg,CData,Cnv>}\\
\ccc{CGAL::Arr_consolidated_curve_data_traits_2<Traits,Data>}
\ccSeeAlso
%=========
% ========
\ccc{ArrangementBasicTraits_2}\lcTex{
(\ccRefPage{ArrangementBasicTraits_2})} \\
(\ccRefPage{ArrangementBasicTraits_2})}\\
\ccc{ArrangementXMonotoneTraits_2}\lcTex{
(\ccRefPage{ArrangementXMonotoneTraits_2})}\\
\ccc{ArrangementLandmarkTraits_2}\lcTex{

View File

@ -9,11 +9,11 @@
\ccDefinition
% ===========
This concept refines the basic arrangement-traits concept. A model of
this concept is able to handle $x$-monotone curves that intersect in
their interior (and points that conincide with curve interiors). This
is necessary for constructing arrangements of sets of intersecting
$x$-monotone curves.
This concept\ccRefName{} refines the basic arrangement-traits concept.
A model of this concept is able to handle $x$-monotone curves that
intersect in their interior (and points that conincide with curve
interiors). This is necessary for constructing arrangements of sets of
intersecting $x$-monotone curves.
As the resulting structure, represented by the \ccc{Arrangement_2} class,
stores pairwise interior-disjoint curves, the input curves are split at
@ -167,7 +167,7 @@ the \ccc{Has_merge_category} tag should be defined as \ccc{Tag_true} (and
\ccMethod{void merge(ArrTraits::X_monotone_curve_2 xc1,
ArrTraits::X_monotone_curve_2 xc2,
ArrTraits::X_monotone_curve_2& xc);}{%
accepts two mergeable $x$-monotone curves \ccc{xc1} and \ccc{xc2}
accepts two {\em mergeable} $x$-monotone curves \ccc{xc1} and \ccc{xc2}
(see definition above), and sets\ccc{xc} to be the merged curve.}
\ccTagDefaults
\end{ccRefConcept}

View File

@ -52,6 +52,32 @@ implemented as peripheral classes or as free (global) functions.
% ~\\
% \ccRefConceptPage{SweepLineVisitor_2}
\subsection*{Geometric Object Concepts}
\ccRefConceptPage{ArrTraits::Point_2}\\
\ccRefConceptPage{ArrTraits::XMonotoneCurve_2}\\
\ccRefConceptPage{ArrTraits::Curve_2}
\subsection*{Function Object Concepts}
\ccRefConceptPage{ArrTraits::CompareX_2}\\
\ccRefConceptPage{ArrTraits::UnboundedCompareX_2}\\
\ccRefConceptPage{ArrTraits::CompareXy_2}\\
\ccRefConceptPage{ArrTraits::InfiniteInX_2}\\
\ccRefConceptPage{ArrTraits::InfiniteInY_2}\\
\ccRefConceptPage{ArrTraits::ConstructMinVertex_2}\\
\ccRefConceptPage{ArrTraits::ConstructMaxVertex_2}\\
\ccRefConceptPage{ArrTraits::IsVertical_2}\\
\ccRefConceptPage{ArrTraits::CompareYAtX_2}\\
\ccRefConceptPage{ArrTraits::UnboundedCompareYAtX_2}\\
\ccRefConceptPage{ArrTraits::CompareYAtXLeft_2}\\
\ccRefConceptPage{ArrTraits::CompareYAtXRight_2}\\
\ccRefConceptPage{ArrTraits::Equal_2}\\
\ccRefConceptPage{ArrTraits::Intersect_2}\\
\ccRefConceptPage{ArrTraits::Split_2}\\
\ccRefConceptPage{ArrTraits::AreMergeable_2}\\
\ccRefConceptPage{ArrTraits::Merge_2}
\subsection*{Classes}
\ccRefIdfierPage{CGAL::Arrangement_2<Traits,Dcel>}\\