From b554f4d4cbee5a54c933eee0413cd2da9cdb3e5d Mon Sep 17 00:00:00 2001 From: Susan Hert Date: Thu, 21 Jun 2001 10:11:08 +0000 Subject: [PATCH] rearranged function signatures and requirements --- .../ConvexHull_ref/convex_hull_3.tex | 50 ++++++++++++------- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/Packages/Convex_hull_3/doc_tex/basic/ConvexHull/ConvexHull_ref/convex_hull_3.tex b/Packages/Convex_hull_3/doc_tex/basic/ConvexHull/ConvexHull_ref/convex_hull_3.tex index 0b656f97afa..c4aeb4b2516 100644 --- a/Packages/Convex_hull_3/doc_tex/basic/ConvexHull/ConvexHull_ref/convex_hull_3.tex +++ b/Packages/Convex_hull_3/doc_tex/basic/ConvexHull/ConvexHull_ref/convex_hull_3.tex @@ -6,8 +6,8 @@ \ccDefinition The function \ccRefName\ computes the convex hull of a given set of -three-dimensional points using the quickhull algorithm of Barnard -\textit{et al.} \cite{bdh-qach-96}. Two versions of this function +three-dimensional points +Two versions of this function are available. The first can be used when it is known that the result will be a polyhedron and the second when a degenerate hull may also be possible. @@ -22,23 +22,12 @@ void convex_hull_3(InputIterator first, InputIterator last, } { computes the convex hull of the set of points in the range -[\ccc{first}, \ccc{last}). The result is stored in \ccc{polyhedron}. +[\ccc{first}, \ccc{last}). The result is stored in \ccc{polyhedron} +and the plane equations of each face are computed. \ccPrecond: There are at least four points in the range [\ccc{first}, \ccc{last}) not all of which are collinear. } -\ccHeading{Requirements} -\begin{enumerate} - \item \ccc{InputIterator::value_type} should be \ccc{Traits::Point_3}. - \item \ccc{Traits} is a model of the concept ConvexHullTraits\_3 - \ccIndexMainItem[c]{ConvexHullTraits_3}. - For the purposes of checking the postcondition that the convex hull - is valid, \ccc{Traits} should also be a model of the concept - IsStronglyConvexTraits\_3. - %\ccIndexMainItem[c]{IsStronglyConvexTraits_3} - \item \ccc{Polyhedron_3} must be a model of ConvexHullPolyhedron\_3. -\end{enumerate} - \ccFunction{ template void convex_hull_3(InputIterator first, InputIterator last, @@ -48,13 +37,32 @@ void convex_hull_3(InputIterator first, InputIterator last, { computes the convex hull of the set of points in the range [\ccc{first}, \ccc{last}). The result, which may be a point, a segment, -a triangle, or a polyhedron, is stored in \ccc{ch_object}. +a triangle, or a polyhedron, is stored in \ccc{ch_object}. When +the result is a polyhedron, the plane equations of each face are computed. } \ccHeading{Requirements} -In addition to the first two requirements listed above, \ccc{Traits} must -define a type \ccc{Polyhedron_3} that is a model of ConvexHullPolyhedron\_3 -for this version of the function. +Both functions require the following: +\begin{enumerate} + \item \ccc{InputIterator::value_type} is equivalent to \ccc{Traits::Point_3}. + \item \ccc{Traits} is a model of the concept ConvexHullTraits\_3 + \ccIndexMainItem[c]{ConvexHullTraits_3}. + For the purposes of checking the postcondition that the convex hull + is valid, \ccc{Traits} should also be a model of the concept + IsStronglyConvexTraits\_3. + %\ccIndexMainItem[c]{IsStronglyConvexTraits_3} +\end{enumerate} + +Both functions have an additional requirement for the polyhedron that is +to be constructed. For the first version this is that: +\begin{itemize} + \item \ccc{Polyhedron_3} is a model of ConvexHullPolyhedron\_3, +\end{itemize} +and for the second, it is required that +\begin{itemize} + \item \ccc{Traits} defines a type \ccc{Polyhedron_3} that is a model of + ConvexHullPolyhedron\_3. +\end{itemize} The default traits class for both versions of \ccc{convex_hull_3} is \ccc{Convex_hull_traits_3},% @@ -66,6 +74,10 @@ with the representation determined by \ccc{InputIterator::value_type}. \ccRefIdfierPage{CGAL::ch_eddy} \\ \ccRefIdfierPage{CGAL::convex_hull_points_2} +\ccImplementation +The algorithm implemented by these functions is the quickhull algorithm of +Barnard \textit{et al.} \cite{bdh-qach-96}. + \ccExample The following program computes the convex hull of a set of 250 random