Initial revision

This commit is contained in:
Geert-Jan Giezeman 1998-07-22 13:11:32 +00:00
parent 0f1a758b69
commit ae78b51b2b
226 changed files with 3600 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
Packages/Distance_2/web/lis

View File

@ -0,0 +1 @@
Squared distance computations for simple 2D objects.

View File

@ -0,0 +1,72 @@
\cleardoublepage
\chapter{Squared Distances}
There is a family of functions called \ccStyle{CGAL_squared_distance} that
compute the square of the Euclidean distance between two geometric objects.
The squared distance between two two-dimensional points \ccStyle{p1} and
\ccStyle{p2} is defined as $d_{x}^{2} + d_{y}^{2}$, where $d_{x}$
\ccTexHtml{$\equiv$}{==}
\ccStyle{p2.x()-p1.x()} and $d_{y}$\ccTexHtml{$\equiv$}{==} \ccStyle{p2.y()-p1.y()}.
For arbitrary two-dimensional geometric objects \ccStyle{obj1} and
\ccStyle{obj2} the squared distance is defined as the minimal
\ccStyle{CGAL_squared_distance(p1, p2)}, where \ccStyle{p1} is a point of
\ccStyle{obj1} and \ccStyle{p2} is a point of \ccStyle{obj2}.
Note that for objects like triangles and polygons that have an inside (a
bounded region), this inside is part of the object.
So, the squared distance from a point inside a triangle to that triangle is
zero, not the squared distance to the closest edge of the triangle.
The general format of the functions is:
\ccUnchecked{
\ccGlobalFunctionTemplate{R}
{R::FT CGAL_squared_distance(Type1<R> obj1, Type2<R> obj2);}
}
\noindent
where the types \ccStyle{Type1} and \ccStyle{Type2} can be any of the
following:
\begin{itemize}
\item \ccStyle{CGAL_Point_2}
\item \ccStyle{CGAL_Line_2}
\item \ccStyle{CGAL_Ray_2}
\item \ccStyle{CGAL_Segment_2}
\item \ccStyle{CGAL_Triangle_2}
%\item \ccStyle{CGAL_Iso_Rectangle_2}
%\item \ccStyle{CGAL_Polygon_2}
\end{itemize}
Those routines are defined in the header file
\ccStyle{CGAL/squared_distance.h}.
\subsection{Why the square?}
There are routines that compute the square of the Euclidean distance, but no
routines that compute the distance itself. Why?
First of all, the two values can be derived from each other quite easily (by
taking the square root or taking the square). So, supplying only the one and
not the other is only a minor inconvenience for the user.
Second, often either value can be used. This is for example the case when
(squared) distances are compared.
Third, the library wants to stimulate the use of the squared distance instead
of the distance. The squared distance can be computed in more cases and the
computation is cheaper.
We do this by not providing the perhaps more natural routine,
The problem of a distance routine is that it needs the \ccStyle{sqrt}
operation.
This has two drawbacks.
\begin{itemize}
\item
The \ccStyle{sqrt} operation can be costly. Even if it is not very costly for
a specific number type and platform, avoiding it is always cheaper.
\item
There are number types on which no \ccStyle{sqrt} operation is defined,
especially integer types and rationals.
\end{itemize}

View File

@ -0,0 +1,72 @@
\cleardoublepage
\chapter{Squared Distances}
There is a family of functions called \ccStyle{CGAL_squared_distance} that
compute the square of the Euclidean distance between two geometric objects.
The squared distance between two two-dimensional points \ccStyle{p1} and
\ccStyle{p2} is defined as $d_{x}^{2} + d_{y}^{2}$, where $d_{x}$
\ccTexHtml{$\equiv$}{==}
\ccStyle{p2.x()-p1.x()} and $d_{y}$\ccTexHtml{$\equiv$}{==} \ccStyle{p2.y()-p1.y()}.
For arbitrary two-dimensional geometric objects \ccStyle{obj1} and
\ccStyle{obj2} the squared distance is defined as the minimal
\ccStyle{CGAL_squared_distance(p1, p2)}, where \ccStyle{p1} is a point of
\ccStyle{obj1} and \ccStyle{p2} is a point of \ccStyle{obj2}.
Note that for objects like triangles and polygons that have an inside (a
bounded region), this inside is part of the object.
So, the squared distance from a point inside a triangle to that triangle is
zero, not the squared distance to the closest edge of the triangle.
The general format of the functions is:
\ccUnchecked{
\ccGlobalFunctionTemplate{R}
{R::FT CGAL_squared_distance(Type1<R> obj1, Type2<R> obj2);}
}
\noindent
where the types \ccStyle{Type1} and \ccStyle{Type2} can be any of the
following:
\begin{itemize}
\item \ccStyle{CGAL_Point_2}
\item \ccStyle{CGAL_Line_2}
\item \ccStyle{CGAL_Ray_2}
\item \ccStyle{CGAL_Segment_2}
\item \ccStyle{CGAL_Triangle_2}
%\item \ccStyle{CGAL_Iso_Rectangle_2}
%\item \ccStyle{CGAL_Polygon_2}
\end{itemize}
Those routines are defined in the header file
\ccStyle{CGAL/squared_distance.h}.
\subsection{Why the square?}
There are routines that compute the square of the Euclidean distance, but no
routines that compute the distance itself. Why?
First of all, the two values can be derived from each other quite easily (by
taking the square root or taking the square). So, supplying only the one and
not the other is only a minor inconvenience for the user.
Second, often either value can be used. This is for example the case when
(squared) distances are compared.
Third, the library wants to stimulate the use of the squared distance instead
of the distance. The squared distance can be computed in more cases and the
computation is cheaper.
We do this by not providing the perhaps more natural routine,
The problem of a distance routine is that it needs the \ccStyle{sqrt}
operation.
This has two drawbacks.
\begin{itemize}
\item
The \ccStyle{sqrt} operation can be costly. Even if it is not very costly for
a specific number type and platform, avoiding it is always cheaper.
\item
There are number types on which no \ccStyle{sqrt} operation is defined,
especially integer types and rationals.
\end{itemize}

View File

@ -0,0 +1,21 @@
#!/bin/sh
if [ ! -d include ]
then
mkdir include
mkdir include/CGAL
fi
cd web
if [ ! -d lis ]
then
mkdir lis
fi
make xsrcs
echo "Now adapt version and description.txt and run make_zip"

3
Packages/Distance_2/make_zip Executable file
View File

@ -0,0 +1,3 @@
#!/bin/sh
zip -r Distance_2.zip version description.txt include test doc_tex

View File

@ -0,0 +1,2 @@
1 1
4 0 -3 -1

View File

@ -0,0 +1,2 @@
1 0 0 1
0.5 0.5 2 0

View File

@ -0,0 +1,2 @@
1 0 0 1
0.6 0.6 2 0

View File

@ -0,0 +1,2 @@
-1 -1.3 0 1
1 0.5 7 -3

View File

@ -0,0 +1,2 @@
0 0 3 -1
-0.5 2 4 3

View File

@ -0,0 +1,2 @@
-8 -7 11 6
23 -27 -17 16

View File

@ -0,0 +1,2 @@
5 0 0 0
1 1 2 1

View File

@ -0,0 +1,2 @@
0 0 5 0
6 1 8 1

View File

@ -0,0 +1,2 @@
0 0 0 -3
1 4 1 7

View File

@ -0,0 +1,2 @@
0 0 0 0
8 1 6 1

View File

@ -0,0 +1,2 @@
0 0 5 0
8 1 6 1

View File

@ -0,0 +1,2 @@
0 0 5 0
8 0 12 0

View File

@ -0,0 +1,2 @@
0 0 5 0
8 1 12 1.1

View File

@ -0,0 +1,2 @@
0 0 1 0
2 1 2 -1

View File

@ -0,0 +1,2 @@
4 0 -3 -1
1 1 2 11

View File

@ -0,0 +1,2 @@
3 4 7 7
7 0 6 5

View File

@ -0,0 +1,2 @@
-1 1 3 4
7 0 6 5

View File

@ -0,0 +1,2 @@
0 0 5 0
1 1 6 1

View File

@ -0,0 +1,2 @@
0 0 5 0
1 1 2 1

View File

@ -0,0 +1,2 @@
5 0 8 0
1 1 2 1

View File

@ -0,0 +1,2 @@
5 0 0 0
1 1 2 1

View File

@ -0,0 +1,2 @@
0 0
3 1 2.5 0.9

View File

@ -0,0 +1,2 @@
1 1
2 1 10 1

View File

@ -0,0 +1,2 @@
1 1
2 1 -10 1

View File

@ -0,0 +1,2 @@
1 1
-2 1 -10 1

View File

@ -0,0 +1,2 @@
1 1
-2 1 10 1

View File

@ -0,0 +1,2 @@
0 0
2 1 10 1

View File

@ -0,0 +1,2 @@
0 0
2 1 -10 1

View File

@ -0,0 +1,2 @@
0 0
-2 1 -10 1

View File

@ -0,0 +1,2 @@
0 0
-2 1 10 1

View File

@ -0,0 +1,2 @@
0 0
3 1 10 3

View File

@ -0,0 +1,2 @@
0 0 1 0
0.9 0.9 2 2

View File

@ -0,0 +1,2 @@
1 0 2 0
0.9 0.9 2 2

View File

@ -0,0 +1,2 @@
0 0 1 0
1.1 1.1 2 2

View File

@ -0,0 +1,2 @@
1.1 1.1 2 2
0 0 1 0

View File

@ -0,0 +1,2 @@
1 0 0 1
0.5 0.5 2 0

View File

@ -0,0 +1,2 @@
1 0 0 1
0.6 0.6 2 0

View File

@ -0,0 +1,2 @@
-1 -1.3 0 1
1 0.5 7 -3

View File

@ -0,0 +1,2 @@
0 0 3 -1
-0.5 2 4 3

View File

@ -0,0 +1,2 @@
0 0 1 0
-1 1 1 1

View File

@ -0,0 +1,2 @@
3 4 7 7
7 0 6 5

View File

@ -0,0 +1,2 @@
-1 1 3 4
7 0 6 5

View File

@ -0,0 +1,2 @@
0 0 5 0
1 1 6 1

View File

@ -0,0 +1,2 @@
0 0 5 0
1 1 2 1

View File

@ -0,0 +1,2 @@
5 0 8 0
1 1 2 1

View File

@ -0,0 +1,2 @@
5 0 0 0
1 1 2 1

View File

@ -0,0 +1,2 @@
5 0 0 0
1 1 2 1

View File

@ -0,0 +1,2 @@
0 0 5 0
6 1 8 1

View File

@ -0,0 +1,2 @@
0 0 0 -3
1 4 1 7

View File

@ -0,0 +1,3 @@
0 0 5 0
8 1 6 1

View File

@ -0,0 +1,2 @@
0 0 1 0
-1 1 -2 1

View File

@ -0,0 +1,2 @@
0 0 1 0
1 1 -2 1

View File

@ -0,0 +1,2 @@
0 0 1 0
-1 -1 1 1

View File

@ -0,0 +1,2 @@
-1 -1 1 1
0 0 1 0

View File

@ -0,0 +1,2 @@
-1 -1 1 1
-2 0 0 0

View File

@ -0,0 +1,2 @@
-8 -7 11 6
23 -27 -17 16

View File

@ -0,0 +1,2 @@
0 0 1 0
2 1 2 -1

View File

@ -0,0 +1,2 @@
4 0 -3 -1
1 1 2 11

View File

@ -0,0 +1,2 @@
1 0 0 1
0.5 0.5 2 0

View File

@ -0,0 +1,2 @@
1 0 0 1
0.6 0.6 2 0

View File

@ -0,0 +1,2 @@
-1 -1.3 0 1
1 0.5 7 -3

View File

@ -0,0 +1,2 @@
0 0 3 -1
-0.5 2 4 3

View File

@ -0,0 +1,2 @@
-8 -7 11 6
23 -27 -17 16

View File

@ -0,0 +1,2 @@
5 0 0 0
1 1 2 1

View File

@ -0,0 +1,2 @@
0 0 5 0
6 1 8 1

View File

@ -0,0 +1,2 @@
0 0 0 -3
1 4 1 7

View File

@ -0,0 +1,3 @@
0 0 5 0
8 1 6 1

View File

@ -0,0 +1,2 @@
8 0 12 0
0 0 5 0

View File

@ -0,0 +1,2 @@
0 0 1 0
2 1 2 -1

View File

@ -0,0 +1,2 @@
4 0 -3 -1
1 1 2 11

View File

@ -0,0 +1,2 @@
3 4 7 7
7 0 6 5

View File

@ -0,0 +1,2 @@
-1 1 3 4
7 0 6 5

View File

@ -0,0 +1,2 @@
0 0 5 0
1 1 6 1

View File

@ -0,0 +1,2 @@
0 0 5 0
1 1 2 1

View File

@ -0,0 +1,2 @@
5 0 8 0
1 1 2 1

View File

@ -0,0 +1,2 @@
5 0 0 0
1 1 2 1

View File

@ -0,0 +1,2 @@
1 0 1.1 1
0 0 0 1

View File

@ -0,0 +1,2 @@
1 0 0.9 1
0 -10 0 -9

View File

@ -0,0 +1,2 @@
1 0 0.9 -1
0 -10 0 -9

View File

@ -0,0 +1,2 @@
1 0 0.9 1
0 9 0 10

View File

@ -0,0 +1,2 @@
1 0 0.9 -1
0 9 0 10

View File

@ -0,0 +1,2 @@
1 0 0.9 1
0 10 0 9

View File

@ -0,0 +1,2 @@
1 0 1.1 -1
0 0 0 1

View File

@ -0,0 +1,2 @@
1 0 1.1 1
0 -10 0 -9

View File

@ -0,0 +1,2 @@
1 0 1.1 -1
0 -10 0 -9

View File

@ -0,0 +1,2 @@
1 0 1.1 -1
0 9 0 10

View File

@ -0,0 +1,2 @@
1 0 1.1 1
0 10 0 9

View File

@ -0,0 +1,3 @@
1 0 0.9 1
0 0 0 1

View File

@ -0,0 +1,2 @@
1 0 0.9 -1
0 0 0 1

View File

@ -0,0 +1,3 @@
1 0 1 1
0 0 0 1

View File

@ -0,0 +1,2 @@
1 0 1 -1
0 0 0 1

View File

@ -0,0 +1,2 @@
1 0 1 1
0 -10 0 -9

View File

@ -0,0 +1,2 @@
1 0 1 -1
0 -10 0 -9

Some files were not shown because too many files have changed in this diff Show More