From 291ffc80c3ffd130fe66b5d0522af7d04eeb015d Mon Sep 17 00:00:00 2001 From: Ester Ezra Date: Wed, 27 Jun 2001 17:32:33 +0000 Subject: [PATCH] Add more fixes to the I/O functions part. --- .../Planar_map/doc_tex/Planar_map/planar.tex | 75 ++++++++++++++----- .../doc_tex/basic/Planar_map/planar.tex | 75 ++++++++++++++----- 2 files changed, 110 insertions(+), 40 deletions(-) diff --git a/Packages/Planar_map/doc_tex/Planar_map/planar.tex b/Packages/Planar_map/doc_tex/Planar_map/planar.tex index d2141a95b62..f09cda43d32 100644 --- a/Packages/Planar_map/doc_tex/Planar_map/planar.tex +++ b/Packages/Planar_map/doc_tex/Planar_map/planar.tex @@ -113,14 +113,40 @@ several algorithms available for the user to choose from. I/O functions for reading a saved planar map from the standard input, writing it to the standard output or drawing it to a graphic stream are also provided. -\paragraph{Sweep line:} -The construction of a \ccc{Planar map} can be done using a sweep -line technique rather than iteratively inserting one curve after another. -The sweep line algorithm perfomrs better, but is done statically and therefore -requires the list of curves in advance. -Due to the sweep line technique, inserting curves which are interior intersect, -overlap or non $x$-monotone is supported. -The interface is given in chapter ~\ref{I1_ChapterPmwx}. + +\paragraph{Sweep Line} +%------------------------------------------------- + The \ccc{Planar Map with Intersections} packge contains a sweep line + utility. The sweep line algorithm can be used to build a planar map + much quicker than in an incremental way, where each curve is + inserted after the other. Two global functions are provided. + + The function \ccc{sweep_to_construct_planar_map} builds a planar map + as a result of the call. Mind that it is possible to call this + function also with an instance the \ccc{Planar_map_2} class rather + than an instance of \ccc{Planar_map_with_intersections_2}. If no + additional insertion of intersecting or non-$x$-monotone curves are + planned follwing the building of the map, then it would be more + efficient (in running time) and less demanding (in traits class + functionality) to use an instance of the former. + + The function \ccc{sweep_to_produce_planar_map_subcurves} does not + build a planar map but rather collects the $x$-monotone pairwise + disjoint subcurves in a container. It is possible to tune the + function so that it will avoid to produce repetitions of overlapping + subcurves in the container or not. + + The sweep line utility calculates intersections of curves. The + \ccc{PlanarMapWithIntersectionTraits_2} concepts requires this + very functionality. Thus, the sweep line functions have to use + traits classes that model the above concept. This is true even for + the case where an instance of \ccc{Planar_map_2} is built. + + %See the sweep line functions reference pages for implementation + %details (\ccc{sweep_to_construct_planar_map}\lcTex{ + %\ccRefPage{CGAL::sweep_to_construct_planar_map}} and + %\ccc{sweep_to_produce_planar_map_subcurves}\lcTex{ + %\ccRefPage{CGAL::sweep_to_produce_planar_map_subcurves}}). \subsection*{Functionality} @@ -197,25 +223,34 @@ returned the curve : 20 50 180 50 \label{PM_sec:example9} The following program demonstrates the use of I/O functions provided for planar maps. %\ccc{Planar_map}. -First the program demonstrates a trivial use of the I/O functions: it defines an empty instance of \ccc{Planar_map_2}, -reads the planar map representation text from the standard input stream, and then prints the resulting planar map -to the standard output stream. -Second, it presents the usage of the verbose format, by defining \ccc{Pm_file_writer} with the verbose flag set to true, +First the program demonstrates a trivial use of the I/O functions: +it defines an empty instance of \ccc{Planar_map_2}, +reads the planar map representation text from the standard input stream, +and then prints the resulting planar map to the standard output stream. + +Second, it presents the usage of the verbose format, +by defining \ccc{Pm_file_writer} with the verbose flag set to true, and then calls the function \ccc{write_pm}. -A use of the interface of the class \ccc{Pm_file_writer} is also presented, by calling to its function -\ccStyle{write_halfedges} which prints all the halfedges of the map. -In addition, the program presents the operators writing the resulting \ccc{Planar map} to graphic streams in commented lines -(The comments can be removed if the user has LEDA installed). +A usage of the interface of the class \ccc{Pm_file_writer} is also presented, +by calling its function \ccStyle{write_halfedges}, which prints all the halfedges of the map. +In addition, the program presents the operators writing the resulting +\ccc{Planar map} to a postscript file when LEDA is installed. +The demo for the planar map package makes use of the output operator +of \ccc{Planar_map_2} to a window stream +(see at \ccc{/demo/Planar_map/demo.C). + +%graphic streams in commented lines +%(The comments can be removed if the user has LEDA installed). \ccIncludeExampleCode{Planar_map/example9.C} -The input of the program is a text file which holds the planar map representation in a special format (which is presented in the reference pages of the the \ccc{Planar Map} package. This representation apears as the first block in the -output file. +The input of the program is a text file which holds the planar map representation in a special format (which is presented in the reference pages of the the \ccc{Planar Map} package. +This representation apears as the first block in the output file. %\ccIncludeExampleCode{Planar_map/example9.cin} -The output is the \ccc{Planar map} includes both formats, non verbose and verbose. In addition the two lists -(non verbose and verbose) of halfedges are written. +The output is the \ccc{Planar map} includes both formats, non-verbose and verbose. In addition the two lists +(non-verbose and verbose) of halfedges are written. \ccIncludeExampleCode{Planar_map/example9.cout} %% EOF %% diff --git a/Packages/Planar_map/doc_tex/basic/Planar_map/planar.tex b/Packages/Planar_map/doc_tex/basic/Planar_map/planar.tex index d2141a95b62..f09cda43d32 100644 --- a/Packages/Planar_map/doc_tex/basic/Planar_map/planar.tex +++ b/Packages/Planar_map/doc_tex/basic/Planar_map/planar.tex @@ -113,14 +113,40 @@ several algorithms available for the user to choose from. I/O functions for reading a saved planar map from the standard input, writing it to the standard output or drawing it to a graphic stream are also provided. -\paragraph{Sweep line:} -The construction of a \ccc{Planar map} can be done using a sweep -line technique rather than iteratively inserting one curve after another. -The sweep line algorithm perfomrs better, but is done statically and therefore -requires the list of curves in advance. -Due to the sweep line technique, inserting curves which are interior intersect, -overlap or non $x$-monotone is supported. -The interface is given in chapter ~\ref{I1_ChapterPmwx}. + +\paragraph{Sweep Line} +%------------------------------------------------- + The \ccc{Planar Map with Intersections} packge contains a sweep line + utility. The sweep line algorithm can be used to build a planar map + much quicker than in an incremental way, where each curve is + inserted after the other. Two global functions are provided. + + The function \ccc{sweep_to_construct_planar_map} builds a planar map + as a result of the call. Mind that it is possible to call this + function also with an instance the \ccc{Planar_map_2} class rather + than an instance of \ccc{Planar_map_with_intersections_2}. If no + additional insertion of intersecting or non-$x$-monotone curves are + planned follwing the building of the map, then it would be more + efficient (in running time) and less demanding (in traits class + functionality) to use an instance of the former. + + The function \ccc{sweep_to_produce_planar_map_subcurves} does not + build a planar map but rather collects the $x$-monotone pairwise + disjoint subcurves in a container. It is possible to tune the + function so that it will avoid to produce repetitions of overlapping + subcurves in the container or not. + + The sweep line utility calculates intersections of curves. The + \ccc{PlanarMapWithIntersectionTraits_2} concepts requires this + very functionality. Thus, the sweep line functions have to use + traits classes that model the above concept. This is true even for + the case where an instance of \ccc{Planar_map_2} is built. + + %See the sweep line functions reference pages for implementation + %details (\ccc{sweep_to_construct_planar_map}\lcTex{ + %\ccRefPage{CGAL::sweep_to_construct_planar_map}} and + %\ccc{sweep_to_produce_planar_map_subcurves}\lcTex{ + %\ccRefPage{CGAL::sweep_to_produce_planar_map_subcurves}}). \subsection*{Functionality} @@ -197,25 +223,34 @@ returned the curve : 20 50 180 50 \label{PM_sec:example9} The following program demonstrates the use of I/O functions provided for planar maps. %\ccc{Planar_map}. -First the program demonstrates a trivial use of the I/O functions: it defines an empty instance of \ccc{Planar_map_2}, -reads the planar map representation text from the standard input stream, and then prints the resulting planar map -to the standard output stream. -Second, it presents the usage of the verbose format, by defining \ccc{Pm_file_writer} with the verbose flag set to true, +First the program demonstrates a trivial use of the I/O functions: +it defines an empty instance of \ccc{Planar_map_2}, +reads the planar map representation text from the standard input stream, +and then prints the resulting planar map to the standard output stream. + +Second, it presents the usage of the verbose format, +by defining \ccc{Pm_file_writer} with the verbose flag set to true, and then calls the function \ccc{write_pm}. -A use of the interface of the class \ccc{Pm_file_writer} is also presented, by calling to its function -\ccStyle{write_halfedges} which prints all the halfedges of the map. -In addition, the program presents the operators writing the resulting \ccc{Planar map} to graphic streams in commented lines -(The comments can be removed if the user has LEDA installed). +A usage of the interface of the class \ccc{Pm_file_writer} is also presented, +by calling its function \ccStyle{write_halfedges}, which prints all the halfedges of the map. +In addition, the program presents the operators writing the resulting +\ccc{Planar map} to a postscript file when LEDA is installed. +The demo for the planar map package makes use of the output operator +of \ccc{Planar_map_2} to a window stream +(see at \ccc{/demo/Planar_map/demo.C). + +%graphic streams in commented lines +%(The comments can be removed if the user has LEDA installed). \ccIncludeExampleCode{Planar_map/example9.C} -The input of the program is a text file which holds the planar map representation in a special format (which is presented in the reference pages of the the \ccc{Planar Map} package. This representation apears as the first block in the -output file. +The input of the program is a text file which holds the planar map representation in a special format (which is presented in the reference pages of the the \ccc{Planar Map} package. +This representation apears as the first block in the output file. %\ccIncludeExampleCode{Planar_map/example9.cin} -The output is the \ccc{Planar map} includes both formats, non verbose and verbose. In addition the two lists -(non verbose and verbose) of halfedges are written. +The output is the \ccc{Planar map} includes both formats, non-verbose and verbose. In addition the two lists +(non-verbose and verbose) of halfedges are written. \ccIncludeExampleCode{Planar_map/example9.cout} %% EOF %%