mirror of https://github.com/CGAL/cgal
tmp version
This commit is contained in:
parent
9818b20822
commit
95b971db9c
|
|
@ -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 ===================================================================
|
||||||
|
|
|
||||||
|
|
@ -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 ===================================================================
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue