From ffb16375f4e4dfaac28c76ee2aadc9d385f4e54f Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Mon, 2 Apr 2007 08:02:18 +0000 Subject: [PATCH] move to the appropriate CGAL package --- .gitattributes | 3 + .../Polytope_distance_d/PkgDescription.tex | 15 +++ .../doc_tex/Polytope_distance_d/main.tex | 12 ++ .../doc_tex/Polytope_distance_d/polydist.eps | 124 ++++++++++++++++++ .../doc_tex/Polytope_distance_d/polydist.gif | Bin 0 -> 33671 bytes .../doc_tex/Polytope_distance_d/polydist.pdf | Bin 0 -> 1565 bytes .../doc_tex/Polytope_distance_d/user_part.tex | 33 +++++ 7 files changed, 187 insertions(+) create mode 100644 Polytope_distance_d/doc_tex/Polytope_distance_d/PkgDescription.tex create mode 100644 Polytope_distance_d/doc_tex/Polytope_distance_d/main.tex create mode 100644 Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.eps create mode 100644 Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.gif create mode 100644 Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.pdf create mode 100644 Polytope_distance_d/doc_tex/Polytope_distance_d/user_part.tex diff --git a/.gitattributes b/.gitattributes index 58f51bf833d..ea1d1d986ca 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1759,6 +1759,9 @@ Polynomial/include/CGAL/Polynomial/ipower.h -text Polynomial/include/CGAL/Polynomial/resultant.h -text Polynomial/include/CGAL/Polynomial/square_free_factorization.h -text Polynomial/include/CGAL/Polynomial/univariate_polynomial_utils.h -text +Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.eps -text svneol=unset#application/postscript +Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.gif -text svneol=unset#image/gif +Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.pdf -text svneol=unset#application/pdf Polytope_distance_d/test/Polytope_distance_d/create_test_PD_cin -text Polytope_distance_d/test/Polytope_distance_d/test_PD.cin -text Polytope_distance_d/test/Polytope_distance_d/test_PD_data/intersecting_segments.data -text diff --git a/Polytope_distance_d/doc_tex/Polytope_distance_d/PkgDescription.tex b/Polytope_distance_d/doc_tex/Polytope_distance_d/PkgDescription.tex new file mode 100644 index 00000000000..31fb1bb844a --- /dev/null +++ b/Polytope_distance_d/doc_tex/Polytope_distance_d/PkgDescription.tex @@ -0,0 +1,15 @@ + +\begin{ccPkgDescription}{Polytope Distance \label{Pkg:PolytopeDistance}} +\ccPkgHowToCiteCgal{cgal:fghhs-pd-07} +\ccPkgSummary{ +This package provides algorithms for computing the distance between the +convex hulls of two point sets in d-dimensional space, without +explicitely constructing the convex hulls. This package further provides +an algorithm to compute the width of a point set. +} + +%\ccPkgDependsOn{} +\ccPkgIntroducedInCGAL{1.1} +\ccPkgLicense{\ccLicenseQPL} +\ccPkgIllustration{Polytope_distance/minCircle.png}{Polytope_distance/minCircle.png} +\end{ccPkgDescription} diff --git a/Polytope_distance_d/doc_tex/Polytope_distance_d/main.tex b/Polytope_distance_d/doc_tex/Polytope_distance_d/main.tex new file mode 100644 index 00000000000..b16e71b695f --- /dev/null +++ b/Polytope_distance_d/doc_tex/Polytope_distance_d/main.tex @@ -0,0 +1,12 @@ + +\ccUserChapter{Polytope Distance \label{chap:PolytopeDistance}} +\ccChapterRelease{Release: WIP (\today)} +\ccChapterAuthor{Kaspar Fischer \and Bernd G{\"a}rtner \and Thomas Herrmann \and Michael Hoffmann + \and Sven Sch{\"o}nherr} + +%\minitoc + +\ccTexHtml{\thispagestyle{empty}}{} + +\input{Polytope_distance/PkgDescription.tex} +\input{Polytope_distance/user_part.tex} diff --git a/Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.eps b/Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.eps new file mode 100644 index 00000000000..db924379937 --- /dev/null +++ b/Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.eps @@ -0,0 +1,124 @@ +%!PS-Adobe-2.0 EPSF-2.0 +%%Title: polydist.eps +%%Creator: fig2dev Version 3.2 Patchlevel 1 +%%CreationDate: Wed Jun 16 19:41:16 1999 +%%For: gaertner@blabla (Bernd Gaertner) +%%Orientation: Portrait +%%BoundingBox: 0 0 165 201 +%%Pages: 0 +%%BeginSetup +%%EndSetup +%%Magnification: 1.0000 +%%EndComments +/$F2psDict 200 dict def +$F2psDict begin +$F2psDict /mtrx matrix put +/col-1 {0 setgray} bind def +/col0 {0.000 0.000 0.000 srgb} bind def +/col1 {0.000 0.000 1.000 srgb} bind def +/col2 {0.000 1.000 0.000 srgb} bind def +/col3 {0.000 1.000 1.000 srgb} bind def +/col4 {1.000 0.000 0.000 srgb} bind def +/col5 {1.000 0.000 1.000 srgb} bind def +/col6 {1.000 1.000 0.000 srgb} bind def +/col7 {1.000 1.000 1.000 srgb} bind def +/col8 {0.000 0.000 0.560 srgb} bind def +/col9 {0.000 0.000 0.690 srgb} bind def +/col10 {0.000 0.000 0.820 srgb} bind def +/col11 {0.530 0.810 1.000 srgb} bind def +/col12 {0.000 0.560 0.000 srgb} bind def +/col13 {0.000 0.690 0.000 srgb} bind def +/col14 {0.000 0.820 0.000 srgb} bind def +/col15 {0.000 0.560 0.560 srgb} bind def +/col16 {0.000 0.690 0.690 srgb} bind def +/col17 {0.000 0.820 0.820 srgb} bind def +/col18 {0.560 0.000 0.000 srgb} bind def +/col19 {0.690 0.000 0.000 srgb} bind def +/col20 {0.820 0.000 0.000 srgb} bind def +/col21 {0.560 0.000 0.560 srgb} bind def +/col22 {0.690 0.000 0.690 srgb} bind def +/col23 {0.820 0.000 0.820 srgb} bind def +/col24 {0.500 0.190 0.000 srgb} bind def +/col25 {0.630 0.250 0.000 srgb} bind def +/col26 {0.750 0.380 0.000 srgb} bind def +/col27 {1.000 0.500 0.500 srgb} bind def +/col28 {1.000 0.630 0.630 srgb} bind def +/col29 {1.000 0.750 0.750 srgb} bind def +/col30 {1.000 0.880 0.880 srgb} bind def +/col31 {1.000 0.840 0.000 srgb} bind def + +end +save +-291.0 393.0 translate +1 -1 scale + +/cp {closepath} bind def +/ef {eofill} bind def +/gr {grestore} bind def +/gs {gsave} bind def +/sa {save} bind def +/rs {restore} bind def +/l {lineto} bind def +/m {moveto} bind def +/rm {rmoveto} bind def +/n {newpath} bind def +/s {stroke} bind def +/sh {show} bind def +/slc {setlinecap} bind def +/slj {setlinejoin} bind def +/slw {setlinewidth} bind def +/srgb {setrgbcolor} bind def +/rot {rotate} bind def +/sc {scale} bind def +/sd {setdash} bind def +/ff {findfont} bind def +/sf {setfont} bind def +/scf {scalefont} bind def +/sw {stringwidth} bind def +/tr {translate} bind def +/tnt {dup dup currentrgbcolor + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add + 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} + bind def +/shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul + 4 -2 roll mul srgb} bind def + /DrawEllipse { + /endangle exch def + /startangle exch def + /yrad exch def + /xrad exch def + /y exch def + /x exch def + /savematrix mtrx currentmatrix def + x y tr xrad yrad sc 0 0 1 startangle endangle arc + closepath + savematrix setmatrix + } def + +/$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def +/$F2psEnd {$F2psEnteredState restore end} def +%%EndProlog + +$F2psBegin +10 setmiterlimit +n -1000 7537 m -1000 -1000 l 8587 -1000 l 8587 7537 l cp clip + 0.06000 0.06000 sc +% Polyline +7.500 slw +n 5175 3525 m 4875 4125 l 5775 4725 l 6975 4425 l 7575 3825 l 6675 3225 l + cp gs col31 1.00 shd ef gr gs col0 s gr +% Polyline +n 4875 5025 m 6750 5475 l 7125 5925 l 6675 6525 l 5175 5625 l cp gs col31 1.00 shd ef gr gs col0 s gr +% Ellipse +n 5775 4720 35 35 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr + +% Polyline +15.000 slw +n 5775 4730 m 5685 5225 l gs col31 1.00 shd ef gr gs col0 s gr +7.500 slw +% Ellipse +n 5685 5220 35 35 0 360 DrawEllipse gs 0.00 setgray ef gr gs col0 s gr + +$F2psEnd +rs diff --git a/Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.gif b/Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.gif new file mode 100644 index 0000000000000000000000000000000000000000..674c75aad79b283fa8d4ace8d40dcbb82c09625d GIT binary patch literal 33671 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 F;s0uv8n^%e literal 0 HcmV?d00001 diff --git a/Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.pdf b/Polytope_distance_d/doc_tex/Polytope_distance_d/polydist.pdf new file mode 100644 index 0000000000000000000000000000000000000000..adeabb1930d5bf5d13a3fe15e079f06b01bc02b3 GIT binary patch literal 1565 zcmbtUZERCj7~a5T$#EtsP8JjJB&OO9=(+dy+hK*av>98sayu4gH{GQ@ZLi$kTkbur ztD1qoG$BNZGX&iagkVAh0txzOGDUDKCO9FHY$-7T&5}uDq7&3#cuv=@Y>PjPH#h0+ z^L{<&eV_N3B7xv0-f9D;E2Vdj0XO8Jw)<7Ec{A$7YKo+xhaw^h$_l|cL_tL&IDq3? z0(-r{AUc*ZU}*HJIM($L-&C4!K4bBXP8Z&sxcJ%$<)n5i*PoA0yol9A zrBU>YHJ7!N{R(aus6eh--+KyKj3QDBqcBd$l203gF^-yfrvnNcKLDsv$0~s~HW`3K zY-l+>jtx4qh_1z>n8XmBDs|j8L_$$QCkAd-RBQgurT#Uds7uOVBsx)# zh}sjBrc4UR7lL+H8}0Oq&{6*Cj)WnPqG8BcIiZ%fe9Ve|MJHfo#F~|bR*VaJeo)Q; z1#@bg$eLO{I|ooe%Sf^s;{fZqD5)tN+r*du_+(;4upX5%Sp`EkKvDU191|SQf$G-q zl+@yO>`AxG)YS#P+F#H5wNwl2VE>QP0>A%ADL%+3)zfz+C80)%>M4ablP+BvH5!dA`fo?0uTd1VyHNZL-pi(mjo)GKBNBsxj! z5`AI6*@tyC0YeqM-(vB4D`FkeaT3sd;sLk#K&QiDbHF65Vh%TL1ACxa#dyw6b-Wbg z9KuS>?V-Y3=I650bz6oxZFDP_VKxulrDYh$Q{^thY_1jjI2Zpw4Wdi3f^~Y6!?HZ- mc_9)tjV>2f;rNnDu-B literal 0 HcmV?d00001 diff --git a/Polytope_distance_d/doc_tex/Polytope_distance_d/user_part.tex b/Polytope_distance_d/doc_tex/Polytope_distance_d/user_part.tex new file mode 100644 index 00000000000..6a90e42b2ec --- /dev/null +++ b/Polytope_distance_d/doc_tex/Polytope_distance_d/user_part.tex @@ -0,0 +1,33 @@ + + +This chapter describes how to compute the distance between the convex +hulls of two given point sets in $d$-dimensional Euclidean space +(\ccc{CGAL::Polytope_distance_d}). Moreover, it is possible to +compute the width of a point set in three dimensions +(\ccc{CGAL::Width_3}). + +\begin{ccHtmlOnly} +
+ +
+\end{ccHtmlOnly} + +\begin{ccTexOnly} +\begin{center} +\includegraphics[width=4cm]{Optimisation/polydist} +\end{center} +\end{ccTexOnly} + +The obvious application is collision detection between convex bodies +in space. In the spirit of the bounding volume application above, it +also makes sense for nonconvex objects: a full intersection test +between complicated objects could in a first stage be approximated +with the test between the convex hulls of the objects. Only if the +hulls intersect, a full intersection test is necessary. + +To dampen fears concerning the performance of the distance +computation, we want to mention that the convex hulls of the input +point sets are not explicitly computed. This avoids a runtime which +grows exponentially in $d$. In fact, the runtime is almost always +linear in the size of the two point sets. +