mirror of https://github.com/CGAL/cgal
Removed Ron from maintainer list. Updated Ron's email address. Cleaned up documentation and example programs
This commit is contained in:
parent
7ce44a2615
commit
f48ce38473
|
|
@ -432,7 +432,7 @@ function template computes the offset of a given polygon \f$ P\f$
|
|||
by a rational radius \f$ r\f$ in an exact manner. The input
|
||||
polygon $P$ must be either simple or degenerate consisting of two
|
||||
vertices (representing a line segment). The `traits` argument must model
|
||||
the concept `ArrangementTraits_2`; it should be capable of handling
|
||||
the concept `ArrangementTraits_2` and it should be capable of handling
|
||||
conic arcs in an exact manner---using an instance of the
|
||||
`Arr_conic_traits_2` class template with the number
|
||||
types provided by the <span class="textsc">Core</span> library is the
|
||||
|
|
@ -455,69 +455,73 @@ considerably slower:
|
|||
\cgalExample{Minkowski_sum_2/exact_offset.cpp}
|
||||
|
||||
\cgalAdvancedBegin
|
||||
Both functions `approximated_offset_2()` and `offset_polygon_2()`
|
||||
Both functions templates `approximated_offset_2()` and `offset_polygon_2()`
|
||||
also have overloaded versions that accept a decomposition strategy
|
||||
and use the polygon-decomposition approach to compute (or approximate)
|
||||
the offset. These functions are less efficient than their counterparts
|
||||
that employ the convolution approach, and are only included in the package
|
||||
for the sake of completeness.
|
||||
the offset. These functions are typically considerably slower than their
|
||||
counterparts that employ the convolution approach. However, similar to the
|
||||
functions that compute the general Minkowski sum, they are able to compute
|
||||
the offset of polygons with holes, given a decomposition strategy that
|
||||
handles polygons with holes, such as the
|
||||
'Polygon_vertical_decomposition_2<Kernel>' class template.
|
||||
\cgalAdvancedEnd
|
||||
|
||||
\subsection mink_ssecinner_offset Computing Inner Offsets
|
||||
|
||||
An operation closely related to the offset computation, is obtaining the
|
||||
<I>inner offset</I> of a polygon, or <I>insetting</I> it by a given radius.
|
||||
The inset of a polygon \f$ P\f$ with radius \f$ r\f$ is the set of points
|
||||
iside \f$ P\f$ whose distance from the polygon boundary, denoted
|
||||
\f$ \partial P\f$, is at least \f$ r\f$, namely:
|
||||
\f$ \{ p \in P \;|\; {\rm dist}(p, \partial P) \geq r \}\f$.
|
||||
Note that the resulting set may not be connected in case \f$ P\f$ is a
|
||||
non-convex polygon that has some narrow components, and thus is
|
||||
characterized by a (possibly empty) set of polygons whose edges are
|
||||
line segments and circular arcs of radius \f$ r\f$.
|
||||
An operation closely related to the (outer) offset computation, is
|
||||
computing the <I>inner offset</I> of a polygon, or <I>insetting</I> it
|
||||
by a given radius. The inset of a polygon \f$ P\f$ with radius
|
||||
\f$ r\f$ is the set of points iside \f$ P\f$ the distance of which
|
||||
from the polygon boundary, denoted \f$ \partial P\f$, is at least \f$ r\f$,
|
||||
namely: \f$ \{ p \in P \;|\; {\rm dist}(p, \partial P) \geq r \}\f$.
|
||||
Note that the resulting point set may be dicconnected when \f$ P\f$ is a
|
||||
non-convex polygon that has some narrow components. In such a case the
|
||||
resulting set is characterized by a (possibly empty) set of polygons the
|
||||
edges of which are line segments and circular arcs of radius \f$ r\f$.
|
||||
|
||||
The offset can be computed using the convolution method if we traverse the
|
||||
polygon in a <I>clockwise</I> orientation (and not in <I>counterclockwise</I>
|
||||
orientation, as done in case of ofsetting a polygon).
|
||||
As in case of the offset functions, the Minkowski-sum package contains two
|
||||
functions for insetting a simple polygon:
|
||||
The inset can be computed using the convolution method traversing the
|
||||
polygon in a <I>clockwise</I> order (as oppose to the
|
||||
<I>counterclockwise</I> order applied in the case of ofsetting a polygon).
|
||||
As with the (outer) offset functions, the Minkowski-sum package contains two
|
||||
functions for insetting a simple polygon, namely,
|
||||
`approximated_inset_2(P, r, eps, oi)` and `inset_polygon_2(P, r, traits, oi)`.
|
||||
|
||||
The function \link approximated_inset_2() `approximated_inset_2(P, r, eps, oi)`\endlink accepts a polygon
|
||||
\f$ P\f$, an inset radius \f$ r\f$ and \f$ \varepsilon > 0\f$. It constructs an
|
||||
approximation for the inset of \f$ P\f$ by the radius \f$ r\f$, with the approximation
|
||||
error bounded by \f$ \varepsilon\f$. The function returns its output via the
|
||||
output iterator `oi`, whose value-type must be
|
||||
`Gps_circle_segment_traits_2::Polygon_2` representing
|
||||
the polygons that approximates the inset polygon.
|
||||
The \link approximated_inset_2() `approximated_inset_2(P, r, eps, oi)`\endlink
|
||||
function template accepts a polygon \f$ P\f$, an inset radius \f$ r\f$,
|
||||
(a floating-point number) \f$ \epsilon > 0 \f$, and an output
|
||||
iterator `oi`, whose value-type must be an instance of the class template
|
||||
`Gps_circle_segment_traits_2::Polygon_2`. . It constructs an approximation
|
||||
of the inset of \f$ P\f$ by the radius \f$ r\f$, where the approximation
|
||||
error is bounded by \f$ \epsilon\f$. The function returns the polygons that
|
||||
approximate the inset polygon through the output iterator `oi`.
|
||||
|
||||
\cgalExample{Minkowski_sum_2/approx_inset.cpp}
|
||||
|
||||
Similarly, the function
|
||||
\link inset_polygon_2() `inset_polygon_2(P, r, traits, oi)` \endlink computes
|
||||
the exact inset of \f$ P\f$ with radius \f$ r\f$, and returns its output via the given
|
||||
output iterator `oi`. The `traits` parameter should be an instance of
|
||||
an arrangement-traits class that is capable of handling conic arcs in an
|
||||
exact manner, whereas `oi`'s value-type must be
|
||||
`Gps_traits_2::Polygon_2`.
|
||||
Similarly, the function template
|
||||
\link inset_polygon_2() `inset_polygon_2(P, r, traits, oi)` \endlink
|
||||
computes the exact inset of \f$ P\f$ with radius \f$ r\f$, and returns
|
||||
its output through the given output iterator `oi`. The `traits` parameter
|
||||
must model the concept `ArrangementTraits_2` and it should be capable of
|
||||
handling conic arcs in an exact manner, whereas the value-type of `oi`
|
||||
must be an instance of `Gps_traits_2::Polygon_2`.
|
||||
|
||||
\cgalExample{Minkowski_sum_2/exact_inset.cpp}
|
||||
|
||||
\cgalAdvancedBegin
|
||||
Unlike the offset functions, there are no overloaded versions of the inset
|
||||
functions that use convex polygon decomposition to compute insets, as this
|
||||
method cannot be easily generalized for inset computations.
|
||||
\cgalAdvancedEnd
|
||||
Unlike the functions that compute the offsets, there are no overloaded
|
||||
versions of the functions that compute the insets and use convex polygon
|
||||
decomposition, as decomposition approach cannot be easily generalized for
|
||||
inset computations.
|
||||
|
||||
In this context let us mention that there exist overloaded versions of the
|
||||
functions
|
||||
The package also provides overloaded versions of the functions
|
||||
\link approximated_offset_2() `approximated_offset_2(P, r, eps)`\endlink
|
||||
and
|
||||
\link offset_polygon_2() `offset_polygon_2(P, r, traits)`\endlink
|
||||
that accept a <I>polygon with holes</I>
|
||||
\f$ P\f$ and computed its offset. This ofset is obtain by taking the outer offset
|
||||
of \f$ P\f$'s outer boundary, and computing the inner offsets of \f$ P\f$'s holes.
|
||||
The former polygon defines the output boundary of \f$ P \oplus B_r\f$, and the latter
|
||||
define the holes within the result.
|
||||
\f$ P\f$ and compute its offset. This ofset is obtain by computing the
|
||||
outer offset of the outer boundary of \f$ P\f$'s, and computing the inner
|
||||
offsets of the holes of \f$ P\f$. The former polygon defines the output
|
||||
boundary of \f$ P \oplus B_r\f$, and the latter define the holes within
|
||||
the result.
|
||||
|
||||
\section Minkowski_sum_2Acknowledgements Acknowledgements
|
||||
|
||||
|
|
|
|||
|
|
@ -1,63 +1,48 @@
|
|||
//! \file examples/Minkowski_sum_2/approx_inset.cpp
|
||||
// Computing the approximated inset of a polygon.
|
||||
|
||||
#include "ms_rational_nt.h"
|
||||
#include <CGAL/Lazy_exact_nt.h>
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/approximated_offset_2.h>
|
||||
#include <CGAL/offset_polygon_2.h>
|
||||
#include <CGAL/Timer.h>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <list>
|
||||
#include <boost/timer.hpp>
|
||||
|
||||
typedef CGAL::Lazy_exact_nt<Number_type> Lazy_exact_nt;
|
||||
#include <CGAL/basic.h>
|
||||
#include <CGAL/approximated_offset_2.h>
|
||||
|
||||
struct Kernel : public CGAL::Cartesian<Lazy_exact_nt> {};
|
||||
typedef CGAL::Polygon_2<Kernel> Polygon_2;
|
||||
#include "bops_circular.h"
|
||||
|
||||
typedef CGAL::Gps_circle_segment_traits_2<Kernel> Gps_traits_2;
|
||||
typedef Gps_traits_2::Polygon_2 Offset_polygon_2;
|
||||
typedef Gps_traits_2::Polygon_with_holes_2 Offset_polygon_with_holes_2;
|
||||
typedef CGAL::Polygon_2<Kernel> Linear_polygon;
|
||||
|
||||
int main ()
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
// Open the input file.
|
||||
std::ifstream in_file ("tight.dat");
|
||||
// Open the input file and read a polygon.
|
||||
const char* filename = (argc > 1) ? argv[1] : "tight.dat";
|
||||
std::ifstream in_file(filename);
|
||||
|
||||
if (! in_file.is_open())
|
||||
{
|
||||
if (! in_file.is_open()) {
|
||||
std::cerr << "Failed to open the input file." << std::endl;
|
||||
return (1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Read the input polygon.
|
||||
Polygon_2 P;
|
||||
|
||||
Linear_polygon P;
|
||||
in_file >> P;
|
||||
in_file.close();
|
||||
|
||||
std::cout << "Read an input polygon with "
|
||||
<< P.size() << " vertices." << std::endl;
|
||||
std::cout << "Read an input polygon with " << P.size() << " vertices."
|
||||
<< std::endl;
|
||||
|
||||
// Approximate the offset polygon.
|
||||
const Number_type radius = 1;
|
||||
const double err_bound = 0.00001;
|
||||
std::list<Offset_polygon_2> inset_polygons;
|
||||
std::list<Offset_polygon_2>::iterator iit;
|
||||
CGAL::Timer timer;
|
||||
std::list<Polygon> inset_polygons;
|
||||
boost::timer timer;
|
||||
approximated_inset_2(P, 1, 0.00001, std::back_inserter(inset_polygons));
|
||||
double secs = timer.elapsed();
|
||||
|
||||
timer.start();
|
||||
approximated_inset_2 (P, radius, err_bound,
|
||||
std::back_inserter (inset_polygons));
|
||||
timer.stop();
|
||||
|
||||
std::cout << "The inset comprises "
|
||||
<< inset_polygons.size() << " polygon(s)." << std::endl;
|
||||
for (iit = inset_polygons.begin(); iit != inset_polygons.end(); ++iit)
|
||||
{
|
||||
std::cout << " Polygon with "
|
||||
<< iit->size() << " vertices." << std::endl;
|
||||
}
|
||||
std::cout << "Inset computation took "
|
||||
<< timer.time() << " seconds." << std::endl;
|
||||
return (0);
|
||||
std::list<Polygon>::iterator it;
|
||||
std::cout << "The inset comprises " << inset_polygons.size()
|
||||
<< " polygon(s)." << std::endl;
|
||||
for (it = inset_polygons.begin(); it != inset_polygons.end(); ++it)
|
||||
std::cout << " Polygon with " << it->size() << " vertices." << std::endl;
|
||||
std::cout << "Inset computation took " << secs << " seconds." << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ int main(int argc, char* argv[])
|
|||
{
|
||||
// Open the input file and read a polygon.
|
||||
const char* filename = (argc > 1) ? argv[1] : "spiked.dat";
|
||||
std::ifstream in_file(filename);
|
||||
std::ifstream in_file(filename);
|
||||
if (! in_file.is_open()) {
|
||||
std::cerr << "Failed to open the input file." << std::endl;
|
||||
return -1;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef ARR_CONICS_H
|
||||
#define ARR_CONICS_H
|
||||
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/CORE_algebraic_number_traits.h>
|
||||
#include <CGAL/Arr_conic_traits_2.h>
|
||||
#include <CGAL/Arrangement_2.h>
|
||||
|
||||
typedef CGAL::CORE_algebraic_number_traits Nt_traits;
|
||||
typedef Nt_traits::Rational Rational;
|
||||
typedef CGAL::Cartesian<Rational> Rat_kernel;
|
||||
typedef Rat_kernel::Point_2 Rat_point;
|
||||
typedef Rat_kernel::Segment_2 Rat_segment;
|
||||
typedef Rat_kernel::Circle_2 Rat_circle;
|
||||
typedef Nt_traits::Algebraic Algebraic;
|
||||
typedef CGAL::Cartesian<Algebraic> Alg_kernel;
|
||||
|
||||
typedef CGAL::Arr_conic_traits_2<Rat_kernel, Alg_kernel, Nt_traits>
|
||||
Traits;
|
||||
typedef Traits::Point_2 Point;
|
||||
typedef Traits::Curve_2 Conic_arc;
|
||||
typedef Traits::X_monotone_curve_2 X_monotone_conic_arc;
|
||||
typedef CGAL::Arrangement_2<Traits> Arrangement;
|
||||
|
||||
#endif
|
||||
|
|
@ -1,80 +1,60 @@
|
|||
//! \file examples/Minkowski_sum_2/exact_inset.cpp
|
||||
// Computing the exact inner offset of a polygon.
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
#include <iostream>
|
||||
int main ()
|
||||
int main()
|
||||
{
|
||||
std::cout << "Sorry, this example needs CORE ..." << std::endl;
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/CORE_algebraic_number_traits.h>
|
||||
#include <CGAL/Arr_conic_traits_2.h>
|
||||
#include <fstream>
|
||||
#include <boost/timer.hpp>
|
||||
|
||||
#include <CGAL/Gps_traits_2.h>
|
||||
#include <CGAL/offset_polygon_2.h>
|
||||
#include <CGAL/Timer.h>
|
||||
#include <iostream>
|
||||
|
||||
typedef CGAL::CORE_algebraic_number_traits Nt_traits;
|
||||
typedef Nt_traits::Rational Rational;
|
||||
typedef Nt_traits::Algebraic Algebraic;
|
||||
#include "arr_conics.h"
|
||||
|
||||
struct Rat_kernel : public CGAL::Cartesian<Rational> {};
|
||||
struct Alg_kernel : public CGAL::Cartesian<Algebraic> {};
|
||||
struct Conic_traits_2 : public CGAL::Arr_conic_traits_2<Rat_kernel,
|
||||
Alg_kernel,
|
||||
Nt_traits> {};
|
||||
typedef CGAL::Polygon_2<Rat_kernel> Polygon;
|
||||
typedef CGAL::Gps_traits_2<Traits> Gps_traits;
|
||||
typedef Gps_traits::Polygon_2 Offset_polygon;
|
||||
|
||||
typedef CGAL::Polygon_2<Rat_kernel> Polygon_2;
|
||||
|
||||
typedef CGAL::Gps_traits_2<Conic_traits_2> Gps_traits_2;
|
||||
typedef Gps_traits_2::Polygon_2 Offset_polygon_2;
|
||||
|
||||
int main ()
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
// Open the input file.
|
||||
std::ifstream in_file ("tight.dat");
|
||||
|
||||
if (! in_file.is_open())
|
||||
{
|
||||
// Open the input file and read the input polygon.
|
||||
const char* filename = (argc > 1) ? argv[1] : "tight.dat";
|
||||
std::ifstream in_file(filename);
|
||||
if (! in_file.is_open()) {
|
||||
std::cerr << "Failed to open the input file." << std::endl;
|
||||
return (1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Read the input polygon.
|
||||
Polygon_2 P;
|
||||
|
||||
Polygon P;
|
||||
in_file >> P;
|
||||
in_file.close();
|
||||
|
||||
std::cout << "Read an input polygon with "
|
||||
<< P.size() << " vertices." << std::endl;
|
||||
std::cout << "Read an input polygon with " << P.size() << " vertices."
|
||||
<< std::endl;
|
||||
|
||||
// Compute the inner offset of the polygon.
|
||||
Conic_traits_2 traits;
|
||||
const Rational radius = 1;
|
||||
std::list<Offset_polygon_2> inset_polygons;
|
||||
std::list<Offset_polygon_2>::iterator iit;
|
||||
CGAL::Timer timer;
|
||||
|
||||
timer.start();
|
||||
inset_polygon_2 (P, radius, traits,
|
||||
std::back_inserter (inset_polygons));
|
||||
timer.stop();
|
||||
Traits traits;
|
||||
std::list<Offset_polygon> inset_polygons;
|
||||
boost::timer timer;
|
||||
inset_polygon_2(P, 1, traits, std::back_inserter(inset_polygons));
|
||||
double secs = timer.elapsed();
|
||||
|
||||
std::list<Offset_polygon>::iterator it;
|
||||
std::cout << "The inset comprises "
|
||||
<< inset_polygons.size() << " polygon(s)." << std::endl;
|
||||
for (iit = inset_polygons.begin(); iit != inset_polygons.end(); ++iit)
|
||||
{
|
||||
std::cout << " Polygon with "
|
||||
<< iit->size() << " vertices." << std::endl;
|
||||
}
|
||||
std::cout << "Inset computation took "
|
||||
<< timer.time() << " seconds." << std::endl;
|
||||
return (0);
|
||||
for (it = inset_polygons.begin(); it != inset_polygons.end(); ++it)
|
||||
std::cout << " Polygon with " << it->size() << " vertices."
|
||||
<< std::endl;
|
||||
std::cout << "Inset computation took " << secs << " seconds." << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,75 +1,56 @@
|
|||
//! \file examples/Minkowski_sum_2/exact_offset.cpp
|
||||
// Computing the exact offset of a polygon.
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <CGAL/basic.h>
|
||||
|
||||
#ifndef CGAL_USE_CORE
|
||||
#include <iostream>
|
||||
int main ()
|
||||
int main()
|
||||
{
|
||||
std::cout << "Sorry, this example needs CORE ..." << std::endl;
|
||||
return (0);
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
|
||||
#include <CGAL/Cartesian.h>
|
||||
#include <CGAL/CORE_algebraic_number_traits.h>
|
||||
#include <CGAL/Arr_conic_traits_2.h>
|
||||
#include <fstream>
|
||||
#include <boost/timer.hpp>
|
||||
|
||||
#include <CGAL/Gps_traits_2.h>
|
||||
#include <CGAL/offset_polygon_2.h>
|
||||
#include <CGAL/Timer.h>
|
||||
#include <iostream>
|
||||
|
||||
typedef CGAL::CORE_algebraic_number_traits Nt_traits;
|
||||
typedef Nt_traits::Rational Rational;
|
||||
typedef Nt_traits::Algebraic Algebraic;
|
||||
#include "arr_conics.h"
|
||||
|
||||
struct Rat_kernel : public CGAL::Cartesian<Rational> {};
|
||||
struct Alg_kernel : public CGAL::Cartesian<Algebraic> {};
|
||||
struct Conic_traits_2 : public CGAL::Arr_conic_traits_2<Rat_kernel,
|
||||
Alg_kernel,
|
||||
Nt_traits> {};
|
||||
typedef CGAL::Polygon_2<Rat_kernel> Polygon;
|
||||
typedef CGAL::Gps_traits_2<Traits> Gps_traits;
|
||||
typedef Gps_traits::Polygon_with_holes_2 Offset_polygon_with_holes;
|
||||
|
||||
typedef CGAL::Polygon_2<Rat_kernel> Polygon_2;
|
||||
|
||||
typedef CGAL::Gps_traits_2<Conic_traits_2> Gps_traits_2;
|
||||
typedef Gps_traits_2::Polygon_2 Offset_polygon_2;
|
||||
typedef Gps_traits_2::Polygon_with_holes_2 Offset_polygon_with_holes_2;
|
||||
|
||||
int main ()
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
// Open the input file.
|
||||
std::ifstream in_file ("spiked.dat");
|
||||
|
||||
if (! in_file.is_open())
|
||||
{
|
||||
// Open the input file and read the input polygon.
|
||||
const char* filename = (argc > 1) ? argv[1] : "spiked.dat";
|
||||
std::ifstream in_file(filename);
|
||||
if (! in_file.is_open()) {
|
||||
std::cerr << "Failed to open the input file." << std::endl;
|
||||
return (1);
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Read the input polygon.
|
||||
Polygon_2 P;
|
||||
|
||||
Polygon P;
|
||||
in_file >> P;
|
||||
in_file.close();
|
||||
|
||||
std::cout << "Read an input polygon with "
|
||||
<< P.size() << " vertices." << std::endl;
|
||||
std::cout << "Read an input polygon with " << P.size() << " vertices."
|
||||
<< std::endl;
|
||||
|
||||
// Compute the offset polygon.
|
||||
Conic_traits_2 traits;
|
||||
const Rational radius = 5;
|
||||
Offset_polygon_with_holes_2 offset;
|
||||
CGAL::Timer timer;
|
||||
Traits traits;
|
||||
boost::timer timer;
|
||||
Offset_polygon_with_holes offset = CGAL::offset_polygon_2(P, 5, traits);
|
||||
double secs = timer.elapsed();
|
||||
|
||||
timer.start();
|
||||
offset = offset_polygon_2 (P, radius, traits);
|
||||
timer.stop();
|
||||
|
||||
std::cout << "The offset polygon has "
|
||||
<< offset.outer_boundary().size() << " vertices, "
|
||||
<< offset.number_of_holes() << " holes." << std::endl;
|
||||
std::cout << "Offset computation took "
|
||||
<< timer.time() << " seconds." << std::endl;
|
||||
return (0);
|
||||
std::cout << "The offset polygon has " << offset.outer_boundary().size()
|
||||
<< " vertices, " << offset.number_of_holes() << " holes."
|
||||
<< std::endl;
|
||||
std::cout << "Offset computation took " << secs << " seconds." << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
// Andreas Fabri <Andreas.Fabri@geometryfactory.com>
|
||||
// Laurent Rineau <Laurent.Rineau@geometryfactory.com>
|
||||
// Efi Fogel <efif@post.tau.ac.il>
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_ARR_LABELED_TRAITS_2_H
|
||||
#define CGAL_ARR_LABELED_TRAITS_2_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
// Efi Fogel <efifogel@gmail.com>
|
||||
|
||||
#ifndef CGAL_POLYGON_DECOMPOSITION_STRATEGY_ADAPTER_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_EXACT_OFFSET_BASE_H
|
||||
#define CGAL_EXACT_OFFSET_BASE_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_MINKOWSKI_SUM_LABELS_H
|
||||
#define CGAL_MINKOWSKI_SUM_LABELS_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
// Efi Fogel <efifogel@gmail.com>
|
||||
|
||||
#ifndef CGAL_MINKOWSKI_SUM_CONV_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_MINKOWSKI_SUM_DECOMP_2_H
|
||||
#define CGAL_MINKOWSKI_SUM_DECOMP_2_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_OFFSET_CONV_H
|
||||
#define CGAL_OFFSET_CONV_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_OFFSET_DECOMP_H
|
||||
#define CGAL_OFFSET_DECOMP_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_DECOMPOSITION_STRATEGY_ADAPTER_H
|
||||
#define CGAL_DECOMPOSITION_STRATEGY_ADAPTER_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_UNION_OF_CURVE_CYCLES_2_H
|
||||
#define CGAL_UNION_OF_CURVE_CYCLES_2_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_UNION_OF_CYCLES_2_H
|
||||
#define CGAL_UNION_OF_CYCLES_2_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_UNION_OF_SEGMENT_CYCLES_2_H
|
||||
#define CGAL_UNION_OF_SEGMENT_CYCLES_2_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_POLYGON_CONVEX_DECOMPOSITION_H
|
||||
#define CGAL_POLYGON_CONVEX_DECOMPOSITION_H
|
||||
|
|
|
|||
|
|
@ -12,9 +12,6 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Efi Fogel <efifogel@gmail.com>
|
||||
|
||||
#ifndef CGAL_POLYGON_VERTICAL_DECOMPOSITION_2_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
// (based on an old version by Eyal Flato)
|
||||
// Efi Fogel <efifogel@gmail.com>
|
||||
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_APPROXIMATED_OFFSET_H
|
||||
#define CGAL_APPROXIMATED_OFFSET_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
// Efi Fogel <efifogel@gmail.com>
|
||||
|
||||
#ifndef CGAL_MINKOWSKI_SUM_2_H
|
||||
|
|
|
|||
|
|
@ -12,10 +12,7 @@
|
|||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
//
|
||||
// $URL$
|
||||
// $Id$
|
||||
//
|
||||
// Author(s) : Ron Wein <wein@post.tau.ac.il>
|
||||
// Author(s) : Ron Wein <wein_r@yahoo.com>
|
||||
|
||||
#ifndef CGAL_OFFSET_POLYGON_H
|
||||
#define CGAL_OFFSET_POLYGON_H
|
||||
|
|
|
|||
|
|
@ -1,2 +1 @@
|
|||
Ron Wein <wein@post.tau.ac.il>
|
||||
Efi Fogel <efif@post.tau.ac.il>
|
||||
|
|
|
|||
Loading…
Reference in New Issue