mirror of https://github.com/CGAL/cgal
Version vom 11.07.97 (Urlaub)
This commit is contained in:
parent
27c324785f
commit
6e16831dd3
|
|
@ -70,13 +70,13 @@
|
||||||
|
|
||||||
We provide an implementation of an optimisation algorithm for computing
|
We provide an implementation of an optimisation algorithm for computing
|
||||||
the smallest (w.r.t.\ area) enclosing circle of a finite point set $P$
|
the smallest (w.r.t.\ area) enclosing circle of a finite point set $P$
|
||||||
in the plane. The class template \ccc{CGAL_Min_circle_2<Traits>} is
|
in the plane. The class template \ccc{CGAL_Min_circle_2} is implemented
|
||||||
implemented as a semi-dynamic data structure, thus allowing to insert
|
as a semi-dynamic data structure, thus allowing to insert points while
|
||||||
points while maintaining the smallest enclosing circle. It is
|
maintaining the smallest enclosing circle. It is parameterized with a
|
||||||
parameterized with a traits class, that defines the abstract interface
|
traits class, that defines the abstract interface between the
|
||||||
between the optimisation algorithm and the primitives it uses. For ease
|
optimisation algorithm and the primitives it uses. For ease of use, we
|
||||||
of use, we provide traits class adapters that interface the
|
provide traits class adapters that interface the optimisation algorithm
|
||||||
optimisation algorithm with user supplied point classes.
|
with user supplied point classes.
|
||||||
|
|
||||||
This document is organized as follows. The algorithm is described in
|
This document is organized as follows. The algorithm is described in
|
||||||
Section~1. Section~2 contains the specifications as they appear in the
|
Section~1. Section~2 contains the specifications as they appear in the
|
||||||
|
|
@ -90,7 +90,6 @@ checks. Finally the product files are created in Section~5.
|
||||||
@! The Algorithm
|
@! The Algorithm
|
||||||
@! ============================================================================
|
@! ============================================================================
|
||||||
|
|
||||||
\setlength{\parskip}{0.8ex}
|
|
||||||
\clearpage
|
\clearpage
|
||||||
\section{The Algorithm} \label{sec:algo}
|
\section{The Algorithm} \label{sec:algo}
|
||||||
|
|
||||||
|
|
@ -155,12 +154,13 @@ in the \cgal\ Reference Manual.
|
||||||
\renewcommand{\ccSection}{\ccSubsection}
|
\renewcommand{\ccSection}{\ccSubsection}
|
||||||
\renewcommand{\ccFont}{\tt}
|
\renewcommand{\ccFont}{\tt}
|
||||||
\renewcommand{\ccEndFont}{}
|
\renewcommand{\ccEndFont}{}
|
||||||
\ccSetThreeColumns{typedef Traits::Circle}{}{%
|
\ccSetThreeColumns{typedef CGAL_Point_2<R>}{}{%
|
||||||
creates a variable \ccc{min_circle} of type \ccc{CGAL_Min_circle_2<Traits>}.}
|
creates a variable \ccc{min_circle} of type \ccc{CGAL_Min_circle_2<Traits>}.}
|
||||||
\ccPropagateThreeToTwoColumns
|
\ccPropagateThreeToTwoColumns
|
||||||
\input{../spec/Min_circle_2.tex}
|
\input{../../spec/Optimisation/Min_circle_2.tex}
|
||||||
\input{../spec/Min_circle_2_adapterC2.tex}
|
\input{../../spec/Optimisation/Optimisation_circle_2.tex}
|
||||||
\input{../spec/Min_circle_2_adapterH2.tex}
|
\input{../../spec/Optimisation/Min_circle_2_adapterC2.tex}
|
||||||
|
\input{../../spec/Optimisation/Min_circle_2_adapterH2.tex}
|
||||||
|
|
||||||
@! ============================================================================
|
@! ============================================================================
|
||||||
@! Implementations
|
@! Implementations
|
||||||
|
|
@ -1174,6 +1174,336 @@ pseudocode above.
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
@! Class template CGAL_Optimisation_circle_2<R>
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
\subsection{Class template \ccFont CGAL\_Optimisation\_circle\_2<R>}
|
||||||
|
|
||||||
|
First, we declare the class template \ccc{CGAL_Optimisation_circle_2},
|
||||||
|
|
||||||
|
@macro<Optimisation_circle_2 declaration> = @begin
|
||||||
|
template < class _R >
|
||||||
|
class CGAL_Optimisation_circle_2;
|
||||||
|
@end
|
||||||
|
|
||||||
|
\emph{Workaround:} The GNU compiler (g++ 2.7.2[.?]) does not accept types
|
||||||
|
with scope operator as argument type or return type in class template
|
||||||
|
member functions. Therefore, all member functions are implemented in
|
||||||
|
the class interface.
|
||||||
|
|
||||||
|
The class interface looks as follows.
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 interface> = @begin
|
||||||
|
template < class _R >
|
||||||
|
class CGAL_Optimisation_circle_2 {
|
||||||
|
public:
|
||||||
|
@<Optimisation_circle_2 public interface>
|
||||||
|
|
||||||
|
private:
|
||||||
|
// private data members
|
||||||
|
@<Optimisation_circle_2 private data members>
|
||||||
|
|
||||||
|
@<dividing line>
|
||||||
|
|
||||||
|
// Class implementation
|
||||||
|
// ====================
|
||||||
|
|
||||||
|
public:
|
||||||
|
// Set functions
|
||||||
|
// -------------
|
||||||
|
@<Optimisation_circle_2 set functions>
|
||||||
|
|
||||||
|
// Access functions
|
||||||
|
// ----------------
|
||||||
|
@<Optimisation_circle_2 access functions>
|
||||||
|
|
||||||
|
// Equality tests
|
||||||
|
// --------------
|
||||||
|
@<Optimisation_circle_2 equality tests>
|
||||||
|
|
||||||
|
// Predicates
|
||||||
|
// ----------
|
||||||
|
@<Optimisation_circle_2 predicates>
|
||||||
|
};
|
||||||
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Public Interface}
|
||||||
|
|
||||||
|
The functionality is described and documented in the specification
|
||||||
|
section, so we do not comment on it here.
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 public interface> = @begin
|
||||||
|
// types
|
||||||
|
typedef _R R;
|
||||||
|
typedef CGAL_Point_2<R> Point;
|
||||||
|
typedef typename _R::FT Distance;
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
WORKAROUND: The GNU compiler (g++ 2.7.2[.*]) does not accept types
|
||||||
|
with scope operator as argument type or return type in class template
|
||||||
|
member functions. Therefore, all member functions are implemented in
|
||||||
|
the class interface.
|
||||||
|
|
||||||
|
// creation
|
||||||
|
void set( );
|
||||||
|
void set( Point const& p);
|
||||||
|
void set( Point const& p, Point const& q);
|
||||||
|
void set( Point const& p, Point const& q, Point const& r);
|
||||||
|
void set( Point const& center, Distance const& squared_radius);
|
||||||
|
|
||||||
|
// access functions
|
||||||
|
Point const& center ( ) const;
|
||||||
|
Distance const& squared_radius( ) const
|
||||||
|
|
||||||
|
// equality tests
|
||||||
|
bool operator == ( CGAL_Optimisation_circle_2<R> const& c) const;
|
||||||
|
bool operator != ( CGAL_Optimisation_circle_2<R> const& c) const;
|
||||||
|
|
||||||
|
// predicates
|
||||||
|
CGAL_Bounded_side bounded_side( Point const& p) const;
|
||||||
|
bool has_on_bounded_side ( Point const& p) const;
|
||||||
|
bool has_on_boundary ( Point const& p) const;
|
||||||
|
bool has_on_unbounded_side ( Point const& p) const;
|
||||||
|
|
||||||
|
bool is_empty ( ) const;
|
||||||
|
bool is_degenerate( ) const;
|
||||||
|
**************************************************************************/
|
||||||
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Private Data Members}
|
||||||
|
|
||||||
|
The circle is represented by its center and squared radius.
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 private data members> = @begin
|
||||||
|
Point _center;
|
||||||
|
Distance _squared_radius;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Set Functions}
|
||||||
|
|
||||||
|
We provide set functions taking zero, one, two, or three (boundary)
|
||||||
|
points and another set function taking a center point and a squared
|
||||||
|
radius.
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 set functions> = @begin
|
||||||
|
inline
|
||||||
|
void
|
||||||
|
set( )
|
||||||
|
{
|
||||||
|
_center = Point( CGAL_ORIGIN);
|
||||||
|
_squared_radius = -Distance( 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
void
|
||||||
|
set( Point const& p)
|
||||||
|
{
|
||||||
|
_center = p;
|
||||||
|
_squared_radius = Distance( 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
void
|
||||||
|
set( Point const& p, Point const& q)
|
||||||
|
{
|
||||||
|
_center = CGAL_midpoint( p, q);
|
||||||
|
_squared_radius = CGAL_squared_distance( p, _center);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
void
|
||||||
|
set( Point const& p, Point const& q, Point const& r)
|
||||||
|
{
|
||||||
|
_center = CGAL_circumcenter( p, q, r);
|
||||||
|
_squared_radius = CGAL_squared_distance( p, _center);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
void
|
||||||
|
set( Point const& center, Distance const& squared_radius)
|
||||||
|
{
|
||||||
|
_center = center;
|
||||||
|
_squared_radius = squared_radius;
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Access Functions}
|
||||||
|
|
||||||
|
These functions are used to get the current center point or
|
||||||
|
squared radius, resp.
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 access functions> = @begin
|
||||||
|
inline
|
||||||
|
Point const&
|
||||||
|
center( ) const
|
||||||
|
{
|
||||||
|
return( _center);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
Distance const&
|
||||||
|
squared_radius( ) const
|
||||||
|
{
|
||||||
|
return( _squared_radius);
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Equality Tests}
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 equality tests> = @begin
|
||||||
|
bool
|
||||||
|
operator == ( CGAL_Optimisation_circle_2<R> const& c) const
|
||||||
|
{
|
||||||
|
return( ( _center == c._center ) &&
|
||||||
|
( _squared_radius == c._squared_radius) );
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
operator != ( CGAL_Optimisation_circle_2<R> const& c) const
|
||||||
|
{
|
||||||
|
return( ! operator==( c));
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
\subsubsection{Predicates}
|
||||||
|
|
||||||
|
The following predicates perform in-circle tests and check for
|
||||||
|
emptyness and degeneracy, resp.
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 predicates> = @begin
|
||||||
|
inline
|
||||||
|
CGAL_Bounded_side
|
||||||
|
bounded_side( Point const& p) const
|
||||||
|
{
|
||||||
|
return( CGAL_static_cast( CGAL_Bounded_side,
|
||||||
|
CGAL_sign( CGAL_squared_distance( p, _center)
|
||||||
|
- _squared_radius)));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
bool
|
||||||
|
has_on_bounded_side( Point const& p) const
|
||||||
|
{
|
||||||
|
return( CGAL_squared_distance( p, _center) < _squared_radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
bool
|
||||||
|
has_on_boundary( Point const& p) const
|
||||||
|
{
|
||||||
|
return( CGAL_squared_distance( p, _center) == _squared_radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
bool
|
||||||
|
has_on_unbounded_side( Point const& p) const
|
||||||
|
{
|
||||||
|
return( _squared_radius < CGAL_squared_distance( p, _center));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
bool
|
||||||
|
is_empty( ) const
|
||||||
|
{
|
||||||
|
return( CGAL_is_negative( _squared_radius));
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
bool
|
||||||
|
is_degenerate( ) const
|
||||||
|
{
|
||||||
|
return( ! CGAL_is_positive( _squared_radius));
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
\subsubsection{I/O}
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 I/O operators declaration> = @begin
|
||||||
|
template < class _R >
|
||||||
|
ostream&
|
||||||
|
operator << ( ostream& os, CGAL_Optimisation_circle_2<_R> const& c);
|
||||||
|
|
||||||
|
template < class _R >
|
||||||
|
istream&
|
||||||
|
operator >> ( istream& is, CGAL_Optimisation_circle_2<_R> & c);
|
||||||
|
@end
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 I/O operators> = @begin
|
||||||
|
template < class _R >
|
||||||
|
ostream&
|
||||||
|
operator << ( ostream& os, CGAL_Optimisation_circle_2<_R> const& c)
|
||||||
|
{
|
||||||
|
switch ( CGAL_get_mode( os)) {
|
||||||
|
|
||||||
|
case CGAL_IO::PRETTY:
|
||||||
|
os << "CGAL_Optimisation_circle_2( "
|
||||||
|
<< c.center() << ", "
|
||||||
|
<< c.squared_radius() << ')';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CGAL_IO::ASCII:
|
||||||
|
os << c.center() << ' ' << c.squared_radius();
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CGAL_IO::BINARY:
|
||||||
|
os << c.center();
|
||||||
|
CGAL_write( os, c.squared_radius());
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
CGAL_optimisation_assertion_msg( false,
|
||||||
|
"CGAL_get_mode( os) invalid!");
|
||||||
|
break; }
|
||||||
|
|
||||||
|
return( os);
|
||||||
|
}
|
||||||
|
|
||||||
|
template < class _R >
|
||||||
|
istream&
|
||||||
|
operator >> ( istream& is, CGAL_Optimisation_circle_2<_R>& c)
|
||||||
|
{
|
||||||
|
typedef typename CGAL_Optimisation_circle_2<_R>::Point Point;
|
||||||
|
typedef typename CGAL_Optimisation_circle_2<_R>::Distance Distance;
|
||||||
|
|
||||||
|
switch ( CGAL_get_mode( is)) {
|
||||||
|
|
||||||
|
case CGAL_IO::PRETTY:
|
||||||
|
cerr << endl;
|
||||||
|
cerr << "Stream must be in ascii or binary mode" << endl;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CGAL_IO::ASCII: {
|
||||||
|
Point center;
|
||||||
|
Distance squared_radius;
|
||||||
|
is >> center >> squared_radius;
|
||||||
|
c.set( center, squared_radius); }
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CGAL_IO::BINARY: {
|
||||||
|
Point center;
|
||||||
|
Distance squared_radius;
|
||||||
|
is >> center;
|
||||||
|
CGAL_read( is, squared_radius);
|
||||||
|
c.set( center, squared_radius); }
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
CGAL_optimisation_assertion_msg( false,
|
||||||
|
"CGAL_get_mode( is) invalid!");
|
||||||
|
break; }
|
||||||
|
|
||||||
|
return( is);
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
@! ----------------------------------------------------------------------------
|
@! ----------------------------------------------------------------------------
|
||||||
@! Class template CGAL_Min_circle_2_adapterC2<PT,DA>
|
@! Class template CGAL_Min_circle_2_adapterC2<PT,DA>
|
||||||
@! ----------------------------------------------------------------------------
|
@! ----------------------------------------------------------------------------
|
||||||
|
|
@ -2260,6 +2590,7 @@ To test the traits class adapters we use the code coverage test function.
|
||||||
cover_Min_circle_2( verbose, AdapterC2(), Rt());
|
cover_Min_circle_2( verbose, AdapterC2(), Rt());
|
||||||
cover_Min_circle_2( verbose, AdapterH2(), Rt());
|
cover_Min_circle_2( verbose, AdapterH2(), Rt());
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@! ----------------------------------------------------------------------------
|
@! ----------------------------------------------------------------------------
|
||||||
@! External Test Sets
|
@! External Test Sets
|
||||||
@! ----------------------------------------------------------------------------
|
@! ----------------------------------------------------------------------------
|
||||||
|
|
@ -2304,7 +2635,6 @@ end of each file.
|
||||||
++argv; }
|
++argv; }
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
||||||
@! ==========================================================================
|
@! ==========================================================================
|
||||||
@! Files
|
@! Files
|
||||||
@! ==========================================================================
|
@! ==========================================================================
|
||||||
|
|
@ -2318,8 +2648,8 @@ end of each file.
|
||||||
|
|
||||||
\subsection{Min\_circle\_2.h}
|
\subsection{Min\_circle\_2.h}
|
||||||
|
|
||||||
@file <Min_circle_2.h> = @begin
|
@file <../../include/CGAL/Optimisation/Min_circle_2.h> = @begin
|
||||||
@<Min_circle_2 header>("include/CGAL/Min_circle_2.h")
|
@<Min_circle_2 header>("include/CGAL/Optimisation/Min_circle_2.h")
|
||||||
|
|
||||||
#ifndef CGAL_MIN_CIRCLE_2_H
|
#ifndef CGAL_MIN_CIRCLE_2_H
|
||||||
#define CGAL_MIN_CIRCLE_2_H
|
#define CGAL_MIN_CIRCLE_2_H
|
||||||
|
|
@ -2368,8 +2698,8 @@ end of each file.
|
||||||
|
|
||||||
\subsection{Min\_circle\_2.C}
|
\subsection{Min\_circle\_2.C}
|
||||||
|
|
||||||
@file <Min_circle_2.C> = @begin
|
@file <../../include/CGAL/Optimisation/Min_circle_2.C> = @begin
|
||||||
@<Min_circle_2 header>("include/CGAL/Min_circle_2.C")
|
@<Min_circle_2 header>("include/CGAL/Optimisation/Min_circle_2.C")
|
||||||
|
|
||||||
// Class implementation (continued)
|
// Class implementation (continued)
|
||||||
// ================================
|
// ================================
|
||||||
|
|
@ -2380,14 +2710,83 @@ end of each file.
|
||||||
@<end of file line>
|
@<end of file line>
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
@! Optimisation_circle_2.h
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
\subsection{Optimisation\_circle\_2.h}
|
||||||
|
|
||||||
|
@file <../../include/CGAL/Optimisation/Optimisation_circle_2.h> = @begin
|
||||||
|
@<Optimisation_circle_2 header>("include/CGAL/Optimisation/Optimisation_circle_2.h")
|
||||||
|
|
||||||
|
#ifndef CGAL_OPTIMISATION_CIRCLE_2_H
|
||||||
|
#define CGAL_OPTIMISATION_CIRCLE_2_H
|
||||||
|
|
||||||
|
// Class declaration
|
||||||
|
// =================
|
||||||
|
@<Optimisation_circle_2 declaration>
|
||||||
|
|
||||||
|
// Class interface
|
||||||
|
// ===============
|
||||||
|
// includes
|
||||||
|
#ifndef CGAL_POINT_2_H
|
||||||
|
# include <CGAL/Point_2.h>
|
||||||
|
#endif
|
||||||
|
#ifndef CGAL_BASIC_CONSTRUCTIONS_2_H
|
||||||
|
# include <CGAL/basic_constructions_2.h>
|
||||||
|
#endif
|
||||||
|
#ifndef CGAL_SQUARED_DISTANCE_2_H
|
||||||
|
# include <CGAL/squared_distance_2.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@<Optimisation_circle_2 interface>
|
||||||
|
|
||||||
|
// Function declarations
|
||||||
|
// =====================
|
||||||
|
// I/O
|
||||||
|
// ---
|
||||||
|
@<Optimisation_circle_2 I/O operators declaration>
|
||||||
|
|
||||||
|
#ifdef CGAL_INCLUDE_TEMPLATE_CODE
|
||||||
|
# include <CGAL/Optimisation_circle_2.C>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // CGAL_OPTIMISATION_CIRCLE_2_H
|
||||||
|
|
||||||
|
@<end of file line>
|
||||||
|
@end
|
||||||
|
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
@! Optimisation_circle_2.C
|
||||||
|
@! ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
\subsection{Optimisation\_circle\_2.C}
|
||||||
|
|
||||||
|
@file <../../include/CGAL/Optimisation/Optimisation_circle_2.C> = @begin
|
||||||
|
@<Optimisation_circle_2 header>("include/CGAL/Optimisation/Optimisation_circle_2.C")
|
||||||
|
|
||||||
|
// Class implementation (continued)
|
||||||
|
// ================================
|
||||||
|
// includes
|
||||||
|
#ifndef CGAL_OPTIMISATION_ASSERTIONS_H
|
||||||
|
# include <CGAL/optimisation_assertions.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// I/O
|
||||||
|
// ---
|
||||||
|
@<Optimisation_circle_2 I/O operators>
|
||||||
|
|
||||||
|
@<end of file line>
|
||||||
|
@end
|
||||||
|
|
||||||
@! ----------------------------------------------------------------------------
|
@! ----------------------------------------------------------------------------
|
||||||
@! Min_circle_2_adapterC2.h
|
@! Min_circle_2_adapterC2.h
|
||||||
@! ----------------------------------------------------------------------------
|
@! ----------------------------------------------------------------------------
|
||||||
|
|
||||||
\subsection{Min\_circle\_2\_adapterC2.h}
|
\subsection{Min\_circle\_2\_adapterC2.h}
|
||||||
|
|
||||||
@file <Min_circle_2_adapterC2.h> = @begin
|
@file <../../include/CGAL/Optimisation/Min_circle_2_adapterC2.h> = @begin
|
||||||
@<Min_circle_2 header>("include/CGAL/Min_circle_2_adapterC2.h")
|
@<Min_circle_2 header>("include/CGAL/Optimisation/Min_circle_2_adapterC2.h")
|
||||||
|
|
||||||
#ifndef CGAL_MIN_CIRCLE_2_ADAPTERC2_H
|
#ifndef CGAL_MIN_CIRCLE_2_ADAPTERC2_H
|
||||||
#define CGAL_MIN_CIRCLE_2_ADAPTERC2_H
|
#define CGAL_MIN_CIRCLE_2_ADAPTERC2_H
|
||||||
|
|
@ -2422,8 +2821,8 @@ end of each file.
|
||||||
|
|
||||||
\subsection{Min\_circle\_2\_adapterH2.h}
|
\subsection{Min\_circle\_2\_adapterH2.h}
|
||||||
|
|
||||||
@file <Min_circle_2_adapterH2.h> = @begin
|
@file <../../include/CGAL/Optimisation/Min_circle_2_adapterH2.h> = @begin
|
||||||
@<Min_circle_2 header>("include/CGAL/Min_circle_2_adapterH2.h")
|
@<Min_circle_2 header>("include/CGAL/Optimisation/Min_circle_2_adapterH2.h")
|
||||||
|
|
||||||
#ifndef CGAL_MIN_CIRCLE_2_ADAPTERH2_H
|
#ifndef CGAL_MIN_CIRCLE_2_ADAPTERH2_H
|
||||||
#define CGAL_MIN_CIRCLE_2_ADAPTERH2_H
|
#define CGAL_MIN_CIRCLE_2_ADAPTERH2_H
|
||||||
|
|
@ -2458,8 +2857,8 @@ end of each file.
|
||||||
|
|
||||||
\subsection{test\_Min\_circle\_2.C}
|
\subsection{test\_Min\_circle\_2.C}
|
||||||
|
|
||||||
@file <test_Min_circle_2.C> = @begin
|
@file <../../test/Optimisation/test_Min_circle_2.C> = @begin
|
||||||
@<Min_circle_2 header>("test/test_Min_circle_2.C")
|
@<Min_circle_2 header>("test/optimisation/test_Min_circle_2.C")
|
||||||
|
|
||||||
@<Min_circle_2 test (includes and typedefs)>
|
@<Min_circle_2 test (includes and typedefs)>
|
||||||
|
|
||||||
|
|
@ -2497,11 +2896,18 @@ end of each file.
|
||||||
@<end of file line>
|
@<end of file line>
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@i file_header.awlib
|
@i ../file_header.awi
|
||||||
|
|
||||||
@macro <Min_circle_2 header>(1) many = @begin
|
@macro <Min_circle_2 header>(1) many = @begin
|
||||||
@<file header>("2D Smallest Enclosing Circle",@1,"Min_circle_2",
|
@<file header>("2D Smallest Enclosing Circle",@1,
|
||||||
"Bernd Gärtner, Sven Schönherr (sven@@inf.fu-berlin.de)",
|
"Optimisation/Min_circle_2","Bernd Gärtner, Sven Schönherr",
|
||||||
|
"$Revision$","$Date$")
|
||||||
|
@end
|
||||||
|
|
||||||
|
@macro <Optimisation_circle_2 header>(1) many = @begin
|
||||||
|
@<file header>("2D Optimisation Circle",@1,
|
||||||
|
"Optimisation/Optimisation_circle_2",
|
||||||
|
"Bernd Gärtner, Sven Schönherr",
|
||||||
"$Revision$","$Date$")
|
"$Revision$","$Date$")
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -2,7 +2,7 @@
|
||||||
@! The CGAL Project
|
@! The CGAL Project
|
||||||
@! Implementation: Random Numbers Generator
|
@! Implementation: Random Numbers Generator
|
||||||
@! ----------------------------------------------------------------------------
|
@! ----------------------------------------------------------------------------
|
||||||
@! file : Kernel/web/Random.aw
|
@! file : web/Random/Random.aw
|
||||||
@! author: Sven Schönherr (sven@inf.fu-berlin.de)
|
@! author: Sven Schönherr (sven@inf.fu-berlin.de)
|
||||||
@! ----------------------------------------------------------------------------
|
@! ----------------------------------------------------------------------------
|
||||||
@! $Revision$
|
@! $Revision$
|
||||||
|
|
@ -74,7 +74,7 @@ created in Section~4.
|
||||||
\renewcommand{\ccEndFont}{}
|
\renewcommand{\ccEndFont}{}
|
||||||
\ccSetThreeColumns{CGAL_Random}{random.restore_seed( Seed seed)}{}
|
\ccSetThreeColumns{CGAL_Random}{random.restore_seed( Seed seed)}{}
|
||||||
\ccPropagateThreeToTwoColumns
|
\ccPropagateThreeToTwoColumns
|
||||||
\input{../spec/Random.tex}
|
\input{../spec/Random/Random.tex}
|
||||||
|
|
||||||
@! ============================================================================
|
@! ============================================================================
|
||||||
@! Implementation
|
@! Implementation
|
||||||
|
|
@ -361,8 +361,8 @@ numbers.
|
||||||
\clearpage
|
\clearpage
|
||||||
\section{Files}
|
\section{Files}
|
||||||
|
|
||||||
@file <Random.h> = @begin
|
@file <include/CGAL/Random/Random.h> = @begin
|
||||||
@<Random header>("include/CGAL/Random.h")
|
@<Random header>("include/CGAL/Random/Random.h")
|
||||||
|
|
||||||
#ifndef CGAL_RANDOM_H
|
#ifndef CGAL_RANDOM_H
|
||||||
#define CGAL_RANDOM_H
|
#define CGAL_RANDOM_H
|
||||||
|
|
@ -398,7 +398,7 @@ numbers.
|
||||||
@<end of file line>
|
@<end of file line>
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@file <Random.C> = @begin
|
@file <src/Random.C> = @begin
|
||||||
@<Random header>("src/Random.C")
|
@<Random header>("src/Random.C")
|
||||||
|
|
||||||
#include <CGAL/Random.h>
|
#include <CGAL/Random.h>
|
||||||
|
|
@ -418,8 +418,8 @@ numbers.
|
||||||
@<end of file line>
|
@<end of file line>
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@file <test_Random.C> = @begin
|
@file <test/Random/test_Random.C> = @begin
|
||||||
@<Random header>("test/test_Random.C")
|
@<Random header>("test/Random/test_Random.C")
|
||||||
|
|
||||||
#include <CGAL/Random.h>
|
#include <CGAL/Random.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
|
@ -433,7 +433,7 @@ numbers.
|
||||||
@<end of file line>
|
@<end of file line>
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@i file_header.awlib
|
@i file_header.awi
|
||||||
|
|
||||||
@macro <Random header>(1) many = @begin
|
@macro <Random header>(1) many = @begin
|
||||||
@<file header>("Random Numbers Generator",@1,"Random",
|
@<file header>("Random Numbers Generator",@1,"Random",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue