tmp version

This commit is contained in:
Sven Schönherr 1997-02-06 10:12:33 +00:00
parent 9818b20822
commit 95b971db9c
2 changed files with 140 additions and 80 deletions

View File

@ -2,12 +2,12 @@
% The CGAL Reference Manual % The CGAL Reference Manual
% Section: 2D Smallest Enclosing Circle % Section: 2D Smallest Enclosing Circle
% ----------------------------------------------------------------------------- % -----------------------------------------------------------------------------
% source: Min_circle_2.tex % file : Min_circle_2.tex
% author: Sven Schönherr (sven@inf.fu-berlin.de) % author: Bernd Gärtner, Sven Schönherr (sven@inf.fu-berlin.de)
% $Id$ % $Id$
% ============================================================================= % =============================================================================
\begin{CCclassTemplate}{CGAL_Min_circle_2<R>} \begin{ccClassTemplate}{CGAL_Min_circle_2<R>}
\ccSection{2D Smallest Enclosing Circle} \ccSection{2D Smallest Enclosing Circle}
\ccDefinition \ccDefinition
@ -24,9 +24,9 @@ is no circle containing $P$ with $B$ on the boundary.
The smallest enclosing circle of a point set $P$ is determined by at The smallest enclosing circle of a point set $P$ is determined by at
most three points on the boundary. A minimal subset $S$ of $P$ with most three points on the boundary. A minimal subset $S$ of $P$ with
$\textit{mc}(S,\emptyset) = \textit{mc}(P,\emptyset)$ is called a {\em $\textit{mc}(S,\emptyset) = \textit{mc}(P,\emptyset)$ is called a
support set}, the points in $S$ are the {\em support points}. Note \emph{support set}, the points in $S$ are the \emph{support points}.
that in general the set $S$ is not unique. Note that in general the set $S$ is not unique.
The underlying algorithm can cope with all kinds of input, e.g.\ one The underlying algorithm can cope with all kinds of input, e.g.\ one
or both of the point sets $P$ or $B$ may be empty, $B$ may contain or both of the point sets $P$ or $B$ may be empty, $B$ may contain
@ -38,10 +38,8 @@ fixed until the next update operation.
\ccCreation \ccCreation
\ccCreationVariable{min_circle} \ccCreationVariable{min_circle}
\ccSetThreeColumns \ccSetThreeColumns{CGAL_Bounded_side}{}{
{CGAL_Bounded_side} returns \ccStyle{CGAL_ON_BOUNDED_SIDE}, \ccStyle{CGAL_ON_BOUNDARY},}
{}
{returns \ccStyle{CGAL_ON_BOUNDED_SIDE}, \ccStyle{CGAL_ON_BOUNDARY},}
\ccPropagateThreeToTwoColumns \ccPropagateThreeToTwoColumns
\ccStyle{#include <CGAL/Min_circle_2.h>} \ccStyle{#include <CGAL/Min_circle_2.h>}
@ -56,31 +54,33 @@ fixed until the next update operation.
\ccConstructor{ CGAL_Min_circle_2( const CGAL_Min_circle_2<R>& min_circle2);}{ \ccConstructor{ CGAL_Min_circle_2( const CGAL_Min_circle_2<R>& min_circle2);}{
copy constructor.} copy constructor.}
\ccConstructor{ CGAL_Min_circle_2( const Point_2<R>& p);}{ \ccConstructor{ CGAL_Min_circle_2( const CGAL_Point_2<R>& p);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. introduces a variable \ccVar\ of type \ccClassTemplateName.
It is initialized to $\textit{mc}(\emptyset,\{\ccStyle{p}\})$, It is initialized to $\textit{mc}(\emptyset,\{\ccStyle{p}\})$,
i.e.\ to the set $\{\ccStyle{p}\}$. i.e.\ to the set $\{\ccStyle{p}\}$.
\ccPostcond \ccVar\ccStyle{.is_degenerate()}.} \ccPostcond \ccVar\ccStyle{.is_degenerate()}.}
\ccConstructor{ CGAL_Min_circle_2( const Point_2<R>& p1, \ccConstructor{ CGAL_Min_circle_2( const CGAL_Point_2<R>& p1,
const Point_2<R>& p2);}{ const CGAL_Point_2<R>& p2);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. introduces a variable \ccVar\ of type \ccClassTemplateName.
It is initialized to It is initialized to
$\textit{mc}(\emptyset,\{\ccStyle{p1},\ccStyle{p2}\})$, $\textit{mc}(\emptyset,\{\ccStyle{p1},\ccStyle{p2}\})$, i.e.\
i.e.\ to the circle with diameter to the circle with diameter
$\overline{\ccStyle{p1}\ccStyle{p2}}$.} $\overline{\ccStyle{p1}\ccStyle{p2}}$, if $\ccStyle{p1} \neq
\ccStyle{p2}$, or to the set $\{\ccStyle{p1}\}$ otherwise.}
\ccConstructor{ CGAL_Min_circle_2( const Point_2<R>& p1, \ccConstructor{ CGAL_Min_circle_2( const CGAL_Point_2<R>& p1,
const Point_2<R>& p2, const CGAL_Point_2<R>& p2,
const Point_2<R>& p3);}{ const CGAL_Point_2<R>& p3);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. introduces a variable \ccVar\ of type \ccClassTemplateName.
It is initialized to $\textit{mc}(\emptyset, It is initialized to $\textit{mc}(\emptyset,
\{\ccStyle{p1},\ccStyle{p2},\ccStyle{p3}\})$, \{\ccStyle{p1},\ccStyle{p2},\ccStyle{p3}\})$, i.e.\ to the
i.e.\ to the unique circle with \ccStyle{p1}, \ccStyle{p2} and unique circle with \ccStyle{p1}, \ccStyle{p2} and \ccStyle{p3}
\ccStyle{p3} on the boundary.} on the boundary, if it exists. Otherwise \ccVar\ is
undefined.}
\ccConstructor{ CGAL_Min_circle_2( forward_iterator< Point_2<R> > first, \ccConstructor{ CGAL_Min_circle_2( forward_iterator< CGAL_Point_2<R> > first,
forward_iterator< Point_2<R> > last, forward_iterator< CGAL_Point_2<R> > last,
bool randomize = false);}{ bool randomize = false);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. It introduces a variable \ccVar\ of type \ccClassTemplateName. It
is initialized to $\textit{mc}(P,\emptyset)$ with $P$ being is initialized to $\textit{mc}(P,\emptyset)$ with $P$ being
@ -89,19 +89,25 @@ fixed until the next update operation.
\ccStyle{true}, a random permutation of $P$ is computed in \ccStyle{true}, a random permutation of $P$ is computed in
advance.} advance.}
\ccConstructor{ CGAL_Min_circle_2( forward_iterator< Point_2<R> > p_first, \ccConstructor{ CGAL_Min_circle_2( forward_iterator< CGAL_Point_2<R> > p_first,
forward_iterator< Point_2<R> > p_last, forward_iterator< CGAL_Point_2<R> > p_last,
forward_iterator< Point_2<R> > b_first, forward_iterator< CGAL_Point_2<R> > b_first,
forward_iterator< Point_2<R> > b_last, forward_iterator< CGAL_Point_2<R> > b_last,
bool randomize = false);}{ bool randomize = false);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. It introduces a variable \ccVar\ of type \ccClassTemplateName. It
is initialized to $\textit{mc}(P,B)$ with $P$ being the set of is initialized to $\textit{mc}(P,B)$ (if it exists, to
points in the range $[\ccStyle{p_first},\ccStyle{p_last})$ and undefined otherwise) with $P$ being the set of points in the
$B$ being the set of points in the range range $[\ccStyle{p_first},\ccStyle{p_last})$ and $B$ being the
set of points in the range
$[\ccStyle{b_first},\ccStyle{b_last})$. If \ccStyle{randomize} $[\ccStyle{b_first},\ccStyle{b_last})$. If \ccStyle{randomize}
is \ccStyle{true}, a random permutation of $P$ is computed in is \ccStyle{true}, a random permutation of $P$ is computed in
advance.} advance.}
\ccHidden
\ccMemberFunction{ const Min_circle_2<R>&
operator = ( const Min_circle_2<R>& min_circle2);}{
assignment operator.}
\ccHeading{Access operations} \ccHeading{Access operations}
@ -109,7 +115,8 @@ fixed until the next update operation.
returns the number of points of \ccVar, i.e.\ $|P|+|B|$.} returns the number of points of \ccVar, i.e.\ $|P|+|B|$.}
\ccMemberFunction{ int number_of_support_points( ) const;}{ \ccMemberFunction{ int number_of_support_points( ) const;}{
returns the number of support points of \ccVar, i.e.\ $|S|$.} returns the number of support points of \ccVar, i.e.\ $|S|$,
if \ccVar\ is defined, $-1$ otherwise.}
\ccMemberFunction{ const CGAL_Point_2<R>& point( int i) const;}{ \ccMemberFunction{ const CGAL_Point_2<R>& point( int i) const;}{
returns the \ccStyle{i}'th point of \ccVar. Between two update returns the \ccStyle{i}'th point of \ccVar. Between two update
@ -133,17 +140,33 @@ fixed until the next update operation.
squared radius $r$ as \ccVar\ and positive orientation. If squared radius $r$ as \ccVar\ and positive orientation. If
\ccVar\ is the empty set, $c$ is undefined und $r$ is set to \ccVar\ is the empty set, $c$ is undefined und $r$ is set to
zero. If \ccVar\ contains exactly one point $p$, $c$ is set to zero. If \ccVar\ contains exactly one point $p$, $c$ is set to
$p$ and $r$ is set to zero.} $p$ and $r$ is set to zero.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ CGAL_Bbox_2 bbox( ) const;}{ \ccMemberFunction{ CGAL_Bbox_2 bbox( ) const;}{
returns a bounding box containing \ccVar.} returns a bounding box containing \ccVar.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccHeading{Update operations} \ccHeading{Update operations}
\ccMemberFunction{ void insert( const CGAL_Point_2<R>& p);}{ \ccMemberFunction{ void insert( const CGAL_Point_2<R>& p);}{
inserts \ccStyle{p} in \ccVar\ and recomputes the smallest inserts \ccStyle{p} in \ccVar\ and recomputes the smallest
enclosing circle.} enclosing circle.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ void reserve( int n);}{
reserves storage for at least \ccStyle{n} points in \ccVar.
It can be used, if the number of insert operations is known in
advance.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccUnchecked
\ccHidden
\ccMemberFunction{ void reset( );}{
resets \ccVar\ to $\textit{mc}(\emptyset,\emptyset)$,
i.e.\ to the empty set.
\ccPostcond \ccVar\ccStyle{.is_empty()}.}
\ccHeading{Tests} \ccHeading{Tests}
@ -153,18 +176,25 @@ fixed until the next update operation.
returns \ccStyle{CGAL_ON_BOUNDED_SIDE}, returns \ccStyle{CGAL_ON_BOUNDED_SIDE},
\ccStyle{CGAL_ON_BOUNDARY}, or \ccStyle{CGAL_ON_BOUNDARY}, or
\ccStyle{CGAL_ON_UNBOUNDED_SIDE} iff \ccStyle{p} lies inside, \ccStyle{CGAL_ON_UNBOUNDED_SIDE} iff \ccStyle{p} lies inside,
on the boundary, or outside of \ccVar, respectively.} on the boundary, or outside of \ccVar, respectively.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ bool has_on_bounded_side( const CGAL_Point_2<R>& p) const;}{ \ccMemberFunction{ bool has_on_bounded_side( const CGAL_Point_2<R>& p) const;}{
returns \ccStyle{true}, iff \ccStyle{p} lies inside \ccVar.} returns \ccStyle{true}, iff \ccStyle{p} lies inside \ccVar.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ bool has_on_boundary( const CGAL_Point_2<R>& p) const;}{ \ccMemberFunction{ bool has_on_boundary( const CGAL_Point_2<R>& p) const;}{
returns \ccStyle{true}, iff \ccStyle{p} lies on the boundary returns \ccStyle{true}, iff \ccStyle{p} lies on the boundary
of \ccVar.} of \ccVar.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ bool \ccMemberFunction{ bool
has_on_unbounded_side( const CGAL_Point_2<R>& p) const;}{ has_on_unbounded_side( const CGAL_Point_2<R>& p) const;}{
returns \ccStyle{true}, iff \ccStyle{p} lies outside of \ccVar.} returns \ccStyle{true}, iff \ccStyle{p} lies outside of \ccVar.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ bool is_empty( ) const;}{
returns \ccStyle{true}, iff \ccVar\ is empty.}
\ccMemberFunction{ bool is_degenerate( ) const;}{ \ccMemberFunction{ bool is_degenerate( ) const;}{
returns \ccStyle{true}, iff \ccVar\ is degenerate.} returns \ccStyle{true}, iff \ccVar\ is degenerate.}
@ -172,6 +202,6 @@ fixed until the next update operation.
\ccMemberFunction{ bool is_undefined( ) const;}{ \ccMemberFunction{ bool is_undefined( ) const;}{
returns \ccStyle{true}, iff \ccVar\ is undefined.} returns \ccStyle{true}, iff \ccVar\ is undefined.}
\end{CCclassTemplate} \end{ccClassTemplate}
% ===== EOF =================================================================== % ===== EOF ===================================================================

View File

@ -2,12 +2,12 @@
% The CGAL Reference Manual % The CGAL Reference Manual
% Section: 2D Smallest Enclosing Circle % Section: 2D Smallest Enclosing Circle
% ----------------------------------------------------------------------------- % -----------------------------------------------------------------------------
% source: Min_circle_2.tex % file : Min_circle_2.tex
% author: Sven Schönherr (sven@inf.fu-berlin.de) % author: Bernd Gärtner, Sven Schönherr (sven@inf.fu-berlin.de)
% $Id$ % $Id$
% ============================================================================= % =============================================================================
\begin{CCclassTemplate}{CGAL_Min_circle_2<R>} \begin{ccClassTemplate}{CGAL_Min_circle_2<R>}
\ccSection{2D Smallest Enclosing Circle} \ccSection{2D Smallest Enclosing Circle}
\ccDefinition \ccDefinition
@ -24,9 +24,9 @@ is no circle containing $P$ with $B$ on the boundary.
The smallest enclosing circle of a point set $P$ is determined by at The smallest enclosing circle of a point set $P$ is determined by at
most three points on the boundary. A minimal subset $S$ of $P$ with most three points on the boundary. A minimal subset $S$ of $P$ with
$\textit{mc}(S,\emptyset) = \textit{mc}(P,\emptyset)$ is called a {\em $\textit{mc}(S,\emptyset) = \textit{mc}(P,\emptyset)$ is called a
support set}, the points in $S$ are the {\em support points}. Note \emph{support set}, the points in $S$ are the \emph{support points}.
that in general the set $S$ is not unique. Note that in general the set $S$ is not unique.
The underlying algorithm can cope with all kinds of input, e.g.\ one The underlying algorithm can cope with all kinds of input, e.g.\ one
or both of the point sets $P$ or $B$ may be empty, $B$ may contain or both of the point sets $P$ or $B$ may be empty, $B$ may contain
@ -38,10 +38,8 @@ fixed until the next update operation.
\ccCreation \ccCreation
\ccCreationVariable{min_circle} \ccCreationVariable{min_circle}
\ccSetThreeColumns \ccSetThreeColumns{CGAL_Bounded_side}{}{
{CGAL_Bounded_side} returns \ccStyle{CGAL_ON_BOUNDED_SIDE}, \ccStyle{CGAL_ON_BOUNDARY},}
{}
{returns \ccStyle{CGAL_ON_BOUNDED_SIDE}, \ccStyle{CGAL_ON_BOUNDARY},}
\ccPropagateThreeToTwoColumns \ccPropagateThreeToTwoColumns
\ccStyle{#include <CGAL/Min_circle_2.h>} \ccStyle{#include <CGAL/Min_circle_2.h>}
@ -56,31 +54,33 @@ fixed until the next update operation.
\ccConstructor{ CGAL_Min_circle_2( const CGAL_Min_circle_2<R>& min_circle2);}{ \ccConstructor{ CGAL_Min_circle_2( const CGAL_Min_circle_2<R>& min_circle2);}{
copy constructor.} copy constructor.}
\ccConstructor{ CGAL_Min_circle_2( const Point_2<R>& p);}{ \ccConstructor{ CGAL_Min_circle_2( const CGAL_Point_2<R>& p);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. introduces a variable \ccVar\ of type \ccClassTemplateName.
It is initialized to $\textit{mc}(\emptyset,\{\ccStyle{p}\})$, It is initialized to $\textit{mc}(\emptyset,\{\ccStyle{p}\})$,
i.e.\ to the set $\{\ccStyle{p}\}$. i.e.\ to the set $\{\ccStyle{p}\}$.
\ccPostcond \ccVar\ccStyle{.is_degenerate()}.} \ccPostcond \ccVar\ccStyle{.is_degenerate()}.}
\ccConstructor{ CGAL_Min_circle_2( const Point_2<R>& p1, \ccConstructor{ CGAL_Min_circle_2( const CGAL_Point_2<R>& p1,
const Point_2<R>& p2);}{ const CGAL_Point_2<R>& p2);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. introduces a variable \ccVar\ of type \ccClassTemplateName.
It is initialized to It is initialized to
$\textit{mc}(\emptyset,\{\ccStyle{p1},\ccStyle{p2}\})$, $\textit{mc}(\emptyset,\{\ccStyle{p1},\ccStyle{p2}\})$, i.e.\
i.e.\ to the circle with diameter to the circle with diameter
$\overline{\ccStyle{p1}\ccStyle{p2}}$.} $\overline{\ccStyle{p1}\ccStyle{p2}}$, if $\ccStyle{p1} \neq
\ccStyle{p2}$, or to the set $\{\ccStyle{p1}\}$ otherwise.}
\ccConstructor{ CGAL_Min_circle_2( const Point_2<R>& p1, \ccConstructor{ CGAL_Min_circle_2( const CGAL_Point_2<R>& p1,
const Point_2<R>& p2, const CGAL_Point_2<R>& p2,
const Point_2<R>& p3);}{ const CGAL_Point_2<R>& p3);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. introduces a variable \ccVar\ of type \ccClassTemplateName.
It is initialized to $\textit{mc}(\emptyset, It is initialized to $\textit{mc}(\emptyset,
\{\ccStyle{p1},\ccStyle{p2},\ccStyle{p3}\})$, \{\ccStyle{p1},\ccStyle{p2},\ccStyle{p3}\})$, i.e.\ to the
i.e.\ to the unique circle with \ccStyle{p1}, \ccStyle{p2} and unique circle with \ccStyle{p1}, \ccStyle{p2} and \ccStyle{p3}
\ccStyle{p3} on the boundary.} on the boundary, if it exists. Otherwise \ccVar\ is
undefined.}
\ccConstructor{ CGAL_Min_circle_2( forward_iterator< Point_2<R> > first, \ccConstructor{ CGAL_Min_circle_2( forward_iterator< CGAL_Point_2<R> > first,
forward_iterator< Point_2<R> > last, forward_iterator< CGAL_Point_2<R> > last,
bool randomize = false);}{ bool randomize = false);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. It introduces a variable \ccVar\ of type \ccClassTemplateName. It
is initialized to $\textit{mc}(P,\emptyset)$ with $P$ being is initialized to $\textit{mc}(P,\emptyset)$ with $P$ being
@ -89,19 +89,25 @@ fixed until the next update operation.
\ccStyle{true}, a random permutation of $P$ is computed in \ccStyle{true}, a random permutation of $P$ is computed in
advance.} advance.}
\ccConstructor{ CGAL_Min_circle_2( forward_iterator< Point_2<R> > p_first, \ccConstructor{ CGAL_Min_circle_2( forward_iterator< CGAL_Point_2<R> > p_first,
forward_iterator< Point_2<R> > p_last, forward_iterator< CGAL_Point_2<R> > p_last,
forward_iterator< Point_2<R> > b_first, forward_iterator< CGAL_Point_2<R> > b_first,
forward_iterator< Point_2<R> > b_last, forward_iterator< CGAL_Point_2<R> > b_last,
bool randomize = false);}{ bool randomize = false);}{
introduces a variable \ccVar\ of type \ccClassTemplateName. It introduces a variable \ccVar\ of type \ccClassTemplateName. It
is initialized to $\textit{mc}(P,B)$ with $P$ being the set of is initialized to $\textit{mc}(P,B)$ (if it exists, to
points in the range $[\ccStyle{p_first},\ccStyle{p_last})$ and undefined otherwise) with $P$ being the set of points in the
$B$ being the set of points in the range range $[\ccStyle{p_first},\ccStyle{p_last})$ and $B$ being the
set of points in the range
$[\ccStyle{b_first},\ccStyle{b_last})$. If \ccStyle{randomize} $[\ccStyle{b_first},\ccStyle{b_last})$. If \ccStyle{randomize}
is \ccStyle{true}, a random permutation of $P$ is computed in is \ccStyle{true}, a random permutation of $P$ is computed in
advance.} advance.}
\ccHidden
\ccMemberFunction{ const Min_circle_2<R>&
operator = ( const Min_circle_2<R>& min_circle2);}{
assignment operator.}
\ccHeading{Access operations} \ccHeading{Access operations}
@ -109,7 +115,8 @@ fixed until the next update operation.
returns the number of points of \ccVar, i.e.\ $|P|+|B|$.} returns the number of points of \ccVar, i.e.\ $|P|+|B|$.}
\ccMemberFunction{ int number_of_support_points( ) const;}{ \ccMemberFunction{ int number_of_support_points( ) const;}{
returns the number of support points of \ccVar, i.e.\ $|S|$.} returns the number of support points of \ccVar, i.e.\ $|S|$,
if \ccVar\ is defined, $-1$ otherwise.}
\ccMemberFunction{ const CGAL_Point_2<R>& point( int i) const;}{ \ccMemberFunction{ const CGAL_Point_2<R>& point( int i) const;}{
returns the \ccStyle{i}'th point of \ccVar. Between two update returns the \ccStyle{i}'th point of \ccVar. Between two update
@ -133,17 +140,33 @@ fixed until the next update operation.
squared radius $r$ as \ccVar\ and positive orientation. If squared radius $r$ as \ccVar\ and positive orientation. If
\ccVar\ is the empty set, $c$ is undefined und $r$ is set to \ccVar\ is the empty set, $c$ is undefined und $r$ is set to
zero. If \ccVar\ contains exactly one point $p$, $c$ is set to zero. If \ccVar\ contains exactly one point $p$, $c$ is set to
$p$ and $r$ is set to zero.} $p$ and $r$ is set to zero.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ CGAL_Bbox_2 bbox( ) const;}{ \ccMemberFunction{ CGAL_Bbox_2 bbox( ) const;}{
returns a bounding box containing \ccVar.} returns a bounding box containing \ccVar.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccHeading{Update operations} \ccHeading{Update operations}
\ccMemberFunction{ void insert( const CGAL_Point_2<R>& p);}{ \ccMemberFunction{ void insert( const CGAL_Point_2<R>& p);}{
inserts \ccStyle{p} in \ccVar\ and recomputes the smallest inserts \ccStyle{p} in \ccVar\ and recomputes the smallest
enclosing circle.} enclosing circle.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ void reserve( int n);}{
reserves storage for at least \ccStyle{n} points in \ccVar.
It can be used, if the number of insert operations is known in
advance.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccUnchecked
\ccHidden
\ccMemberFunction{ void reset( );}{
resets \ccVar\ to $\textit{mc}(\emptyset,\emptyset)$,
i.e.\ to the empty set.
\ccPostcond \ccVar\ccStyle{.is_empty()}.}
\ccHeading{Tests} \ccHeading{Tests}
@ -153,18 +176,25 @@ fixed until the next update operation.
returns \ccStyle{CGAL_ON_BOUNDED_SIDE}, returns \ccStyle{CGAL_ON_BOUNDED_SIDE},
\ccStyle{CGAL_ON_BOUNDARY}, or \ccStyle{CGAL_ON_BOUNDARY}, or
\ccStyle{CGAL_ON_UNBOUNDED_SIDE} iff \ccStyle{p} lies inside, \ccStyle{CGAL_ON_UNBOUNDED_SIDE} iff \ccStyle{p} lies inside,
on the boundary, or outside of \ccVar, respectively.} on the boundary, or outside of \ccVar, respectively.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ bool has_on_bounded_side( const CGAL_Point_2<R>& p) const;}{ \ccMemberFunction{ bool has_on_bounded_side( const CGAL_Point_2<R>& p) const;}{
returns \ccStyle{true}, iff \ccStyle{p} lies inside \ccVar.} returns \ccStyle{true}, iff \ccStyle{p} lies inside \ccVar.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ bool has_on_boundary( const CGAL_Point_2<R>& p) const;}{ \ccMemberFunction{ bool has_on_boundary( const CGAL_Point_2<R>& p) const;}{
returns \ccStyle{true}, iff \ccStyle{p} lies on the boundary returns \ccStyle{true}, iff \ccStyle{p} lies on the boundary
of \ccVar.} of \ccVar.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ bool \ccMemberFunction{ bool
has_on_unbounded_side( const CGAL_Point_2<R>& p) const;}{ has_on_unbounded_side( const CGAL_Point_2<R>& p) const;}{
returns \ccStyle{true}, iff \ccStyle{p} lies outside of \ccVar.} returns \ccStyle{true}, iff \ccStyle{p} lies outside of \ccVar.
\ccPrecond $\ccVar\ccStyle{.is_undefined()} = \ccStyle{false}$.}
\ccMemberFunction{ bool is_empty( ) const;}{
returns \ccStyle{true}, iff \ccVar\ is empty.}
\ccMemberFunction{ bool is_degenerate( ) const;}{ \ccMemberFunction{ bool is_degenerate( ) const;}{
returns \ccStyle{true}, iff \ccVar\ is degenerate.} returns \ccStyle{true}, iff \ccVar\ is degenerate.}
@ -172,6 +202,6 @@ fixed until the next update operation.
\ccMemberFunction{ bool is_undefined( ) const;}{ \ccMemberFunction{ bool is_undefined( ) const;}{
returns \ccStyle{true}, iff \ccVar\ is undefined.} returns \ccStyle{true}, iff \ccVar\ is undefined.}
\end{CCclassTemplate} \end{ccClassTemplate}
% ===== EOF =================================================================== % ===== EOF ===================================================================