diff --git a/.gitattributes b/.gitattributes index ca9b205f378..f0d62147f20 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1463,6 +1463,16 @@ Developers_manual/doc_tex/Developers_manual/fig/use_real.pdf -text svneol=unset# Documentation/Installation.txt -text Documentation/Introduction.txt -text Documentation/Preliminaries.txt -text +Documentation/doc/Doxyfile -text +Documentation/doc/DoxygenLayout.xml -text +Documentation/doc/Installation.txt -text +Documentation/doc/Introduction.txt -text +Documentation/doc/Preliminaries.txt -text +Documentation/doc/cgal_manual.bib -text +Documentation/doc/footer.html -text +Documentation/doc/header.html -text +Documentation/doc/main.txt -text +Documentation/doc/stylesheet.css -text Envelope_2/doc_tex/Envelope_2/fig/Envelope_2.png -text Envelope_2/doc_tex/Envelope_2/fig/ex_circle.fig -text svneol=unset#application/octet-stream Envelope_2/doc_tex/Envelope_2/fig/ex_circle.gif -text svneol=unset#image/gif diff --git a/Documentation/doc/Doxyfile b/Documentation/doc/Doxyfile new file mode 100644 index 00000000000..72b2d325509 --- /dev/null +++ b/Documentation/doc/Doxyfile @@ -0,0 +1,420 @@ +# Doxyfile 1.8.0 + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- +DOXYFILE_ENCODING = UTF-8 +PROJECT_NAME = CGAL 4.1 +PROJECT_NUMBER = +PROJECT_BRIEF = +PROJECT_LOGO = cgal_logo.gif +OUTPUT_DIRECTORY = +CREATE_SUBDIRS = NO +OUTPUT_LANGUAGE = English +BRIEF_MEMBER_DESC = YES +REPEAT_BRIEF = YES +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the +ALWAYS_DETAILED_SEC = NO +INLINE_INHERITED_MEMB = NO +FULL_PATH_NAMES = NO +STRIP_FROM_PATH = +STRIP_FROM_INC_PATH = +SHORT_NAMES = NO +JAVADOC_AUTOBRIEF = YES +QT_AUTOBRIEF = YES +MULTILINE_CPP_IS_BRIEF = NO +INHERIT_DOCS = YES +SEPARATE_MEMBER_PAGES = NO +TAB_SIZE = 8 +ALIASES += sc{1}="\1" +ALIASES += cgal="*CGAL*" +ALIASES += stl="*STL*" +ALIASES += gcc="*GCC*" +ALIASES += CC="*C++*" +ALIASES += cgalexample{1}="\include \1" +ALIASES += cgalbib{1}="
BibTeX:
\cite \1
" +ALIASES += license{1}="
License:
\1
" +ALIASES += "models=\xrefitem modelss \"Models\" \"Models\"" +ALIASES += "refines=\xrefitem refiness \"Refines\" \"Refines\"" +ALIASES += "hasModels=\xrefitem asModelss \"Has Models\" \"Has Models\"" +ALIASES += "advanced=\xrefitem advanceds \"Advanced\" \"Advanced\"" +ALIASES += "debug=\xrefitem debugs \"Debug\" \"Debug\"" +ALIASES += beginadvanced="" +ALIASES += endadvanced="" + +TCL_SUBST = +OPTIMIZE_OUTPUT_FOR_C = NO +OPTIMIZE_OUTPUT_JAVA = NO +OPTIMIZE_FOR_FORTRAN = NO +OPTIMIZE_OUTPUT_VHDL = NO +EXTENSION_MAPPING = +BUILTIN_STL_SUPPORT = YES +CPP_CLI_SUPPORT = NO +SIP_SUPPORT = NO +IDL_PROPERTY_SUPPORT = YES +DISTRIBUTE_GROUP_DOC = NO +SUBGROUPING = YES +INLINE_GROUPED_CLASSES = NO +INLINE_SIMPLE_STRUCTS = NO +TYPEDEF_HIDES_STRUCT = NO +SYMBOL_CACHE_SIZE = 0 +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- +EXTRACT_ALL = YES +EXTRACT_PRIVATE = NO +EXTRACT_STATIC = YES +EXTRACT_LOCAL_CLASSES = YES +EXTRACT_LOCAL_METHODS = NO +EXTRACT_ANON_NSPACES = NO +HIDE_UNDOC_MEMBERS = NO +HIDE_UNDOC_CLASSES = NO +HIDE_FRIEND_COMPOUNDS = NO +HIDE_IN_BODY_DOCS = NO +INTERNAL_DOCS = NO +CASE_SENSE_NAMES = NO +HIDE_SCOPE_NAMES = NO +SHOW_INCLUDE_FILES = YES +FORCE_LOCAL_INCLUDES = NO +INLINE_INFO = NO +SORT_MEMBER_DOCS = YES +SORT_BRIEF_DOCS = NO +SORT_MEMBERS_CTORS_1ST = NO +SORT_GROUP_NAMES = NO +SORT_BY_SCOPE_NAME = NO +STRICT_PROTO_MATCHING = NO +GENERATE_TODOLIST = YES +GENERATE_TESTLIST = NO +GENERATE_BUGLIST = NO +GENERATE_DEPRECATEDLIST= YES +ENABLED_SECTIONS = +MAX_INITIALIZER_LINES = 30 +SHOW_USED_FILES = YES +SHOW_FILES = YES +SHOW_NAMESPACES = YES +FILE_VERSION_FILTER = +LAYOUT_FILE = +CITE_BIB_FILES = cgal_manual.bib + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- +QUIET = NO +WARNINGS = YES +WARN_IF_UNDOCUMENTED = YES +WARN_IF_DOC_ERROR = YES +WARN_NO_PARAMDOC = NO +WARN_FORMAT = "$file:$line: $text" +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- +INPUT = ../../Algebraic_foundations/doc/Algebraic_foundations \ + . +# ../../AABB_tree/doc/AABB_tree \ +# ../../Algebraic_kernel_d/doc/Algebraic_kernel_d \ +# ../../Algebraic_kernel_for_circles/doc/Algebraic_kernel_for_circles \ +# ../../Alpha_shapes_2/doc/Alpha_shapes_2 \ +# ../../Alpha_shapes_3/doc/Alpha_shapes_3 \ +# ../../Apollonius_graph_2/doc/Apollonius_graph_2 \ +# ../../Approximate_min_ellipsoid_d/doc/Approximate_min_ellipsoid_d \ +# ../../Arrangement_on_surface_2/doc/Arrangement_on_surface_2 \ +# ../../BGL/doc/BGL \ +# ../../Boolean_set_operations_2/doc/Boolean_set_operations_2 \ +# ../../Box_intersection_d/doc/Box_intersection_d \ +# ../../CGAL_ipelets/doc/CGAL_ipelets \ +# ../../Circular_kernel_2/doc/Circular_kernel_2 \ +# ../../Circular_kernel_3/doc/Circular_kernel_3 \ +# ../../Circulator/doc/Circulator \ +# ../../Combinatorial_map/doc/Combinatorial_map \ +# ../../Convex_decomposition_3/doc/Convex_decomposition_3 \ +# ../../Convex_hull_2/doc/Convex_hull_2 \ +# ../../Convex_hull_3/doc/Convex_hull_3 \ +# ../../Convex_hull_d/doc/Convex_hull_d \ +# ../../Developers_manual/doc/Developers_manual \ +# ../../Envelope_2/doc/Envelope_2 \ +# ../../Envelope_3/doc/Envelope_3 \ +# ../../Generator/doc/Generator \ +# ../../Geomview/doc/Geomview \ +# ../../GraphicsView/doc/GraphicsView \ +# ../../HalfedgeDS/doc/HalfedgeDS \ +# ../../Hash_map/doc/Hash_map \ +# ../../Installation/doc/Installation \ +# ../../Interpolation/doc/Interpolation \ +# ../../Interval_skip_list/doc/Interval_skip_list \ +# ../../iostream/doc/iostream \ +# ../../Jet_fitting_3/doc/Jet_fitting_3 \ +# ../../Kernel_23/doc/Kernel_23 \ +# ../../Kernel_d/doc/Kernel_d \ +# ../../Kinetic_data_structures/doc/Kinetic_data_structures \ +# ../../Largest_empty_rect_2/doc/Largest_empty_rect_2 \ +# ../../Linear_cell_complex/doc/Linear_cell_complex \ +# ../../Manual/doc/Manual \ +# ../../Manual_tools/doc/Manual_tools \ +# ../../Matrix_search/doc/Matrix_search \ +# ../../Mesh_2/doc/Mesh_2 \ +# ../../Mesh_3/doc/Mesh_3 \ +# ../../Min_annulus_d/doc/Min_annulus_d \ +# ../../Min_circle_2/doc/Min_circle_2 \ +# ../../Min_ellipse_2/doc/Min_ellipse_2 \ +# ../../Minkowski_sum_2/doc/Minkowski_sum_2 \ +# ../../Minkowski_sum_3/doc/Minkowski_sum_3 \ +# ../../Min_quadrilateral_2/doc/Min_quadrilateral_2 \ +# ../../Min_sphere_d/doc/Min_sphere_d \ +# ../../Min_sphere_of_spheres_d/doc/Min_sphere_of_spheres_d \ +# ../../Modifier/doc/Modifier \ +# ../../Modular_arithmetic/doc/Modular_arithmetic \ +# ../../Nef_2/doc/Nef_2 \ +# ../../Nef_3/doc/Nef_3 \ +# ../../Nef_S2/doc/Nef_S2 \ +# ../../Number_types/doc/Number_types \ +# ../../Optimisation_basic/doc/Optimisation_basic \ +# ../../Optimisation_doc/doc/Optimisation_doc \ +# ../../Partition_2/doc/Partition_2 \ +# ../../Periodic_3_triangulation_3/doc/Periodic_3_triangulation_3 \ +# ../../Point_set_2/doc/Point_set_2 \ +# ../../Point_set_processing_3/doc/Point_set_processing_3 \ +# ../../Polygon/doc/Polygon \ +# ../../Polyhedron/doc/Polyhedron \ +# ../../Polynomial/doc/Polynomial \ +# ../../Polytope_distance_d/doc/Polytope_distance_d \ +# ../../Principal_component_analysis/doc/Principal_component_analysis \ +# ../../Profiling_tools/doc/Profiling_tools \ +# ../../QP_solver/doc/QP_solver \ +# ../../Qt_widget/doc/Qt_widget \ +# ../../Random_numbers/doc/Random_numbers \ +# ../../Ridges_3/doc/Ridges_3 \ +# ../../SearchStructures/doc/SearchStructures \ +# ../../Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2 \ +# ../../Skin_surface_3/doc/Skin_surface_3 \ +# ../../Snap_rounding_2/doc/Snap_rounding_2 \ +# ../../Spatial_searching/doc/Spatial_searching \ +# ../../Spatial_sorting/doc/Spatial_sorting \ +# ../../STL_Extension/doc/STL_Extension \ +# ../../Straight_skeleton_2/doc/Straight_skeleton_2 \ +# ../../Stream_lines_2/doc/Stream_lines_2 \ +# ../../Stream_support/doc/Stream_support \ +# ../../Subdivision_method_3/doc/Subdivision_method_3 \ +# ../../Surface_mesher/doc/Surface_mesher \ +# ../../Surface_mesh_parameterization/doc/Surface_mesh_parameterization \ +# ../../Surface_mesh_simplification/doc/Surface_mesh_simplification \ +# ../../Surface_reconstruction_points_3/doc/Surface_reconstruction_points_3 \ +# ../../Triangulation_2/doc/Triangulation_2 \ +# ../../Triangulation_3/doc/Triangulation_3 \ +# ../../Union_find/doc/Union_find \ +# ../../Voronoi_diagram_2/doc/Voronoi_diagram_2 \ +# ../../Width_3/doc/Width_3 \ + . +INPUT_ENCODING = UTF-8 +FILE_PATTERNS = *.h \ + *.txt +RECURSIVE = YES +EXCLUDE = +EXCLUDE_SYMLINKS = NO +EXCLUDE_PATTERNS = +EXCLUDE_SYMBOLS = +EXAMPLE_PATH = +EXAMPLE_PATTERNS = * +EXAMPLE_RECURSIVE = NO +IMAGE_PATH = ../../Algebraic_foundations/doc/Algebraic_foundations/fig +INPUT_FILTER = +FILTER_PATTERNS = +FILTER_SOURCE_FILES = NO +FILTER_SOURCE_PATTERNS = + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- +SOURCE_BROWSER = NO +INLINE_SOURCES = NO +STRIP_CODE_COMMENTS = YES +REFERENCED_BY_RELATION = NO +REFERENCES_RELATION = NO +REFERENCES_LINK_SOURCE = YES +USE_HTAGS = NO +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- +ALPHABETICAL_INDEX = YES +COLS_IN_ALPHA_INDEX = 5 +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- +GENERATE_HTML = YES +HTML_OUTPUT = html +HTML_FILE_EXTENSION = .html +HTML_HEADER = header.html +HTML_FOOTER = footer.html +HTML_STYLESHEET = stylesheet.css +HTML_EXTRA_FILES = +HTML_COLORSTYLE_HUE = 60 +HTML_COLORSTYLE_SAT = 180 +HTML_COLORSTYLE_GAMMA = 78 +HTML_TIMESTAMP = YES +HTML_DYNAMIC_SECTIONS = YES +GENERATE_DOCSET = NO +DOCSET_FEEDNAME = "Doxygen generated docs" +DOCSET_BUNDLE_ID = org.doxygen.Project +DOCSET_PUBLISHER_ID = org.doxygen.Publisher +DOCSET_PUBLISHER_NAME = Publisher +GENERATE_HTMLHELP = NO +CHM_FILE = +HHC_LOCATION = +GENERATE_CHI = NO +CHM_INDEX_ENCODING = +BINARY_TOC = NO +TOC_EXPAND = NO +GENERATE_QHP = NO +QCH_FILE = +QHP_NAMESPACE = org.doxygen.Project +QHP_VIRTUAL_FOLDER = doc +QHP_CUST_FILTER_NAME = +QHP_CUST_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = +QHG_LOCATION = +GENERATE_ECLIPSEHELP = NO +ECLIPSE_DOC_ID = org.doxygen.Project +DISABLE_INDEX = NO +GENERATE_TREEVIEW = NO +ENUM_VALUES_PER_LINE = 4 +TREEVIEW_WIDTH = 250 +EXT_LINKS_IN_WINDOW = NO +FORMULA_FONTSIZE = 10 +FORMULA_TRANSPARENT = YES +USE_MATHJAX = YES +MATHJAX_RELPATH = http://www.mathjax.org/mathjax +MATHJAX_EXTENSIONS = +SEARCHENGINE = YES +SERVER_BASED_SEARCH = NO + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- +GENERATE_LATEX = NO +LATEX_OUTPUT = latex +LATEX_CMD_NAME = latex +MAKEINDEX_CMD_NAME = makeindex +COMPACT_LATEX = NO +PAPER_TYPE = a4 +EXTRA_PACKAGES = +LATEX_HEADER = +LATEX_FOOTER = +PDF_HYPERLINKS = YES +USE_PDFLATEX = YES +LATEX_BATCHMODE = NO +LATEX_HIDE_INDICES = NO +LATEX_SOURCE_CODE = NO +LATEX_BIB_STYLE = plain + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- +GENERATE_RTF = NO +RTF_OUTPUT = rtf +COMPACT_RTF = NO +RTF_HYPERLINKS = NO +RTF_STYLESHEET_FILE = +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- +GENERATE_MAN = NO +MAN_OUTPUT = man +MAN_EXTENSION = .3 +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- +GENERATE_XML = NO +XML_OUTPUT = xml +XML_SCHEMA = +XML_DTD = +XML_PROGRAMLISTING = NO + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- +GENERATE_PERLMOD = NO +PERLMOD_LATEX = NO +PERLMOD_PRETTY = YES +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- +ENABLE_PREPROCESSING = YES +MACRO_EXPANSION = NO +EXPAND_ONLY_PREDEF = NO +SEARCH_INCLUDES = YES +INCLUDE_PATH = +INCLUDE_FILE_PATTERNS = +PREDEFINED = +EXPAND_AS_DEFINED = +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- +TAGFILES = +GENERATE_TAGFILE = +ALLEXTERNALS = YES +EXTERNAL_GROUPS = YES +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- +CLASS_DIAGRAMS = YES +MSCGEN_PATH = +HIDE_UNDOC_RELATIONS = YES +HAVE_DOT = YES +DOT_NUM_THREADS = 0 +DOT_FONTNAME = Helvetica +DOT_FONTSIZE = 10 +DOT_FONTPATH = +CLASS_GRAPH = YES +COLLABORATION_GRAPH = NO +GROUP_GRAPHS = NO +UML_LOOK = NO +TEMPLATE_RELATIONS = YES +INCLUDE_GRAPH = YES +INCLUDED_BY_GRAPH = YES +CALL_GRAPH = NO +CALLER_GRAPH = NO +GRAPHICAL_HIERARCHY = YES +DIRECTORY_GRAPH = YES +DOT_IMAGE_FORMAT = png +INTERACTIVE_SVG = YES +DOT_PATH = +DOTFILE_DIRS = +MSCFILE_DIRS = +DOT_GRAPH_MAX_NODES = 50 +MAX_DOT_GRAPH_DEPTH = 0 +DOT_TRANSPARENT = NO +DOT_MULTI_TARGETS = NO +GENERATE_LEGEND = YES +DOT_CLEANUP = YES \ No newline at end of file diff --git a/Documentation/doc/DoxygenLayout.xml b/Documentation/doc/DoxygenLayout.xml new file mode 100644 index 00000000000..95740e4b9c7 --- /dev/null +++ b/Documentation/doc/DoxygenLayout.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Documentation/doc/Installation.txt b/Documentation/doc/Installation.txt new file mode 100644 index 00000000000..29a6449b196 --- /dev/null +++ b/Documentation/doc/Installation.txt @@ -0,0 +1,8 @@ +/*! + +\page installation Installation + +\author CGAL Editorial Board + + +*/ diff --git a/Documentation/doc/Introduction.txt b/Documentation/doc/Introduction.txt new file mode 100644 index 00000000000..af60a75368f --- /dev/null +++ b/Documentation/doc/Introduction.txt @@ -0,0 +1,163 @@ +/*! + +\page introduction Introduction + +\author CGAL Editorial Board + +The goal of the \cgal Open Source Project is to provide *easy access +to efficient and reliable geometric algorithms* in the form of a C++ +library. + +The Computational Geometry Algorithms Library offers data structures +and algorithms like triangulations, Voronoi diagrams, Boolean +operations on polygons and on polyhedra, arrangements of curves, mesh +generation, geometry processing, convex hull algorithms, to name just +a few. + + +All these data structures and algorithms operate on geometric objects +like points and segments, and perform geometric tests on them. +These objects and predicates are regrouped in \cgal *Kernels*. + + +Finally, the \cgal *Support Library* offers geometric object +generators and spatial sorting functions, as well as a matrix search +framework and a solver for linear and quadratic programs. It further +offers interfaces to third party software such as the *Gui* libraries +Qt, Geomview, and the Boost Graph Library. + + +Organization of the Manual +========================== + +This manual is organized in several parts covering the many domains +of computational geometry. Each part consists of several chapters, +and each chapter is split into a *user manual* and a *reference +manual*. The user manual gives the general idea and comes with examples. +The reference manual presents the **Api** of the various classes +and functions. + +The manual has a table of contents, and an index, as well as a package overview, +which gives a short paragraph what the package is about, what license +it has, and on which other packages it depends. It further provides +links to precompiled demo programs for the Windows platform. + +Demos and Examples +================== + +In the distribution of the library you find the two directories *demo* +and *examples*. They contain subdirectories for the \cgal packages. +The demos use third party libraries for the graphical user interface. The +examples don't have this dependency and most examples are refered to in the +user manual. + +Hello World +=========== + +In this section we will take a closer look at three \cgal example +programs, all of them computing the 2D convex hull of a set of points. + + +Points in a built-in array +-------------------------- + +In the first example we have an array of five points. +As the convex hull of these points is a subset of the input +it is safe to provide an array for storing the result which +has the same size. + +\cgalexample{Convex_hull_2/array_convex_hull_2.cpp} + + +All \cgal header files are in the subdirectory ``include/CGAL''. All \cgal +classes and functions are in the namespace ``CGAL''. The geometric +primitives, like the point type, are defined in a kernel. \cgal comes +with several kernels, and as the convex hull algorithm only makes +comparisons of coordinates and orientation tests of input points, +we can choose a kernel that provides exact predicates, but no +exact geometric construction. + +The convex hull function takes three arguments, the start +and past-the-end pointer for the input, and the start pointer of the +array for the result. The function returns the pointer +into the result array just behind the last convex hull +point written, so the pointer difference tells us how +many points are on the convex hull. + + +Points in a STL vector +---------------------- + +In the second example we replace the built-in array +by a `std::vector` of the Standard Template Library. + +\cgalexample{Convex_hull_2/vector_convex_hull_2.cpp} + +We put some points in the vector calling the `push_back()` +method of the `std::vector` class. + +We then call the convex hull function. The first two arguments, +`points.begin()} and `points.end()` are *iterators*, which are a +generalization of pointers: they can be dereferenced and +incremented. The convex hull function is *generic* in the sense +that it takes as input whatever can be dereferenced and incremented. + +The third argument is where the result gets written to. In the +previous example we provided a pointer to allocated memory. The +generalization of such a pointer is the *output iterator*, which +allows to increment and assign a value to the dereferenced iterator. +In this example we start with an empty vector which grows as needed. +Therefore, we cannot simply pass it `result.begin()`, but an output +iterator generated by the helper function +`std::back_inserter(result)`. This output iterator does nothing when +incremented, and calls `result.push_back(..)` on the assignment. + +Points in Streams +----------------- + +The last example program reads a sequence of points from standard +input `std::cin` and writes the points on the convex hull to standard +output `std::cout`. + +Instead of storing the points in a container such as an `std::vector`, +and passing the begin/end iterator of the vector to the convex hull +function, we use helper classes that turn file pointers into +iterators. + +\cgalexample{Convex_hull_2/iostream_convex_hull_2.cpp} + +In the example code you see input and output stream iterators +templated with the point type. A `std::istream_iterator` +hence allows to traverse a sequence of objects of type `Point_2`, which +come from standard input as we pass `std::cin` to the +constructor of the iterator. The variable `input_end` denotes +end-of-file. + +A `std::ostream_iterator` is an output iterator, that is an +iterator to which, when dereferenced, we can assign a value. When +such an assignment to the output iterator happens somewhere inside the +convex hull function, the iterator just writes the assigned point to +standard output, because the iterator was constructed with +`std::cout`. + +The call to the convex hull function takes three arguments, the input +iterator range, and the output iterator to which the result gets +written. + +If you know the \stl, the Standard Template Library, the above makes +perfect sense, as this is the way the \stl decouples algorithms from +containers. If you don't know the \stl, you maybe better first +familiarize yourself with its basic ideas. + +Further Reading +=============== + +We also recommend the standard text books by +Josuttis \cite cgal:j-csl-99 , or Austern \cite cgal:a-gps-98 for the +\stl and its notion of *concepts* and *models*. + +Other resources for \cgal are the tutorials at +http://www.cgal.org/Tutorials/ and the user support page at +http://www.cgal.org/. + +*/ diff --git a/Documentation/doc/Preliminaries.txt b/Documentation/doc/Preliminaries.txt new file mode 100644 index 00000000000..19924bd12c6 --- /dev/null +++ b/Documentation/doc/Preliminaries.txt @@ -0,0 +1,472 @@ +/*! + +\page preliminaries Preliminaries + +\author CGAL Editorial Board + +This chapter lists the licenses +under which the \cgal datastructures and algorithms are distributed. +The chapter further explains how to control inlining, thread safety, +code deprecation, checking of pre- and postconditions, +and how to alter the failure behavior. + +\section licenseIssues License Issues + +\cgal is distributed under a dual license scheme, that is under the +\sc{Gpl}/\sc{Lgpl} open source license, as well as under commercial licenses. + +\cgal consists of different parts covered by different open source licenses. +In this section we explain the essence of the different licenses, as well as +the rationale why we have chosen them. + +The fact that \cgal is Open Source software does not mean that users are free +to do whatever they want with the software. Using the software means to accept +the license, which has the status of a contract between the user and the owner +of the \cgal software. + +\subsection licensesGPL GPL + +The \sc{Gpl} is an Open Source license that, if you distribute your software +based on \sc{Gpl} ed \cgal data structures,you are obliged to distribute the +source code of your software under the \sc{Gpl}. + +The exact license terms can be found at the Free Software Foundation +web site: http://www.gnu.org/copyleft/gpl.html. + +\subsection licensesLGPL LGPL + +The \sc{Lgpl} is an Open Source license that obliges you to distribute +modifications you make on \cgal software accessible to the users. +In contrast to the \sc{Gpl} , there is no obligation to make the source +code of software you build on top of \sc{Lgpl}ed \cgal data structures + +The exact license terms can be found at the Free Software Foundation web site: +http://www.gnu.org/copyleft/lesser.html. + +Rationale of the License Choice +------------------------------ + +We have chosen the \sc{Gpl} and the \sc{Lgpl} as they are well known +and well understood open source licenses. The former restricts +commercial use, and the latter allows to promote software as de facto standard +so that people can build new higher level data structures on top. + +Therefore, the packages forming a foundation layer are distributed under +the \sc{Lgpl}, and the higher level packages under the \sc{Gpl}. +The package overview states for each package under which license +it is distributed. + +\subsection licensesCommercial Commercial Licenses + +Users who cannot comply to the Open Source license terms can buy individual +data structures under various commercial licenses from GeometryFactory: +http://www.geometryfactory.com/. License fees paid by commercial +customers are reinvested in R\&D performed by the \cgal project partners, +as well as in evolutive maintenance. + +Marking of Special Functionality +================================ + +In this manual you will encounter sections marked as follows. + +Advanced Features +----------------- + +Some functionality is considered more advanced, for example because it is +relatively low-level, or requires special care to be properly used. + +\advanced Such functionality is identified this way in the manual. + +Debugging Support Features +-------------------------- + +Usually related to advanced features that for example may not guarantee +class invariants, some functionality is provided that helps debugging, +for example by performing invariants checks on demand. + +\debug Such functionality is identified this way in the manual. + +Deprecated Code +--------------- + +Sometimes, the \cgal project decides that a feature is deprecated. This means +that it still works in the current release, but it will be removed in the next, +or a subsequent release. This can happen when we have found a better way to do +something, and we would like to reduce the maintenance cost of \cgal at some +point in the future. There is a trade-off between maintaining backward +compatibility and implementing new features more easily. + +In order to help users manage the changes to apply to their code, we attempt +to make \cgal code emit warnings when deprecated code is used. This can be +done using some compiler specific features. Those warnings can be disabled +by defining the macro `CGAL_NO_DEPRECATION_WARNINGS`. On top of this, we +also provide a macro, `CGAL_NO_DEPRECATED_CODE`, which, when defined, +disables all deprecated features. This allows users to easily test if their +code relies on deprecated features. + +\deprecated Such functionality is identified this way in the manual. + +Namespace CGAL +============== + +All names introduced by \cgal, especially those documented in these +manuals, are in a namespace called `CGAL`, which is in global +scope. A user can either qualify names from \cgal by adding +`CGAL::`, e.g., `CGAL::Point_2< CGAL::Exact_predicates_inexact_constructions_kernel >`, +make a single name from \cgal visible in a scope via a `using` +statement, e.g., `using CGAL::Point_2;`, and then use this name +unqualified in this scope, or even make all names from namespace +`CGAL` visible in a scope with `using namespace CGAL;`. The +latter, however, is likely to give raise to name conflicts and is +therefore not recommended. + + +Inclusion Order of Header Files +=============================== + +Not all compilers fully support standard header names. \cgal provides +workarounds for these problems in `CGAL/basic.h`. Consequently, as a +golden rule, you should always include `CGAL/basic.h` first in your +programs (or `CGAL/Cartesian.h`, or `CGAL/Homogeneous.h`, since they +include `CGAL/basic.h` first). + + +Thread Safety +============= + +\cgal is progressively being made thread-safe. The guidelines which are followed +are: + +- it should be possible to use different objects in different threads at the same time (of the same type or not), +- it is not safe to access the same object from different threads at the same time, unless otherwise specified in the class documentation. + +If the macro `CGAL_HAS_THREADS` is not defined, then \cgal assumes it can use +any thread-unsafe code (such as static variables). By default, this macro is not +defined, unless `BOOST_HAS_THREADS` or `_OPENMP` is defined. It is possible +to force its definition on the command line, and it is possible to prevent its default +definition by setting `CGAL_HAS_NO_THREADS` from the command line. + + +C++0x Support +============= + +\cgal is based on the \CC standard released in 1998 (and later refined in 2003). +A new major version of this standard is being prepared, and is refered to as C++0x. +Some compilers and standard library implementations already provide some of the +functionality of this new standard, as a preview. For example, \gcc provides +a command-line switch `-std=c++0x` which enables some of those features. + +\cgal attempts to support this mode progressively, and already makes use of +some of these features if they are available, although no extensive support has +been implemented yet. + +Functor Return Types +==================== + +\cgal functors support the +result_of +protocol. If a functor `F` has the same return type across all +overloads of `operator()`, the nested type +`F::result_type` is defined to be that type. Otherwise the +return type of calling the functor with an argument of type +`Arg` can be accessed through +`boost::result_of::type`. + +\section secchecks Checks + +Much of the \cgal code contains checks. +For example, all checks used in the kernel code are prefixed by +`CGAL_KERNEL`. +Other packages have their own prefixes, as documented in the corresponding +chapters. +Some are there to check if the kernel behaves correctly, others are there to +check if the user calls kernel routines in an acceptable manner. + +There are five types of checks. +The first three are errors and lead to a halt of the program if they fail. +The fourth only leads to a warning, and the last one is compile-time only. + +
+
Preconditions
+
+check if the caller of a routine has called it in a proper fashion. +If such a check fails it is the responsibility of the caller (usually the user of the library). +
+
Postconditions
+
+check if a routine does what it promises to do. +If such a check fails it is the fault of this routine, so of the library. +
+
Assertions
+
+are other checks that do not fit in the above two +categories. +
+
Warnings
+
+are checks for which it is not so severe if they fail. +
+
Static assertions
+
+are compile-time assertions, used e.g. to verify +the values of compile-time constants or compare types for (in)equality. +
+
+ +By default, all of these checks are performed. +It is however possible to turn them off through the use of compile time +switches. +For example, for the checks in the kernel code, these switches are the +following: +`CGAL_KERNEL_NO_PRECONDITIONS`, +`CGAL_KERNEL_NO_POSTCONDITIONS`, +`CGAL_KERNEL_NO_ASSERTIONS` and +`CGAL_KERNEL_NO_WARNINGS`. + +So, in order to compile the file `foo.cpp` with the postcondition checks +off, you can do: + +`CC -DCGAL_KERNEL_NO_POSTCONDITIONS foo.cpp` + +This is also preferably done by modifying your makefile by adding +`-DCGAL_KERNEL_NO_POSTCONDITIONS` to the `CXXFLAGS` variable. + +The name `KERNEL` in the macro name can be replaced by a package +specific name in order to control assertions done in a given package. +This name is given in the documentation of the corresponding package, +in case it exists. + +Note that global macros can also be used to control the behavior over the +whole \cgal library: + +- `CGAL_NO_PRECONDITIONS`, +- `CGAL_NO_POSTCONDITIONS`, +- `CGAL_NO_ASSERTIONS`, +- `CGAL_NO_WARNINGS` and +- `CGAL_NDEBUG`. + + +Setting the macro `CGAL_NDEBUG` disables all checks. +Note that the standard flag `NDEBUG` sets `CGAL_NDEBUG`, but it also +affects the standard `assert` macro. +This way, adding `-DCGAL_NDEBUG` to your compilation flags removes +absolutely all checks. This is the default recommended setup for performing +timing benchmarks for example. + +Not all checks are on by default. +The first four types of checks can be marked as expensive or exactness checks +(or both). +These checks need to be turned on explicitly by supplying one or both of +the compile time switches `CGAL_KERNEL_CHECK_EXPENSIVE` and +`CGAL_KERNEL_CHECK_EXACTNESS`. + +Expensive checks are, as the word says, checks that take a considerable +time to compute. +Considerable is an imprecise phrase. +Checks that add less than 10 percent to the execution time of the routine +they are in are not expensive. +Checks that can double the execution time are. +Somewhere in between lies the border line. +Checks that increase the asymptotic running time of an algorithm are always +considered expensive. +Exactness checks are checks that rely on exact arithmetic. +For example, if the intersection of two lines is computed, the postcondition +of this routine may state that the intersection point lies on both lines. +However, if the computation is done with doubles as number type, this may not +be the case, due to round off errors. +So, exactness checks should only be turned on if the computation is done +with some exact number type. + +By definition, static assertions are both inexpensive and unaffected by precision +management. Thus, the categories do not apply for static assertions. + +Altering the Failure Behavior +---------------------------- + +As stated above, if a postcondition, precondition or assertion is +violated, an exception is thrown, and if nothing is done to catch it, +the program will abort. +This behavior can be changed by means of the following function. + +`CGAL/assertions_behaviour.h` + +`Failure_behaviour set_error_behaviour(Failure_behaviour eb);` + +The parameter should have one of the following values. + +`enum Failure_behaviour { ABORT, EXIT, EXIT_WITH_SUCCESS, CONTINUE, THROW_EXCEPTION };` +The `THROW_EXCEPTION` value is the default, which throws an exception. + +If the `EXIT` value is set, the program will stop and return a value +indicating failure, but not dump the core. +The `CONTINUE` value tells the checks to go on after diagnosing the error. +Note that since \cgal 3.4, `CONTINUE` has the same effect as +`THROW_EXCEPTION` for errors (but it keeps its meaning for warnings), it is +not possible anymore to let assertion failures simply continue (except by +totally disabling them). + +\beginadvanced +If the `EXIT_WITH_SUCCESS` value is set, the program will stop and +return a value corresponding to successful execution and not dump the core. +\endadvanced + +The value that is returned by `set_error_behaviour` is the value that was in use before. + +For warnings there is a separate routine, which works in the same way. +The only difference is that for warnings the default value is +`CONTINUE`. + +`Failure_behaviour set_warning_behaviour(Failure_behaviour eb);` + +Control at a Finer Granularity +------------------------------ + +The compile time flags as described up to now all operate on the whole +library. +Sometimes you may want to have a finer control. +\cgal offers the possibility to turn checks on and off with a bit finer +granularity, namely the module in which the routines are defined. +The name of the module is to be appended directly after the \cgal prefix. +So, the flag `CGAL_KERNEL_NO_ASSERTIONS` switches off assertions in +the kernel only, the flag `CGAL_CH_CHECK_EXPENSIVE` turns on +expensive checks in the convex hull module. +The name of a particular module is documented with that module. + +\beginadvanced + +Customizing how Errors are Reported +----------------------------------- + +Normally, error messages are written to the standard error output. +It is possible to do something different with them. +To that end you can register your own handler. +This function should be declared as follows. + +`void my_failure_function( const char *type, const char *expression, +const char *file, int line, const char *explanation);` + +Your failure function will be called with the following parameters. +`type` is a string that contains one of the words precondition, +postcondition, assertion or warning. +The parameter `expression` contains the expression that was violated. +`file` and `line` contain the place where the check was made. +The `explanation` parameter contains an explanation of what was +checked. +It can be `NULL`, in which case the `expression` is thought +to be descriptive enough. + +There are several things that you can do with your own handler. +You can display a diagnostic message in a different way, for instance in +a pop up window or to a log file (or a combination). +You can also implement a different policy on what to do after an error. +For instance, you can throw an exception or ask the user in a dialog +whether to abort or to continue. +If you do this, it is best to set the error behavior to +`CONTINUE`, so that it does not interfere with your policy. + +You can register two handlers, one for warnings and one for errors. +Of course, you can use the same function for both if you want. +When you set a handler, the previous handler is returned, so you can restore +it if you want. + +`CGAL/assertions.h` + +- `Failure_function set_error_handler(Failure_function handler);` +- `Failure_function set_warning_handler(Failure_function handler);` + +### Example ### + +\code{.cpp} +#include + +void my_failure_handler( + const char *type, + const char *expr, + const char* file, + int line, + const char* msg) +{ + /* report the error in some way. */ +} + +void foo() +{ + CGAL::Failure_function prev; + prev = CGAL::set_error_handler(my_failure_handler); + /* call some routines. */ + CGAL::set_error_handler(prev); +} +\endcode + +\endadvanced + +\section seccgal_version Identifying the Version of CGAL + +`CGAL/config.h` + +Every release of \cgal defines the following preprocessor macros: + +\yada + +
+
`CGAL_VERSION`
+
a textual description of the current release (e.g., or 3.3 or 3.2.1 or 3.2.1-I-15)
+
`CGAL_VERSION_STR`
+
same as `CGAL_VERSION` but as a string constant token
+
`CGAL_VERSION_NR`
+
a numerical description of the current release such that more recent +releases have higher number. + +More precisely, it is defined as `1MMmmbiiii`, where `MM` is +the major release number (e.g. 03), `mm` is the minor release +number (e.g. 02), `b` is the bug-fix release number (e.g. 0), +and `iiii` is the internal release number (e.g. 0001). For +public releases, the latter is defined as 1000. Examples: for the +public release 3.2.4 this number is 1030241000; for internal release +3.2-I-1, it is 1030200001. Note that this scheme was modified around +3.2-I-30. +
+
`CGAL_VERSION_NUMBER(M,m,b)`
+
+a function macro computing the version number macro from the +M.m.b release version. Note that the internal release number is +dropped here. Example: `CGAL_VERSION_NUMBER(3,2,4)` is equal to +1030241000. +
+
+ +\beginadvanced + +Compile-time Flags to Control Inlining +====================================== + +Making functions inlined can, at times, improve the efficiency of your code. +However this is not always the case and it can differ for a single function +depending on the application in which it is used. Thus \cgal defines a set +of compile-time macros that can be used to control whether certain functions +are designated as inlined functions or not. The following table lists the +macros and their default values, which are set in one of the \cgal include +files. + +| macro name | default | +| :--------- | :------ | +| `CGAL_KERNEL_INLINE` | inline | +| `CGAL_KERNEL_MEDIUM_INLINE` | | +| `CGAL_KERNEL_LARGE_INLINE` | | +| `CGAL_MEDIUM_INLINE` | inline | +| `CGAL_LARGE_INLINE` | | +| `CGAL_HUGE_INLINE` | | + +If you wish to change the value of one or more of these macros, +you can simply give it a new value when compiling. For example, to make +functions that use the macro `CGAL_KERNEL_MEDIUM_INLINE` inline functions, +you should set the value of this macro to `inline` instead of the +default blank. + +Note that setting inline manually is very fragile, especially in a template +context. It is usually better to let the compiler select by himself which +functions should be inlined or not. + +\endadvanced + +*/ diff --git a/Documentation/doc/cgal_manual.bib b/Documentation/doc/cgal_manual.bib new file mode 100644 index 00000000000..a46ea71fddd --- /dev/null +++ b/Documentation/doc/cgal_manual.bib @@ -0,0 +1,2342 @@ +% ---------------------------------------------------------------------------- +% $Id: cgal_manual.bib 64637 2011-07-06 11:11:58Z lrineau $ +% +% ---------------------------------------------------------------------------- +% +% Some guidelines in maintaining this BiBTeX file for the CGAL Manuals: +% +% - Entries are sorted alphabetically by their key +% +% - The key is created following the same rules as geombib, see +% http://compgeom.cs.uiuc.edu/~jeffe/compgeom/biblios.html +% +% Here are roughly the rules: +% initials of authors' last names '-' initials of 5 first title words +% (small words are omitted) '-' 2 digits for year +% then, in case of conflicts, append 'a' for article, 'i' for proceedings, +% 't' for technical reports +% +% - to distinguish our keys from geombib, we use 'cgal:' as a prefix +% +% ---------------------------------------------------------------------------- + + +@article{ cgal:afh-pdecm-02, + author = "P. K. Agarwal and E. Flato and D. Halperin", + title = "Polygon Decomposition for Efficient Construction of {Minkowski} Sums", + journal = "Computational Geometry: Theory and Applications", + volume = 21, + year = 2002, + pages = "39--61" +} + +@manual{ cgal:a-cclga-94 + ,author = {Avnaim, F.} + ,title = "{C}{\tt ++}{GAL}: {A} {C}{\tt ++} Library for Geometric + Algorithms" + ,organization = {INRIA Sophia-Antipolis} + ,year = 1994 + ,update = "98.01 schirra" +} + +@incollection{ cgal:a-cgs-97 + ,author = "N. Amenta" + ,title = "Computational Geometry Software" + ,booktitle = "Handbook of Discrete and Computational Geometry" + ,editors = "J. Goodman and J. O'Rourke" + ,publisher = "CRC Press" + ,year = "1997" + ,pages = "951--960" + ,update = "98.01 schirra" +} + +@book{ cgal:a-gps-98 + ,author = {Matthew H. Austern} + ,title = {Generic Programming and the {STL}} + ,publisher = {Addison-Wesley} + ,year = 1998 + ,update = "01.06 hoffmann" +} + +@book{ cgal:a-mcdgp-01 + ,author = "Andrei Alexandrescu" + ,title = "Modern {C++} Design: Generic Programming and Design + Patterns Applied" + ,year = 2001 + ,publisher = "Addison-Wesley" +} + +@inproceedings{ cgal:a-nqimr-67 + ,author = {Arthur Appel} + ,title = {The Notion of Quantitive Invisibility and the + Machine Rendering of Solids} + ,booktitle = {Proc. ACM National Conf.} + ,year = 1967 + ,pages = {387--393} + ,annote = {Basis for the contour edge idea in hidden surface + removal.} + ,update = "97.04 kettner" +} + +@article{cgal:acyd-vtm-05 +, author = "Pierre Alliez and David Cohen-Steiner + and Mariette Yvinec and Mathieu Desbrun" +, title = "Variational tetrahedral meshing" +, year = 2005 +, journal = "ACM Transactions on Graphics" +, pages = "617--625" +, note = "SIGGRAPH '2005 Conference Proceedings" +, volume = 24 +, url = "http://hal.inria.fr/inria-00226418" +, geombib = "not yet" +} + + + +@misc{ cgal:ansi-is14882-98 + ,key = {{C}{\tt ++}} + ,title = "International Standard {ISO/IEC} 14882: + Programming languages -- {C{\tt ++}}" + ,howpublished = {American National Standards Institute, 11 West 42nd + Street, New York 10036} + ,year = 1998 + ,url = {\path|http://webstore.ansi.org/|} + ,update = "04.03 kettner, 01.06 hoffmann" +} + +@inproceedings{ cgal:b-digph-01 + ,author = "Herv{\'e} Br{\"o}nnimann" + ,title = "Designing and implementing a general purpose halfedge + data structure" + ,booktitle = "Proc. 5th International Workshop on Algorithm + Engineering (WAE)" + , editors = "G. Brodal and D. Frigioni and A. Marchetti-Spaccamela" + ,publisher = {Springer LNCS 2141} + ,year = 2001 + ,pages = "51--66" + ,update = "04.04 kettner" +} + +@article{ cgal:bbp-iayed-01 + ,author = "H. Br{\"o}nnimann and C. Burnikel and S. Pion" + ,title = "Interval arithmetic yields efficient dynamic filters + for computational geometry" + ,journal = "Discrete Applied Mathematics" + ,volume = 109 + ,year = 2001 + ,pages = "25--47" + ,succeeds = "bbp-iayed-98scg" + ,update = "04.03 pion" +} + +@article{ cgal:bdpty-tc-02 + , author = "Jean-Daniel Boissonnat and Olivier Devillers and Sylvain +Pion and Monique Teillaud and Mariette Yvinec" + , title = "Triangulations in {CGAL}" + , journal = "Comput. Geom. Theory Appl." + , volume = 22 + , year = 2002 + , pages = "5--19" + , succeeds = "bdty-tcgal-00" +} + +@inproceedings{ cgal:behhms-cbcab-02 + ,author = {Berberich, Eric and Eigenwillig, Arno and Hemmer, Michael + and Hert, Susan and Mehlhorn, Kurt and Sch{\"o}mer, Elmar} + ,editor = {M{\"o}hring, Rolf and Raman, Rajeev} + ,title = {A Computational Basis for Conic Arcs and Boolean Operations + on Conic Polygons} + ,booktitle = {Algorithms - ESA 2002: 10th Annual European Symposium} + ,address = {Rome, Italy} + ,publisher = {Springer} + ,month = sep + ,series = {Lecture Notes in Computer Science} + ,volume = {2461} + ,year = {2002} + ,pages = {174--186} + ,abstract = {We give an exact geometry kernel for conic arcs, algorithms + for exact computation with low-degree algebraic + numbers, and an algorithm for computing the + arrangement of conic arcs that immediately leads to + a realization of regularized boolean operations on + conic polygons. A conic polygon, or polygon for + short, is anything that can be obtained from linear + or conic halfspaces (= the set of points where a + linear or quadratic function is non-negative) by + regularized boolean operations. The algorithm and + its implementation are complete (they can handle all + cases), exact (they give the mathematically correct + result), and efficient (they can handle inputs with + several hundred primitives).} +} + + +@inproceedings{ cgal:bfh-mgedm-95 + ,author = {Heinzgerd Bendels and Dieter W. Fellner and Sven + Havemann} + ,title = {Modellierung der Grundlagen: Erweiterbare + Datenstrukturen zur Modellierung und Visualisierung + polygonaler Welten} + ,booktitle = {Modeling -- Virtual Worlds -- Distributed Graphics} + ,year = 1995 + ,editor = {D. W. Fellner} + ,pages = {149--157} + ,address = {Bad Honnef / Bonn} + ,month = {27.--28. November} + ,annote = {A reference for the halfedge data structure and + Euler operators (preserving the topological type).} + ,update = "97.04 kettner" +} + +@inproceedings{ cgal:bgh-dsmd-97 + ,author = {Julien Basch and Leonidas Guibas and John Hershberger} + ,title = {Data Structures for Mobile Data} + ,booktitle = {Proceedings of the 8th Annual {ACM}-{SIAM} Symposium on + Discrete Algorithms} + ,year = "1997" + ,pages = "747--756" +} + +@inproceedings{cgal:bhksw-eceicpmqic-05, + author = "Eric Berberich and Michael Hemmer and Lutz Kettner and + Elmar Sch{\"o}mer and Nicola Wolpert", + title = "An Exact, Complete and Efficient Implementation for Computing + Planar Maps of Quadric Intersection Curves", + booktitle = "Proceedings of 21st Annual Symposium on Computational Geometry (SCG)", + year = 2005, + pages = "99--106" +} + +@inproceedings{cgal:byb-mgmmi-09 +, booktitle = {Medical Image Computing and Computer-Assisted Intervention} +, nickname = "MICCAI 2009" +, series = {Lecture Notes in Computer Science} +, volume = 5762 +, year = 2009 +, author = {Dobrina Boltcheva and Mariette Yvinec and Jean-Daniel +Boissonnat} +, title = {Mesh Generation from 3D Multi-material Images} +, pages = {283--290} +, url = "http://hal.inria.fr/inria-00420228/" +, x-international-audience = "yes" +, x-proceedings = "yes" +} + +@article{cgal:-byb-fpdmgmmi-09 +, author = "Dobrina Boltcheva and Mariette Yvinec and Jean-Daniel Boissonnat" +, title = "Feature preserving Delaunay mesh generation from + 3D multi- material images" +, journal = "Computer Graphics Forum" +, note = "special issue for EUROGRAPHICS Symposium on Geometry Processing" +, pages = "1455-14645" +, volume = 28 +, year = 2009 +, url = "http://hal.inria.fr/inria-00413248" +, x-international-audience = "yes" +, x-editorial-board = "yes" +} + + +@TechReport{cgal:bhkt-risak-07, + author = {Berberich, Eric and Hemmer, Michael and + Karavelas, Menelaos I. and Teillaud, Monique}, + title = {Revision of the interface specification of algebraic kernel}, + institution = {INRIA Sophia-Antipolis, Max Planck Institut f{\"u}r + Informatik, National University of Athens}, + year = {2007}, + type = {Technical Report}, + number = {ACS-TR-243301-01}, + update = "09.12 penarand" +} + +@book{ cgal:bn-sec++-94 + ,author = "J. J. Barton and L. R. Nackman" + ,title = "Scientific and Engineering {C{\tt ++}}" + ,publisher = "Addison-Wesley, Reading, MA" + ,year = "1997" + ,update = "98.01 schirra" +} + +@article{cgal:bo-pgsms-05 +, author = "Jean-Daniel Boissonnat and Steve Oudot" +, title = "Provably good sampling and meshing of surfaces" +, journal = "Graphical Models" +, volume = 67 +, year = 2005 +, pages = "405--451" +} + +@misc{ cgal:bpp-vrml-95 + ,author = {Gavin Bell and Anthony Parisi and Mark Pesce} + ,title = {VRML The Virtual Reality Modeling Language: + Version 1.0 Specification} + ,howpublished = {\path|http://www.vrml.org/|} + ,month = {May 26} + ,year = 1995 + ,note = {Third Draft} + ,update = "97.04 kettner" +} + +@incollection{ cgal:bv-sbc-96 + ,author = "G. Booch and M. Vilot" + ,title = "Simplifying the Booch Components" + ,booktitle = "{\CC\ }Gems" + ,publisher = "SIGS publications" + ,editor = "Lippman, S." + ,year = "1996" + ,pages = "59--89" + ,update = "98.01 schirra" +} + +@inproceedings{cgal::c-mssbo-04, + author={Chen, L.}, + title={{Mesh Smoothing Schemes based on Optimal Delaunay Triangulations}}, + booktitle={Proceedings of 13th International Meshing Roundtable}, + pages={109--120}, + year = {2004} +} + +@phdthesis{ cgal:c-tpsos-10 + ,author = "Manuel Caroli" + ,title = "Triangulating Point Sets in Orbit Spaces" + ,type = "Th\`{e}se de doctorat en sciences" + ,school = "Universit\'e de {Nice-Sophia Antipolis}" + ,address = "France" + ,year = 2010 + ,url = "http://tel.archives-ouvertes.fr/tel-00552215/" +} + +@article{cgal:cc-rgbss-78 + ,author = {E.~Catmull and J.~Clark} + ,title = {Recursively generated {B}-spline surfaces + on arbitrary topological meshes} + ,journal = {Computer Aided Design} + ,year = {1978} + ,volume = {10} + ,pages = {350--355} +} + +@article{cgal:cdeft-slive-00, + author = {Cheng, Siu-Wing and Dey, Tamal K. and Edelsbrunner, Herbert and Facello, Michael A. and Teng, Shang-Hua}, + title = {Sliver exudation}, + journal = {J. ACM}, + volume = {47}, + number = {5}, + year = {2000}, + issn = {0004-5411}, + pages = {883--904}, + doi = {http://doi.acm.org/10.1145/355483.355487}, + publisher = {ACM}, + address = {New York, NY, USA}, + } + +@inproceedings{cgal:cdl-pdma-07 + , author = "S.-W. Cheng and T. K. Dey and J. A. Levine" + , title = " A practical Delaunay meshing algorithm for a large class of domains." + , booktitle = "Meshing Roundtable" + , year = "2007" + , pages = "477-494" +} + +@inproceedings{cgal:cdr-drpsc-07, + author = {Siu-Wing Cheng and Tamal K. Dey and Edgar A. Ramos}, + title = {Delaunay refinement for piecewise smooth complexes}, + booktitle = {SODA}, + year = {2007}, + pages = {1096--1105}, + address = {Philadelphia, PA, USA}, + } + +@inproceedings{ cgal:cl-vmbcm-96 + ,author = {Brian Curless and Marc Levoy} + ,title = {A Volumetric Method for Building Complex + Models from Range Images} + ,booktitle = "Computer Graphics (Proc. SIGGRAPH '96)" + ,volume = 30 + ,year = 1996 + ,pages = {303--312} + ,update = "97.08 kettner" +} + +@article{ cgal:cp-edqpf-05, + author="F. Cazals and M. Pouget", + title="Estimating Differential Quantities using Polynomial fitting of Osculating Jets", + journal="Computer Aided Geometric Design", + year="2005", + volume="22", + number="2", + pages="", +note="Conference version: Symp. on Geometry Processing 2003" +} + +@article{cgal:cp-ssulc-05 +, author = "F. Cazals and M. Pouget" +, title = "Smooth surfaces, umbilics, lines of curvatures, foliations, ridges and the medial axis: selected topics" +, year = "2005" +, volume = "15" +, number = "5" +, pages = "511--536" +, JOURNAL = "Int. J. of Computational Geometry and Applications" +} + + +@techreport{cgal:cp-tdare-05, + author="F. Cazals and M. Pouget", + title="Topology driven algorithms for ridge extraction on meshes", + number="RR-5526", + institution="INRIA", + year="2005" +} + +@inproceedings{ cgal:csm-rdtnc-03, + author="D. Cohen-Steiner and J.-M. Morvan", + title="Restricted Delaunay triangulations and normal cycle", + booktitle="ACM Symposium on Computational Geometry", + address="", + year="2003", + pages="" +} + +@inproceedings{ cgal:ct-c3pt-09 +, title = "Computing {3D} Periodic Triangulations" +, author = "Manuel Caroli and Monique Teillaud" +, booktitle = "Proceedings 17th European Symposium on Algorithms" +, nickname = "ESA'09" +, series = "Lecture Notes in Computer Science" +, year = 2009 +, volume = 5757 +, pages = "37--48" +, note = "Full version available as INRIA Research Report 6823 \path|http://hal.inria.fr/inria-00356871|" +} + +@inproceedings{ cgal:cvmtwabw-se-96 + ,author = {Jonathan Cohen and Amitabh Varshney and Dinesh + Manocha and Greg Turk and Hans Weber and Pankaj + Agarwal and Frederick Brooks and William Wright} + ,title = {Simplification Envelopes} + ,booktitle = "Computer Graphics (Proc. SIGGRAPH '96)" + ,volume = 30 + ,year = 1996 + ,pages = {119--128} + ,note = {Examples and code in + \path|http://www.cs.unc.edu/~geom/envelope.html|} + ,update = "97.08 kettner" +} + +@PhdThesis{ cgal:d-ccccg-10, + author = {Damiand, G.}, + title = {Contributions aux Cartes Combinatoires et Cartes G\'en\'eralis\'ees : Simplification, Mod\`eles, Invariants Topologiques et Applications}, + month = {Septembre}, + year = {2010}, + school = {Universit\'e Lyon 1}, + type = {Habilitation \`a Diriger des Recherches} +} + +@article{cgal:d-dh-02 +, author = "Olivier Devillers" +, title = "The {Delaunay} hierarchy" +, journal = "Internat. J. Found. Comput. Sci." +, year = 2002 +, volume = "13" +, pages = "163--180" +, anote = "special issue on triangulations" +, succeeds = "d-iirdt-98" +} + +@mastersthesis{ cgal:d-grct-03 + ,author = {Wei Ding} + ,title = {Geometric Rounding without Changing the Topology} + ,school = {Fachbereich Informatik, Universit{\"a}t Saarbr{\"u}cken} + ,year = 2003 + ,address = {Saarbr{\"u}cken, Germany} + ,update = "04.04 kettner" +} + +@article{ cgal:dds-scs-09 + , author = "C. Dyken and M Daehlen and T. Sevaldrud" + , title = "Simultaneous Curve Simplification" + , journal = "Journal of Geographical Systems" + , volume = 0 + , pages = "0--0" + , year = 2009 +} + +@article{cgal:dfg-cvtaa-99t, + title={{Centroidal Voronoi Tessellations: Applications and Algorithms}}, + author={Du, Q. and Faber, V. and Gunzburger, M.}, + journal={SIAM review}, + volume={41}, + number={4}, + pages={637--676}, + year={1999}, + publisher={Society for Industrial and Applied Mathematics}} + +@inproceedings{cgal:dfmt-amafe-00 +, author = "Olivier Devillers and Alexandra Fronville and Bernard Mourrain +and Monique Teillaud" +, title = "Algebraic methods and arithmetic filtering for exact predicates + on circle arcs" +, booktitle = "Proc. 16th Annu. ACM Sympos. Comput. Geom." +, year = 2000 +, pages = "139--147" +} + +@article{cgal:dfmt-amafe-02 +, author = "Olivier Devillers and Alexandra Fronville and Bernard +Mourrain and Monique Teillaud" +, title = " Algebraic methods and arithmetic filtering + for exact predicates on circle arcs" +, journal = "Comput. Geom. Theory Appl." +, volume = 22 +, year = 2002 +, pages = "119--142" +, succeeds = "dfmt-amafe-00" +} + +@article{cgal:dh-pifch-96, + author = "J. H. Dul\'a and R. V. Helgason", + title = "A new procedure for identifying the frame of the convex hull of a finite collection of points in multidimensional space", + journal = "European Journal of Operational Research", + volume = "92", + number = "2", + pages = "352 - 367", + year = "1996", + issn = "0377-2217", + doi = "DOI: 10.1016/0377-2217(94)00366-1", + url = "http://www.sciencedirect.com/science/article/B6VCT-3VW8NPR-11/2/3cf4525c68d79c055676541418264043", + keywords = "Convex hull problem, Frame, Linear programming, Data envelopment analysis, Redundancy" +} + +@unpublished{cgal:dl-cosfa-08, + author = "J.H. Dul\'a and F.J. L\'opez", + title = "Competing Output-Sensitive Frame Algorithms", + year = "2008", + note = "Draft (2008), available at +\url{http://idisk.mac.com/jdula-Public/WORKINGPAPERS/PolyFrOttmann.pdf}", + keywords = "Extreme points, Convex hull, Linear programming, Computational Geometry, Redundancy identification" +} + +@article{ cgal:dma-ipsm-02, + author = "Mathieu Desbrun and Mark Meyer and Pierre Alliez", + title = "Intrinsic Parameterizations of Surface Meshes", + journal = "Com{\-}pu{\-}ter Graphics Forum", + volume = "21", + number = "3", + pages = "209--218", + month = sep, + year = "2002"} + +@inproceedings{ cgal:dp-eegpd-03 + , author = "Olivier Devillers and Sylvain Pion" + , title = "Efficient Exact Geometric Predicates for {Delaunay} Triangulations" + , booktitle = "Proc. 5th Workshop Algorithm Eng. Exper." + , nickname = "ALENEX '03" + , year = 2003 + , pages = "37--44" + , url = "http://hal.inria.fr/inria-00344517/" +} + +@article{ cgal:dpt-wt-02 + , author = "Olivier Devillers and Sylvain Pion and Monique +Teillaud" + , title = "Walking in a triangulation" + , journal = "Internat. J. Found. Comput. Sci." + , year = 2002 + , volume = "13" + , pages = "181--199" + , anote = "special issue on triangulations" + , succeeds = "dpt-wt-01" +} + +@inproceedings{ cgal:dt-pvr3d-03 + , author = "Olivier Devillers and Monique Teillaud" + , title = "Perturbations and Vertex Removal in a {3D Delaunay} Triangulation" + , booktitle = "Proc. 14th ACM-SIAM Sympos. Discrete Algorithms (SODA)" + , year = 2003 + , pages = "313-319" +} + +@TechReport{ cgal:dt-pvrdr-06, +author = {Devillers, Olivier and Teillaud, Monique}, +title = {Perturbations and Vertex Removal in {Delaunay} and Regular {3D} Triangulations}, +year = {2006}, +institution = {INRIA}, +number = {5968}, +type = {Research Report}, +note = {\path|http://hal.inria.fr/inria-00090522|} +} + +@article{cgal:dw-tmgob-02, + title={{Tetrahedral mesh generation and optimization based on centroidal Voronoi tessellations}}, + author={Du, Q. and Wang, D.}, + journal={International Journal for Numerical Methods in Engineering}, + volume={56}, + pages={1355--1373}, + year={2002}} + +@article{ cgal:e-dssd-99 + , author = "H. Edelsbrunner" + , title = "Deformable smooth surface design" + , journal = "Discrete Comput. Geom." + , volume = 21 + , pages = "87--115" + , year = 1999 +} + +@inproceedings{ cgal:eddhls-maam-95 + ,author = {Matthias Eck and Tony DeRose and Tom Duchamp and + Hugues Hoppe and Michael Lounsbery and Werner Stuetzle} + ,title = {Multiresolution Analysis of Arbitrary Meshes} + ,booktitle = "Computer Graphics (Proc. SIGGRAPH '95)" + ,volume = 29 + ,year = 1995 + ,pages = {173--182} + ,note = {Examples in + \path|ftp://ftp.cs.washington.edu/pub/graphics|} + ,update = "97.08 kettner" +} + +@proceedings{cgal:ek-sicad-99 +, title = "Computer Aided Design" +, note = "Special Issue on Offsets, Sweeps and Minkowski Sums" +,volume = 31 +, editor = "G. Elber and M.-S. Kim" +, year = 1999 +} + + + +@inproceedings{cgal:ekptt-tock-04 +, author = "Ioannis Z. Emiris and Athanasios Kakargias and Sylvain Pion and + Monique Teillaud and Elias P. Tsigaridas" +, title = "Towards an Open Curved Kernel" +, booktitle = "Proc. 20th Annu. ACM Sympos. Comput. Geom." +, year = 2004 +, pages = "438--446" +} + +@phdthesis{ cgal:f-csapc-03 + ,author = "Julia Fl{\"o}totto" + ,title = "A coordinate system associated to a point cloud issued from + a manifold: definition, properties and applications" + ,type = "Th\`{e}se de doctorat en sciences" + ,school = "Universit\'e de {Nice-Sophia Antipolis}" + ,address = "France" + ,year = 2003 + ,url = "http://www-sop.inria.fr/prisme/personnel/flototto/" +} + + + +@book{ cgal:f-sec-85 + ,author = {Richard Fairley} + ,title = {Software Engineering Concepts} + ,publisher = {McGraw-Hill} + ,year = 1985 + ,series = {McGraw-Hill Series in Software Engineering and Technology} + ,annote = {recommended software engineering reading. + Topics from pre-object-oriented software engineering.} + ,update = "98.01 kettner" +} + +@inproceedings{ cgal:fh-oscps-95 + ,author = "Ulrich Finke and Klaus Hinrichs" + ,title = "Overlaying simply connected planar subdivisions in linear + time" + ,booktitle = "Proc. 11th Annu. ACM Sympos. Comput. Geom." + ,year = 1995 + ,pages = "119--126" + ,keywords = "red-blue segment intersection" + ,update = "95.09 mitchell" +} + +@InCollection{ cgal:fh-survey-05, + author = {M. S. Floater and K. Hormann}, + title = {Surface Parameterization: a Tutorial and Survey}, + booktitle = {Advances in Multiresolution for Geometric Modelling}, + pages = {157-186}, + publisher = {Springer}, + year = 2005, + editor = {N. A. Dodgson and M. S. Floater and M. A. Sabin}, + series = {Mathematics and Visualization}, + address = {Berlin, Heidelberg}} + +@article{ cgal:f-mvc-03, + author = "Michael Floater", + title = "Mean Value Coordinates", + journal = "Computer Aided Design", + volume = "20", + number = "1", + pages = "19--27", + year = "2003"} + +@inproceedings{ cgal:g-frseb-99 + ,author = "B. G{\"a}rtner" + ,title = "Fast and robust smallest enclosing balls" + ,booktitle = "Proc. 7th annu. European Symposium on Algorithms (ESA)" + ,year = "1999" + ,series = "Lecture Notes in Computer Science" + ,volume = "1643" + ,publisher = "Springer-Verlag" + ,pages = "325--338" +} + +@manual{ cgal:g-gmpal-96 + ,author = "T. Granlund" + ,title = "{GNU MP}, The {GNU} Multiple Precision Arithmetic Library, + version 2.0.2" + ,month = jun + ,year = 1996 +} + +@article{ cgal:g-ieva-85 + ,author = {Ronald N. Goldman} + ,title = {Illicit Expressions in Vector Algebra} + ,journal = {ACM Transaction on Graphics} + ,year = 1985 + ,volume = 4 + ,number = 3 + ,month = jul + ,pages = {223--243} + ,update = "98.01 kettner" +} + +@inproceedings{ cgal:ghhkm-bosnc-03 + ,author = {Granados, Miguel and Hachenberger, Peter and Hert, Susan + and Ketter, Lutz and Mehlhorn, Kurt and Seel, Michael} + ,editor = {Di Battista, Giuseppe and Zwick, Uri} + ,title = {Boolean Operations on 3D Selective Nef Complexes + Data Structure, Algorithms, and Implementation} + ,booktitle = {Algorithms - ESA 2003: 11th Annual European Symposium} + ,address = {Budapest, Hugary} + ,publisher = {Springer} + ,month = sep + ,series = {Lecture Notes in Computer Science} + ,volume = {2832} + ,year = {2003} + ,pages = {174--186} + ,abstract = {We describe a data structure for three-dimensional Nef + complexes, algorithms for boolean operations on them, + and our implementation of data structure and algorithms. + Nef polyhedra were introduced by W. Nef in his seminal + 1978 book on polyhedra. They are the closure of half-spaces + under boolean operations and can represent non-manifold + situations, open and closed boundaries, and mixed + dimensional complexes. Our focus lies on the generality of + the data structure, the completeness of the algorithms, + and the exactness and efficiency of the implementation. + In particular, all degeneracies are handled.} +} + +@book{ cgal:ghjv-dpero-95 + ,author = {E. Gamma and R. Helm and R. Johnson and J. Vlissides} + ,title = {Design Patterns -- Elements of Reusable + Object-Oriented Software} + ,publisher = {Addison-Wesley} + ,year = 1995 + ,annote = {recommended OO reading.} + ,update = "97.04 kettner" +} + +@inproceedings{ cgal:gkr-cfhm-04 + ,author = {Leonidas Guibas and Menelaos Karaveles and Daniel Russel} + ,title = {A Computational Framework for Handling Motion} + ,booktitle = {Proceedings of the Sixth Workshop on Algorithm Engineering and + Experiments} + ,year = {2004} + ,pages = {129--141} +} + +@techreport{ cgal:gs-seeeg-98 + ,author = {Bernd G{\"a}rtner and Sven Sch{\"o}nherr} + ,title = {Smallest Enclosing Ellipses -- An Exact and + Generic Implementation in {C++}} + ,institution = {Freie Universit{\"a}t Berlin, Germany} + ,type = {Serie B -- Informatik} + ,number = {B 98-05} + ,year = 1998 + ,month = apr + ,note = {URL \path|http://www.inf.fu-berlin.de/inst/pubs/tr-b-98-05.abstract.html|} + ,update = "98.06 schoenherr" +} + +@techreport{ cgal:gs-seceg-98 + ,author = {Bernd G{\"a}rtner and Sven Sch{\"o}nherr} + ,title = {Smallest Enclosing Circles -- An Exact and + Generic Implementation in {C++}} + ,institution = {Freie Universit{\"a}t Berlin, Germany} + ,type = {Serie B -- Informatik} + ,number = {B 98-04} + ,year = 1998 + ,month = apr + ,note = {URL \path|http://www.inf.fu-berlin.de/inst/pubs/tr-b-98-04.abstract.html|} + ,update = "98.06 schoenherr" +} + +@techreport{ cgal:gs-seefe-97a + ,author = {Bernd G{\"a}rtner and Sven Sch{\"o}nherr} + ,title = {Smallest Enclosing Ellipses -- Fast and Exact} + ,institution = {Freie Universit{\"a}t Berlin, Germany} + ,type = {Serie B -- Informatik} + ,number = {B 97-03} + ,year = 1997 + ,month = jun + ,note = {URL \path|http://www.inf.fu-berlin.de/inst/pubs/tr-b-97-03.abstract.html|} + ,update = "97.06 schoenherr, 98.02 schoenherr, 98.06 schoenherr" +} + +@article{ cgal:gt-dpasr-93 + ,author = {J. Gregor and M. G. Thomason} + ,title = {Dynamic Programming Alignment of Sequences representing cyclic patterns} + ,journal = {IEEE Trans. Pattern Anal. Machine Intell.} + ,year = 1993 + ,volume = 15 + ,number = 2 + ,pages = {129--135} +} + +@manual{ cgal:gvw-gsc-98 + ,author = {Geert-Jan Giezeman and Remco Veltkamp and + Wieger Wesselink} + ,title = {Getting Started with {CGAL}} + ,year = 1998 + ,note = {{CGAL} {R}1.0. \path|http://www.cs.ruu.nl/CGAL|.} + ,update = "98.01 schoenherr" +} + +@incollection{ cgal:h-a-04 + , author = "Dan Halperin" + , title = "Arrangements" + , chapter = 24 + , editor = "Jacob E. Goodman and Joseph O'Rourke" + , booktitle = "Handbook of Discrete and Computational Geometry" + , publisher = "Chapman \& Hall/CRC" + , edition = "2nd" + , year = 2004 + , pages = "529--562" +} + +@manual{ cgal:h-cln-99 + ,title = {{CLN}, The Class Library for Numbers} + ,author = {Haible, B.} + ,edition = {1.0.1} + ,month = {June} + ,year = {1999} + ,note = {\path|http://clisp.cons.org/~haible/packages-cln.html|} + ,update = "99.06 pion" +} + +@misc{cgal:hh-eplca-05, + author = "Idit Haran and Dan Halperin", + title = "Efficient Point Location in CGAL Arrangements using Landmarks", + year = "2005" +} + +@book{ cgal:h-gsmi-89 + ,author = {Christoph M. Hoffmann} + ,title = {Geometric and Solid Modeling - An Introduction} + ,publisher = {Morgan Kaufmann} + ,year = 1989 +} + +@book{cgal:hgygm-ttdpf-99, + author="P. W. Hallinan and G. Gordon and A.L. Yuille and P. Giblin and D. Mumford", + title="Two-and Three-Dimensional Patterns of the Face", + publisher="A.K.Peters", + year="1999" +} + + +@inproceedings{ cgal:h-pm-96 + ,author = {Hugues Hoppe} + ,title = {Progressive Meshes} + ,booktitle = "Computer Graphics (Proc. SIGGRAPH '96)" + ,volume = 30 + ,year = 1996 + ,pages = {99--108} + ,update = "97.08 kettner" +} + +@mastersthesis{ cgal:h-epmhd-10 + ,author = {Christian Helbling} + ,title = {Extreme Points in Medium and High Dimensions} + ,school = {ETH Zurich} + ,year = 2010 + ,address = {Zurich, Switzerland} +} + +@inproceedings{ cgal:h-slacr-99 + ,author = "M. Hoffmann" + ,title = "A Simple Linear Algorithm for Computing Rectangular + Three-Centers" + ,booktitle = "Proc. 11th Canad. Conf. Comput. Geom." + ,year = 1999 + ,pages = "72--75" +} + +@phdthesis{ cgal:h-srup-94 + ,author = {Hugues Hoppe} + ,title = {Surface reconstruction from unorganized points} + ,school = {University of Washington} + ,year = 1994 + ,update = "97.08 kettner" +} + +@inproceedings{ cgal:hddhjmss-pssr-94 + ,author = {Hugues Hoppe and Tony DeRose and Tom Duchamp and + Mark Halstaed and Hubert Jin and John McDonald and + Jean Schweitzer and Werner Stuetzle} + ,title = {Piecewise Smooth Surface Reconstruction} + ,booktitle = "Computer Graphics (Proc. SIGGRAPH '94)" + ,volume = 28 + ,year = 1994 + ,pages = {295--302} + ,note = {Examples and code in + \path|ftp://ftp.cs.washington.edu/pub/graphics|} + ,update = "97.08 kettner" +} + +@inproceedings{ cgal:hddms-mo-93 + ,author = {Hugues Hoppe and Tony DeRose and Tom Duchamp and + John McDonald and Werner Stuetzle} + ,title = {Mesh Optimization} + ,booktitle = "Computer Graphics (Proc. SIGGRAPH '93)" + ,volume = 27 + ,year = 1993 + ,pages = {19--26} + ,note = {Examples and code in + \path|ftp://ftp.cs.washington.edu/pub/graphics|} + ,update = "97.08 kettner" +} + +@inproceedings{ cgal:hddms-srup-92 + ,author = {Hugues Hoppe and Tony DeRose and Tom Duchamp and + John McDonald and Werner Stuetzle} + ,title = {Surface Reconstruction from Unorganized Points} + ,booktitle = "Computer Graphics (Proc. SIGGRAPH '90)" + ,volume = 26 + ,year = 1992 + ,pages = {71--77} + ,update = "97.08 kettner" +} + +@inproceedings{ cgal:hnp-gstds-95 + ,author = "J. M. Hellerstein and J. F. Naughton and A. Pfeffer" + ,title = "Generalized Search Trees for Database Systems" + ,editor = "Umeshwar Dayal and Peter M. D. Gray and Shojiro Nishio" + ,booktitle = "{VLDB} '95: proceedings of the 21st International + Conference on Very Large Data Bases, Zurich, + Switzerland, Sept. 11--15, 1995" + ,publisher = "Morgan Kaufmann Publishers" + ,address = "Los Altos, CA 94022, USA" + ,year = 1995 + ,pages = "562--573" +} + +@article{ cgal:hp-isr-02 + , author = "D. Halperin and E. Packer" + , title = "Iterated Snap Rounding" + , journal = "Computational Geometry: Theory and Applications" + , volume = 23 + , number = 2 + , year = 2002 + , pages = "209--225" +} + +@book{ cgal:hw-vrml2h-96 + ,author = {Jed Hartman and Josie Wernecke} + ,title = {The {VRML} 2.0 Handbook: Building Moving Worlds on the + Web} + ,publisher = {Addison-Wesley} + ,year = 1996 + ,annote = {The VRML 2.0 Introduction and Reference by + Silicon Graphics.} + ,update = "98.02 kettner" +} + +@incollection{ cgal:ii-pacfa + ,author = {H. Imai and M. Iri} + ,title = {Polygonal Approximation of a Curve -- Formulation and Algorithms} + ,booktitle = {Computational Morphology} + ,editor = {G.T. Toussaint} + ,year = "1988" + ,pages = {71--86} +} + +@book{ cgal:j-csl-99 + ,author = "Nicolai M. Josuttis" + ,title = "The {C}++ Standard Library, A Tutorial and Reference" + ,publisher = "Addison-Wesley" + ,year = 1999 + ,update = "01.06 hoffmann" +} + +@incollection{ cgal:k-dat-96 + ,author = "Keffer, T." + ,title = "The Design and Architecture of {T}ools.h{\tt ++}" + ,booktitle = "{C{\tt ++}}~Gems" + ,publisher = "SIGS publications" + ,editor = "Lippman, S." + ,year = "1996" + ,pages = "43--57" + ,update = "98.01 schirra" +} + + +@InProceedings{ cgal:k-reisv-04, + author = {Menelaos I. Karavelas}, + title = {A robust and efficient implementation for the segment + {V}oronoi diagram}, + booktitle = {Proc. Internat. Symp. on Voronoi diagrams in Science + and Engineering (VD2004)}, + pages = {51--62}, + year = {2004} +} + +@article{ cgal:k-rprnm-96 + ,author = "Khachiyan, L." + ,title = "Rounding of polytopes in the real number model of + computation" + ,journal = "Mathematics of Operations Research" + ,volume = 21 + ,number = 2 + ,year = 1996 + ,pages = "307--320" +} + +@inproceedings { cgal:l-nmdgp-05, + AUTHOR = {Bruno Levy}, + TITLE = {Numerical Methods for Digital Geometry Processing}, + BOOKTITLE = {Israel Korea Bi-National Conference - Invited talk, extended abstract + (full paper will be available shortly)}, + YEAR = {2005}, + MONTH = {November}, + URL = {http://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics} +} + +@Article{ cgal:l-tmbrc-91, + author = {Lienhardt, P.}, + title = {Topological models for boundary representation: a + comparison with N-dimensional generalized maps}, + journal = {Computer-Aided Design}, + year = 1991, + volume = 23, + number = 1, + pages = {59--82}, + annote = {map,generalized map}, +} + +@inproceedings{ cgal:lt-fmeps-98, + author = "Peter Lindstrom and Greg Turk", + title = "Fast and memory efficient polygonal simplification", + booktitle = "{IEEE} Visualization", + pages = "279-286", + year = "1998", + url = "citeseer.ist.psu.edu/lindstrom98fast.html" +} + +@article{ cgal:lt-ems-99, + author = "P. Lindstrom and G. Turk", + title = "Evaluation of Memoryless Simplification", + journal = "IEEE Transactions on Visualization and Computer Graphics", + volume = "5", + number = "2", + month = "\slash", + pages = "98--115", + year = "1999", + url = "citeseer.ist.psu.edu/lindstrom99evaluation.html" +} + +@article{ cgal:k-lp-84 + ,author = {Donald E. Knuth} + ,title = {Literate Programming} + ,journal = {The Computer Journal} + ,year = 1984 + ,volume = 27 + ,number = 2 + ,pages = {97--111} + ,update = "98.01 kettner" +} + +@inproceedings{ cgal:k-s-00 + ,author = {Leif Kobbelt} + ,title = {$\sqrt{3}$-Subdivision} + ,booktitle = "Computer Graphics (Proc. SIGGRAPH '00)" + ,volume = 34 + ,year = 2000 + ,pages = {103--112} + ,update = "03.04 kettner" +} + +@techreport{ cgal:ke-ppawv-02 + ,author = {Menelaos I. Karavelas and Ioannis Z. Emiris} + ,title = {Predicates for the Planar Additively Weighted + {V}oronoi Diagram} + ,institution = {INRIA Sophia-Antipolis} + ,year = 2002 + ,type = {Technical Report} + ,number = {ECG-TR-122201-01} + ,address = {Sophia-Antipolis} + ,month = may + ,url = {ftp://ftp-sop.inria.fr/prisme/ECG/Reports/Month12/ECG-TR-122201-01.ps.gz} +} + +@inproceedings{ cgal:ke-rctac-03 +, author = "Menelaos I. Karavelas and Ioannis Z. Emiris" +, title = "Root comparison techniques applied to computing the additively +weighted {V}oronoi diagram" +, booktitle = "Proc. 14th ACM-SIAM Sympos. Discrete Algorithms (SODA)" +, year = 2003 +, pages = "320--329" +} + +@manual{ cgal:kl-cssd-94 + ,title = {The {CWEB} System of Structured Documentation} + ,author = {Donald E. Knuth and Silvio Levy} + ,edition = {Version 3.0} + ,year = 1994 + ,update = "98.01 kettner" +} + +@article{ cgal:kl-isc++l-96 + ,author = "K. Kreft and A. Langer" + ,title = "Iterators in the Standard {\CC\ }Library" + ,journal = "{C{\tt ++}}~Report" + ,volume = "8" + ,number = "10" + ,month = "Nov.-Dec." + ,year = "1996" + ,pages = "27--32" + ,update = "98.01 schirra" +} + +@book{ cgal:km-st-76 + ,author = {Kuratowski, K. and Mostowski, A.} + ,title = {Set Theory} + ,publisher = {North-Holland Publishing Co.} + ,year = {1976} +} + +@InProceedings{ cgal:kv-mssct-05, + author = {N.G.H. Kruithof and G. Vegter}, + title = {Meshing Skin Surfaces with Certified Topology}, + booktitle = {Proceedings of the nineth International CAD\/Graphics conference}, + pages = {to appear.}, + year = 2005 +} + + +@incollection{ cgal:kw-ceapp-97 + ,author = {Lutz Kettner and Emo Welzl} + ,title = {Contour Edge Analysis for Polyhedron Projections} + ,booktitle = {Geometric Modeling: Theory and Practice} + ,year = 1997 + ,pages = {379--394} + ,publisher = {Springer Verlag} + ,editor = {Wolfgang Strasser and Reinhard Klein and Rene Rau} + ,update = "97.04 kettner, 97.08 kettner" +} + +@techreport{ cgal:kw-dat-96 + ,author = {Dietmar K{\"u}hl and Karsten Weihe} + ,title = {Data Access Templates} + ,institution = {Universit\"at Konstanz, Germany} + ,year = 1996 + ,type = {Konstanzer Schriften in Mathematik und Informatik} + ,number = {Nr. 9} + ,month = may + ,note = {\path|http://www.informatik.uni-konstanz.de/Schriften|} + ,annote = {recommended C++ reading.} + ,update = "97.04 kettner" +} + +@article{ cgal:kw-dat-97 + ,author = {Dietmar K{\"u}hl and Karsten Weihe} + ,title = {Data Access Templates} + ,journal = {C++ Report} + ,year = 1997 + ,month = jun + ,annote = {recommended C++ reading.} + ,update = "97.06 schoenherr" +} + +@incollection{ cgal:kw-osepg-98 + ,author = {Lutz Kettner and Emo Welzl} + ,title = {One Sided Error Predicates in Geometric Computing} + ,booktitle = {Proc. 15th IFIP World Computer Congress, + Fundamentals - Foundations of Computer Science} + ,year = 1998 + ,pages = {13--26} + ,editor = {Kurt Mehlhorn} + ,update = "98.08 kettner" +} + +@inproceedings{ cgal:ky-dawvd-02 +, author = "Menelaos Karavelas and Mariette Yvinec" +, title = "Dynamic Additively Weighted Voronoi Diagrams in 2D" +, year = 2002 +, booktitle = "Proc. 10th European Symposium on Algorithms" +, pages = " 586-598" +, keywords = "Voronoi diagram, Appollonius diagram, additively weighted +Voronoi diagram" +} + + +@book{ cgal:l-icom-96 + ,author = {Stanley B. Lippman} + ,title = {Inside the {C{\tt ++}} Object Model} + ,publisher = {Addison-Wesley} + ,year = 1996 + ,annote = {Insides into C++ compiler implementations. + Performance issues of various C++ features. } + ,update = "97.04 kettner" +} + +@book{ cgal:ll-cp-98 + ,author = "Stanley B. Lippman and Josee Lajoie" + ,title = "C++ Primer" + ,edition = "3rd" + ,publisher = "Addison-Wesley" + ,year = 1998 + ,update = "04.08 kettner" +} + +@book{ cgal:l-lscsd-96 + ,author = {John Lakos} + ,title = {Large Scale {C{\tt ++}} Software Design} + ,publisher = {Addison-Wesley} + ,year = 1996 + ,annote = {recommended OO reading.} + ,update = "97.04 kettner" +} + +@InProceedings{ cgal:lprm-lscm-02, + author = {Bruno L{\'e}vy and Sylvain Petitjean and Nicolas Ray + and J{\'e}rome Maillot}, + title = {Least Squares Conformal Maps for Automatic Texture + Atlas Generation}, + pages = {362--371}, + ISSN = {0730-0301}, + booktitle = {Proceedings of the 29th Conference on Computer + Graphics and Interactive Techniques SIGGRAPH}, + series = {ACM Transactions on Graphics}, + volume = {21(3)}, + year = {2002} +} + +@inproceedings{ cgal:l-vgasa-96 + ,author = "D. T. Lee" + ,title = "Visualizing Geometric Algorithms -- State of the Art" + ,editor = "M. C. Lin and D. Manocha" + ,booktitle = "Applied Computational Geometry (Proc. WACG~'96)" + ,series = "Lecture Notes Comput. Sci." + ,volume = 1148 + ,publisher = "Springer-Verlag" + ,year = 1996 + ,pages = "45--50" + ,update = "98.01 schirra" +} + +@INPROCEEDINGS{cgal:lazard04b, +AUTHOR = {Lazard, Sylvain and Pe{\~n}aranda, Luis and Petitjean, Sylvain}, +TITLE = {Intersecting Quadrics\,: An Efficient and Exact Implementation}, +BOOKTITLE = {{ACM Symposium on Computational Geometry - SoCG'2004, Brooklyn, NY}}, +YEAR ={ 2004}, +MONTH ={ Jun}, +URL = {http://www.loria.fr/publications/2004/A04-R-021/A04-R-021.ps}, +ABSTRACT = {We present the first complete, exact and efficient C++ implementation of a method for parameterizing the intersection of two implicit quadrics with integer coefficients of arbitrary size. It is based on the near-optimal algorithm recently introduced by Dupont et al.~\cite{dupont03a}. Unlike existing implementations, it correctly identifies and parameterizes all the connected components of the intersection in all the possible cases, returning parameterizations with rational functions whenever such parameterizations exist. In addition, the coefficient field of the parameterizations is either minimal or involves one possibly unneeded square root.}, +} + +@InProceedings{ cgal:lpt-wea-09, + author = {Lazard, Sylvain and Pe{\~n}aranda, Luis and + Tsigaridas, Elias}, + title = {Univariate Algebraic Kernel and Application to + Arrangements}, + booktitle = {SEA}, + year = {2009}, + pages = {209-220}, + ee = {http://dx.doi.org/10.1007/978-3-642-02011-7_20}, + crossref = {cgal:v-ea-09}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + update = "09.11 penarand" +} + +@book{ cgal:m-cst-93 + ,author = {Robert B. Murray} + ,title = "{C{\tt ++}} Strategies and Tactics" + ,publisher = {Addison-Wesley} + ,year = 1993 + ,annote = {recommended C++ reading} + ,update = "98.01 schirra" +} + +@book{ cgal:m-ec-92 + ,author = {Scott Meyers} + ,title = "Effective {C{\tt ++}}" + ,publisher = {Addison-Wesley} + ,year = 1992 + ,annote = {recommended C++ reading. 50 Specific Ways to + Improve Your Programs and Designs} + ,update = "97.04 schoenherr" +} + +@book{ cgal:m-ec-97 +, author = "Scott Meyers" +, title = "Effective C++: 50 Specific Ways to Improve Your Programs and + Designs" +, edition = "2nd" +, publisher = "Addison-Wesley" +, year = "1997" +} + +@book{ cgal:m-mec-96 + ,author = {Scott Meyers} + ,title = "More Effective {C{\tt ++}}" + ,publisher = {Addison-Wesley} + ,year = 1996 + ,annote = {recommended C++ reading. 35 New Ways to + Improve Your Programs and Designs} + ,update = "97.04 schoenherr" +} + +@inproceedings{ cgal:m-pppd-96 + ,author = "Kurt Mehlhorn" + ,title = "Position Paper for Panel Discussion" + ,editor = "M. C. Lin and D. Manocha" + ,booktitle = "Applied Computational Geometry (Proc. WACG~'96)" + ,series = "Lecture Notes Comput. Sci." + ,volume = 1148 + ,publisher = "Springer-Verlag" + ,year = 1996 + ,pages = "51--52" + ,update = "98.01 schirra" +} + +@article{ cgal:m-tnutt-95 + ,author = {Nathan C. Myers} + ,title = {Traits: a New and Useful Template Technique} + ,journal = "{C{\tt ++}}~Report" + ,year = 1995 + ,month = jun + ,annote = {recommended C++ reading. stream traits, iterator + traits, typedef's.} + ,update = "97.04 kettner" +} + +@book{ cgal:m-wsc-93 + ,author = {Steve Maguire} + ,title = {Writing Solid Code} + ,publisher = {Microsoft Press} + ,year = 1993 + ,annote = {Microsoft's techniques for developing bug-free C programs} + ,update = "98.01 schirra" +} + +@inproceedings{ cgal:mad-fpsep-05 +, author = "Abdelkrim Mebarki and Pierre Alliez and Olivier Devillers" +, title = "Farthest Point Seeding for Efficient Placement of Streamlines" +, year = 2005 +, booktitle = "Proceeding of IEEE Visualization" +} + +@inproceedings{ cgal:mdsb-ddgot-02, + author="M. Meyer and M. Desbrun and P. Schr{\"o}der and A. H. Barr", + title="Discrete Differential-Geometry Operators for Triangulated 2-Manifolds", + booktitle="VisMath", + address="", + year="2002", + pages="" +} + +@book{ cgal:mg-uulp-06 +,author = "J. Matou\v{s}ek and B. G{\"a}rtner" +,title = "Understanding and Using Linear Programming" +,publisher ="Springer-Verlag" +,year = 2006 +} + +@manual{ cgal:mnsu-lum + ,author = {Mehlhorn, K. and N\"aher, S. and Seel, M. and Uhrig, C.} + ,title = {The {LEDA} {U}ser {M}anual} + ,organization = {Max-Planck-Insitut f\"ur Informatik} + ,address = {66123 Saarbr\"ucken, Germany} + ,note = {\path|http://www.mpi-sb.mpg.de/LEDA/leda.html|} + ,update = "99.05 schirra, 00.09 hert" +} + +@inproceedings{cgal:mp-fcafg-05 +, author = "Guillaume Melquiond and Sylvain Pion" +, title = "Formal certification of arithmetic filters for geometric predicates" +, booktitle = "Proc. 17th IMACS World Congress on Scientific, Applied Mathematics and Simulation" +, year = 2005 +, pages = "" +} + +@article{ cgal:ms-aogl-94 + ,author = {David R.~Musser and Alexander A.~Stepanov} + ,title = {Algorithm-oriented Generic Libraries} + ,journal = {Software -- Practice and Experience} + ,year = 1994 + ,volume = 24 + ,number = 7 + ,pages = {623--642} + ,month = jul +} + +@inproceedings{ cgal:ms-gp-89 + ,author = {David R.~Musser and Alexander A.~Stepanov} + ,title = {Generic Programming} + ,booktitle = {1st Intl.\ Joint Conf.\ of ISSAC-88 and AAEC-6} + ,year = 1989 + ,pages = {13--25} + ,publisher = {Springer LNCS 358} +} + +@book{ cgal:ms-strg-96 + ,author = {David R. Musser and Atul Saini} + ,title = "{STL} Tutorial and Reference Guide: + {C{\tt ++}}~Programming with the Standard Template + Library" + ,publisher = {Addison-Wesley} + ,year = 1996 + ,annote = {recommended C++ reading.} + ,update = "97.04 kettner" +} + +@Misc{ cgal:mt-mpfr, + key = {MPFR}, + title = {{MPFR} - The Multiple Precision Floating-Point Reliable + Library}, + howpublished = {The {MPFR} Team}, + note = {\path|http://mpfr.org|}, + update = "09.11 penarand" +} + +@book{ cgal:ndw-opgog-93 + ,author = {Jackie Neider and Tom Davis and Mason Woo} + ,title = {OpenGL Programming Guide: The Official Guide to + Learning OpenGL, Release 1} + ,publisher = {Addison-Wesley} + ,year = 1993 + ,update = "97.04 kettner" +} + +@inproceedings{ cgal:o-dcgal-96 + ,author = {Mark H. Overmars} + ,title = {Designing the Computational Geometry Algorithms + Library {CGAL}} + ,booktitle = {ACM Workshop on Applied Computational Geometry} + ,editor = {M. C. Lin and D. Manocha} + ,address = {Philadelphia, Pennsylvenia} + ,month = {May, 27--28} + ,year = 1996 + ,note = {Lecture Notes in Computer Science 1148} + ,update = "97.04 kettner" +} + +@inproceedings{cgal:ory-mvbss-05 +, author = "Steve Oudot and Laurent Rineau and Mariette Yvinec" +, title = "Meshing Volumes Bounded by Smooth Surfaces" +, booktitle = "Proc. 14th International Meshing Roundtable" +, year = 2005 +, nickname = "IMRT05" +, pages = "203-219" +} + +@book{cgal:p-gd-01, + author="I. Porteous", + title="Geometric Differentiation (2nd Edition)", + publisher="Cambridge University Press", + year="2001" +} + +@manual{ cgal:p-gmgv16-96 + ,author = {Mark Phillips} + ,title = {Geomview Manual, Version 1.6.1 for Unix Workstations} + ,organization = {The Geometry Center} + ,address = {University of Minnesota} + ,year = 1996 + ,note = {\path|http://www.geom.umn.edu/software/download/geomview.html|} + ,annote = {Reference for object file format (OFF).} + ,update = "03.04 kettner" +} + +@article{ cgal:p-plcbd-93 + ,author = "B. Piper" + ,title = "Properties of Local Coordinates based on Dirichlet + tesselations" + ,journal = "Computing Suppl." + ,year = "1993" + ,volume = "8" + ,pages = "227-239" +} + +@article{ cgal:p-smrqt-01, + author="S. Petitjean", + title="A Survey of Methods for Recovering Quadrics in Triangle Meshes", + journal="ACM Computing Surveys", + year="2001", + volume="34", + number="2", + pages="" +} + +@TechReport{ cgal:pabl-cco-07, + author = {Poudret, M. and Arnould, A. and Bertrand, Y. and Lienhardt, P.}, + title = {Cartes Combinatoires Ouvertes.}, + institution = {Laboratoire SIC E.A. 4103}, + number = {2007-1}, + month = {October}, + year = {2007}, + address = {F-86962 Futuroscope Cedex, France}, + type = {Research Notes}, + keywords = {cartes combinatoires, demi-ar{\^e}te, ar{\^e}te radiale}, +} + +@article{ cgal:pc-rdp-86 + ,author = {David L. Parnas and Paul C. Clements} + ,title = {A Rational Design Process: How and Why to Fake It} + ,journal = {IEEE Transactions on Software Engineering} + ,year = 1986 + ,volume = 12 + ,number = 2 + ,pages = {251-257} + ,update = "98.01 kettner" +} + + +@article{ cgal:pp-cdmsc-93, + author = "U. Pinkall and K. Polthier", + title = "Computing discrete minimal surfaces and their conjugates", + journal = "Experimental Mathematics", + volume = "2", + number = "1", + pages = "15-36", + year = "1993" +} + +@book{ cgal:ptvf-nrcpp-02 + , author = "W. Press and S. Teukolsky and W. Vetterling and B. Flannery" + , title = "Numerical Recipes in {C}{\tt ++}" + , edition = "2nd" + , publisher = "Cambridge University Press" + , year = 2002 +} + +@article{ cgal:pv-opadc-94 + ,author = {J.C. Perez and E. Vidal} + ,title = {Optimum polygonal approximation of digitized curves} + ,journal = {Pattern Recognition Letters} + ,year = 1994 + ,number = 15 + ,pages = {743--750} +} + +@article{ cgal:r-lomom-94 + ,author = {James Rumbaugh} + ,title = {The Life of an Object Model: How the Object-Model + Changes During Development} + ,journal = {Journal of Object-Oriented Programming} + ,year = 1994 + ,volume = 7 + ,number = 1 + ,pages = {24--32} + ,month = {March/April} + ,annote = {Object and class diagram notation as used in the + book of design patterns ghjv-dpero-95.} + ,update = "97.04 kettner" +} + +@Misc{ cgal:r-mpfi, + key = {MPFI}, + title = {{MPFI} - The Multiple Precision Floating-Point Interval + Library}, + howpublished = {{R}evol, {N}athalie and {R}ouillier, {F}abrice}, + note = {\path|http://perso.ens-lyon.fr/nathalie.revol/software.html|}, + update = "09.11 penarand" +} + +@article{ cgal:r-rrstm-80 + ,author = {Requicha, Aristides G.} + ,title = {Representations for Rigid Solids: Theory, Methods, + and Systems} + ,journal = {ACM Computing Surveys} + ,volume = {12} + ,number = {4} + ,year = {1980} + ,issn = {0360-0300} + ,pages = {437--464} + ,publisher = {ACM Press} +} + +@Misc{ cgal:r-rs, + key = {RS}, + title = {{RS - A} Software for real solving of algebraic systems}, + howpublished = {{R}ouillier, {F}abrice}, + note = {\path|http://www.loria.fr/equipes/vegas/rs/|}, + update = "09.11 penarand" +} + +@book{ cgal:rbpel-oomd-91 + ,author = {James Rumbaugh and Michael Blaha and William + Premerlani and Frederick Eddy and William Lorenson} + ,title = {Object-Oriented Modeling and Design} + ,publisher = {Prentice Hall} + ,address = {Englewood Cliffs, NJ} + ,year = 1991 + ,annote = {Object and class diagram notation as used in the + book of design patterns ghjv-dpero-95.} + ,update = "97.04 kettner" +} + +@article{ cgal:ry-gsddrm-06 + ,author = {Laurent Rineau and Mariette Yvinec} + ,title = {A Generic Software Design for {D}elaunay Refinement Meshing} + ,year = 2007 + ,journal = "Comput. Geom. Theory Appl." + , volume = 38 + , pages = "100--110" + , url = "http://dx.doi.org/10.1016/j.comgeo.2006.11.008" + , publisher = "Elsevier Science Publishers B. V." + ,update = "09.02 lrineau" +} + +@Article{ cgal:rz-jcam-04, + author = {{R}ouillier, {F}abrice and {Z}immermann, {P}aul}, + title = {{E}fficient isolation of polynomial's real roots}, + journal = {Journal of Computational and Applied Mathematics}, + volume = 162, + number = 1, + pages = {33-50}, + year = 2004, + update = "09.11 penarand" +} + +@inproceedings{ cgal:s-cgehd-98 + ,author = "Jonathan R. Shewchuk" + ,title = "A Condition Guaranteeing the Existence of Higher-Dimensional + Constrained Delaunay Triangulations" + ,booktitle = "Proc. 14th Annu. ACM Sympos. Comput. Geom." + ,year = 1998 + ,pages = "76--85" +} + +@book{ cgal:s-cpl-91 + ,author = {Bjarne Stroustrup} + ,title = "The {C{\tt ++}}~Programming Language" + ,publisher = {Addison-Wesley} + ,year = 1991 + ,edition = {2nd} + ,annote = {recommended C++ reading.} + ,update = "97.04 kettner" +} + +@book{ cgal:s-cpl-97 + ,author = {Bjarne Stroustrup} + ,title = "The {C{\tt ++}}~Programming Language" + ,publisher = {Addison-Wesley} + ,year = 1997 + ,edition = {3rd} + ,annote = {recommended C++ reading.} + ,update = "97.12 kettner" +} + +@misc{ cgal:s-dcgal-96 + ,author = "S. Schirra" + ,title = "Designing a Computational Geometry Algorithms Library" + ,howpublished = "Lecture Notes for Advanced School on Algorithmic + Foundations of Geographic Information Systems, CISM, + Udine" + ,month = "September 16-20" + ,year = "1996" + ,update = "98.01 schirra" +} + +@incollection{ cgal:s-ixgpe-91a + ,author = "Peter Schorn" + ,title = "Implementing the {XYZ} {GeoBench}: A programming + environment for geometric algorithms" + ,booktitle = "Computational Geometry --- Methods, Algorithms and + Applications: Proc. Internat. Workshop Comput. + Geom. CG '91" + ,series = "Lecture Notes Comput. Sci." + ,volume = 553 + ,publisher = "Springer-Verlag" + ,year = 1991 + ,pages = "187--202" + ,note = {\path|http://wwwjn.inf.ethz.ch/geobench/XYZGeoBench.html|} + ,update = "94.01 rote, 98.01 kettner" +} + +@techreport{ cgal:s-picpc-98 + ,author = {Schirra, Stefan} + ,title = {Parameterized Implementations of Classical Planar + Convex Hull Algorithms and Extreme Point Computations} + ,type = {Research Report} + ,institution = {Max-Planck-Institut f{\"u}r Informatik} + ,address = {Im Stadtwald, D-66123 Saarbr{\"u}cken, Germany} + ,number = {MPI-I-98-1-003} + ,month = {January} + ,year = {1998} + ,issn = {0946-011X} + ,update = "98.01 schirra" +} + +@incollection{ cgal:s-prgc-97 + ,author = {S. Schirra} + ,title = {Precision and Robustness in Geometric Computations} + ,booktitle = {Algorithmic foundations of geographic information systems} + ,editor = {van Kreveld, Marc and Nievergelt, J{\"u}rg and Roos, Thomas and Widmayer, Peter} + ,publisher = {Springer-Verlag} + ,address = {Berlin} + ,year = {1997} + ,series = {Lecture Notes in Computer Science} + ,volume = {1340} + ,pages = {255--287} + ,update = "98.4 schirra" +} + +@mastersthesis{ cgal:s-zkm-96 + ,author = {Michael Schutte} + ,title = {Zuf{\"a}llige Konvexe Mengen} + ,school = {Freie Universit{\"a}t Berlin} + ,year = 1996 + ,address = {Germany} +} + +@misc{ cgal:sgcsi-stlpg-97 + ,author = {{Silicon Graphics Computer Systems{,} Inc.}} + ,title = {Standard Template Library Programmer's Guide} + ,howpublished = {\path|http://www.sgi.com/Technology/STL/|} + ,year = 1997 + ,annote = {Web reference to the STL from SGI. + recommended C++ and STL reference material.} + ,update = "97.12 kettner" +} + +@misc{ cgal:sl-stl-95 + ,author = {Alexander Stepanov and Meng Lee} + ,title = {The Standard Template Library} + ,month = oct + ,year = 1995 + ,annote = {recommended C++ reading. Short introduction to the + STL. Precise requirements for the iterators and + containers. Explanation of iterator tags (outdated).} + ,update = "97.04 kettner" +} +% Previously there was: +% ,howpublished = {\path|http://www.cs.rpi.edu/~musser/doc.ps|} +% but this URL fails now. + + +@techreport{ cgal:sm-iftml-00 + ,author = {M. Seel and K. Mehlhorn} + ,title = {Infimaximal Frames: A Technique for Making Lines Look + Like Segments} + ,type = {Research Report} + ,institution = {MPI f{\"u}r Informatik} + ,address = {Saarbr{\"u}cken, Germany} + ,number = {MPI-I-2000-1-005} + ,month = dec + ,year = {2000} + ,issn = {0946-011X} + ,note = {\path|http://www.mpi-sb.mpg.de/~mehlhorn/ftp/InfiFrames.ps|} +} + +@InProceedings{cgal:sp-mrbee-05 + ,title = {Mesh Refinement based on Euler Encoding} + ,author = {Le-Jeng Shiue and J{\"o}rg Peters} + ,pages = {343--348} + ,year = {2005} + ,booktitle = {Proceedings of the International Conference on + Shape Modeling and Applications 2005} +} + +@InProceedings{cgal:sp-mrlbg-05 + ,title = {A Mesh Refinement Library based on Generic Design} + ,author = {Le-Jeng Shiue and J{\"o}rg Peters} + ,pages = {1-104--1-108} + ,year = {2005} + ,booktitle = {Proceedings of the 43rd ACM Southeast Conference} +} + + +@book{ cgal:sll-bgl-02 + ,author = {Jeremy G. Siek and Lie-Quan Lee and Andrew Lumsdaine} + ,title = {Boost Graph Library} + ,publisher = {Addison-Wesley} + ,year = 2002 +} + + +@inproceedings{cgal:sry-mvbss-05 +, author = "Steve Oudot and Laurent Rineau and Mariette Yvinec" +, title = "Meshing Volumes Bounded by Smooth Surfaces" +, booktitle = "Proc. 14th International Meshing Roundtable" +, year = 2005 +, nickname = "IMRT05" +, pages = "203-219" +} +@article{ cgal:ss-ablp-91 + ,author = {Lisa M. C. Smith and Mansur H. Samadzadeh} + ,title = {An Annotated Bibliography of Literate Programming} + ,journal = {ACM SIGPLAN Notices} + ,year = 1991 + ,volume = 26 + ,number = 1 + ,pages = {14--20} + ,month = jan + ,update = "98.01 kettner" +} + +@phdthesis{cgal:t-om-09 +, author = "Jane Tournois" +, title = "Optimisation de maillages" +, type = "Th{\`e}se de doctorat en sciences" +, school = "Uni\-ver\-sit{\'e} Nice Sophia-Antipolis" +, address = "Nice, France" +, year = 2009 +, flag = "_these" +} + + +@article{ cgal:tpg-rmtiise-99 + ,author = "G.M. Treece and R.W. Prager and A.H. Gee" + ,title = "Regularised marching tetrahedra: improved iso-surface extraction" + ,journal = "Computers and Graphics" + ,volume = "23" + ,number = "4" + ,pages = "583--598" + ,year = "1999" + ,url = "http://citeseer.ist.psu.edu/treece98regularised.html" +} + +@inproceedings{cgal:tsa-ps3dd-09, +author = {Jane TOURNOIS and Rahul SRINIVASAN and Pierre ALLIEZ}, +title = {{Perturbing slivers in 3D Delaunay meshes}}, +year = {2009}, +month = {october}, +booktitle = {Proceedings of the 18th International Meshing Roundtable}, +location = {Salt Lake City, Utah, USA} +} + +@article{cgal:twad-iropitmg-09 +, author = "Jane Tournois and Camille Wormser and Pierre Alliez + and Mathieu Desbrun" +, title = "Interleaving {Delaunay} Refinement and Optimization for + Practical Isotropic Tetrahedron Mesh Generation" +, year = 2009 +, journal = "ACM Transactions on Graphics" +, pages = "75:1-75:9" +, note = "SIGGRAPH '2009 Conference Proceedings" +, volume = "28(3)" +, url = "http://hal.inria.fr/inria-00359288" +, geombib = "not yet" +, x-editorial-board = {yes} +, x-proceedings = {yes} +, x-international-audience = {yes} +} + + +@proceedings{ cgal:v-ea-09, + editor = {Jan Vahrenhold}, + title = {Experimental Algorithms, 8th International Symposium, SEA + 2009, Dortmund, Germany, June 4-6, 2009. Proceedings}, + booktitle = {SEA}, + publisher = {Springer}, + series = {Lecture Notes in Computer Science}, + volume = {5526}, + year = {2009}, + isbn = {978-3-642-02010-0}, + ee = {http://dx.doi.org/10.1007/978-3-642-02011-7}, + bibsource = {DBLP, http://dblp.uni-trier.de}, + update = "09.11 penarand" +} + +@article{ cgal:v-et-95 + ,author = {Todd Veldhuizen} + ,title = {Expressions Templates} + ,journal = "{C{\tt ++}}~Report" + ,year = 1995 + ,month = jun + ,pages = {26--31} + ,annote = {Inlining vector expressions and parameter passing + of expressions at compile time. Template Metaprograms.} + ,update = "98.01 kettner" +} + +@inproceedings{ cgal:v-gpc-97 + ,author = "R. C. Veltkamp" + ,title = "Generic Programming in {CGAL}, the Computational + Geometry Algorithms Library" + ,booktitle = "Proceedings of the 6th Eurographics Workshop on + Programming Paradigms in Graphics" + ,year = "1997" + ,update = "98.01 schirra" +} + +@article{ cgal:v-tm-95 + ,author = {Todd Veldhuizen} + ,title = {Template Metaprograms} + ,journal = "{C{\tt ++}}~Report" + ,year = 1995 + ,month = may + ,pages = {36--43} + ,annote = {Prime numbers at compiler time, C++ programs at + compile time, control structures, local variables.} + ,update = "98.01 kettner" +} + +@book{ cgal:vj-ctcg-03 + ,author = "David Vandevoorde and Nicolai M. Josuttis" + ,title = "{C}++ Templates: The Complete Guide" + ,publisher = "Addison-Wesley" + ,year = 2003 + ,update = "04.04 kettner" +} + +@article{ cgal:vp-lactm-96 + ,author = {Todd Veldhuizen and Kumaraswamy Ponnambalam} + ,title = {Linear Algebra with {C{\tt ++}} Template Metaprograms} + ,journal = {Dr. Dobb's Journal} + ,year = 1996 + ,month = aug + ,annote = {Vector operations without temporary variables.} + ,update = "04.01, 98.01 kettner" +} + +@misc{ cgal:vrmls-96 + ,key = {VRML2} + ,title = {The Virtual Reality Modeling Language Specification: + Version 2.0, {ISO}/{IEC} {CD} 14772} + ,howpublished = {\path|http://www.vrml.org/|} + ,month = {August 4} + ,year = 1996 + ,update = "98.01 kettner" +} + +@manual{ cgal:w-fum-92 + ,title = {{FunnelWeb} User's Manual} + ,author = {Ross N. Williams} + ,edition = {{V1.0} for {FunnelWeb} {V3.0}} + ,year = 1992 + ,month = may + ,update = "98.01 kettner" +} + +@incollection{ cgal:w-fvt-90 + ,author = {Bob Wallis} + ,title = {Forms, Vectors, and Transforms} + ,booktitle = {Graphics Gems} + ,publisher = {Academic Press} + ,year = 1990 + ,editor = {Andrew S. Glassner} + ,pages = {533--538} + ,annote = {Normal vectors under affine transformations, + tensor algebra and differential geometry, triangular + interpolants, subdeviding a parametric polynomial + curve} + ,update = "98.01 kettner" +} + +@book{ cgal:w-impoo-94 + ,author = {Josie Wernicke} + ,title = {The Inventor Mentor: Programming Object-Oriented + 3D Graphics with Open Inventor, Release 2} + ,publisher = {Addison-Wesley} + ,year = 1994 + ,update = "97.04 kettner" +} + +@book{cgal:ww-smgd-02 + ,author = "Joe Warren and Henrik Weimer" + ,title = "Subdivision Methods for Geometric Design" + ,address = "New York" + ,publisher = "Morgan Kaufmann Publishers" + ,year = "2002" +} + +@inproceedings{cgal:ybs-frdcl-05, + author = {Shin Yoshizawa and Alexander Belyaev and Hans-Peter Seidel}, + title = {Fast and robust detection of crest lines on meshes}, + booktitle = {SPM '05: Proceedings of the 2005 ACM symposium on Solid and physical modeling}, + year = {2005}, + isbn = {1-59593-015-9}, + pages = {227--232}, + location = {Cambridge, Massachusetts}, + doi = {http://doi.acm.org/10.1145/1060244.1060270}, + publisher = {ACM Press}, + address = {New York, NY, USA}, + } + + @article{cgal:ybs-rvlmi-04, + author = {Yutaka Ohtake and Alexander Belyaev and Hans-Peter Seidel}, + title = {Ridge-valley lines on meshes via implicit surface fitting}, + journal = {ACM Trans. Graph.}, + volume = {23}, + number = {3}, + year = {2004}, + issn = {0730-0301}, + pages = {609--612}, + doi = {http://doi.acm.org/10.1145/1015706.1015768}, + publisher = {ACM Press}, + address = {New York, NY, USA}, + } + +@article{ cgal:ze-fsbi-02 + ,author = "Afra Zomorodian and Herbert Edelsbrunner" + ,title = "Fast Software for Box Intersection" + ,journal = "Int. J. Comput. Geom. Appl." + ,year = 2002 + ,volume = 12 + ,pages = "143--172" +} + +@incollection{cgal:h-sm-04, + author = "Christoph M. Hoffmann", + title = "Solid Modeling", + chapter = 56, + editor = "Jacob E. Goodman and Joseph O'Rourke", + booktitle = "Handbook of Discrete and Computational Geometry", + publisher = "Chapman \& Hall/CRC", + edition = "2nd", + year = 2004, + pages = "1257--1278" +} + +@inproceedings{ cgal:fo-ss-98, + author = "Petr Felkel and St{\v{e}}p{\'{a}}n Obdr\v{z}{\'{a}}lek", + title = "Straight Skeleton Implementation", + booktitle = "14th Spring Conference on Computer Graphics + (SCCG'98)", + editor = "L{\'{a}}szl{\'{o}} Szirmay Kalos", + pages = "210--218", + year = "1998", + url = "citeseer.ist.psu.edu/article/felkel98straight.html" +} + +@inproceedings{ cgal:ee-rrccpp-98, + author = "David Eppstein and Jeff Erickson", + title = "Raising Roofs, Crashing Cycles, and Playing Pool: Applications of a Data Structure for Finding Pairwise Interactions", + booktitle = "Symposium on Computational Geometry", + pages = "58--67", + year = "1998", + url = "citeseer.ist.psu.edu/eppstein98raising.html" +} + +@inproceedings{ cgal:ld-agrm-03, +author = {R. G. Laycock and A. M. Day}, +title = {Automatically Generating Roof Models from Building + Footprints}, +booktitle = {The 11-th International Conference in Central Europe + on Computer Graphics, Visualization and Computer + Vision'2003. Journal of WSCG - FULL Papers }, +year = 2003, +volume = 11, +issn = {ISSN 1213-6972}, +url = "http://wscg.zcu.cz/wscg2003/Papers_2003/G67.pdf" +} + + + +@InProceedings{cgal:k-vdc-06, + author = {Menelaos I. Karavelas}, + title = {Voronoi diagrams in {\sc Cgal}}, + booktitle = {22nd European Symposium on Computational Geometry}, + pages = {229--232}, + year = {2006}, + address = {Delphi, Greece}, +} + +@techreport{cgal:f-ecsca-04, + author = "E. Fogel et al.", + title = "An empirical comparison of software for constructing arrangements of curved arcs", + type = "Technical {Report}", + number = "ECG-TR-361200-01", + institution = "Tel Aviv University", + year = 2004 +} + +@mastersthesis{cgal:m-rgece-06, + author = {Michal Meyerovitch}, + title = {Robust, Generic, and Efficient Constructions of Envelopes of Surfaces in Three-Dimensional Space}, + school = {Tel-Aviv University}, + year = 2006, + address = {Israel} +} + +@inproceedings{cgal:a-esgc-98, +author = {David Abrahams}, +title = {Exception-Safety in Generic Components}, +booktitle = {Generic Programming}, +year = {1998}, +pages = {69-79}, +ee = {http://link.springer.de/link/service/series/0558/bibs/1766/17660069.htm}, +crossref = {cgal:jlm-isgp-98}, +bibsource = {DBLP, http://dblp.uni-trier.de}, +url = "http://www.boost.org/more/generic_exception_safety.html" +} + +@article{cgal:as-solri-92 +, author = "F. Aurenhammer and O. Schwarzkopf" +, title = "A simple on-line randomized incremental algorithm for computing higher order {Voronoi} diagrams" +, journal = "Internat. J. Comput. Geom. Appl." +, volume = 2 +, year = 1992 +, pages = "363--381" +, keywords = "Voronoi diagrams, geometric transforms, dynamization" +, succeeds = "as-solri-91" +, update = "93.09 aurenhammer, 93.05 schwarzkopf" +} + +@inproceedings{cgal:fy-okvd-01 +, author = "Julia Fl{\"o}totto and Mariette Yvinec" +, title = "Order-$k$ {Voronoi} Diagrams" +, booktitle = "Abstracts 17th European Workshop Comput. Geom." +, nickname = "CG 2001" +, site = "Berlin" +, publisher = "Freie Universit{\"a}t Berlin" +, year = 2001 +, pages = "109--112" +, update = "01.04 icking" +} + +@proceedings{cgal:jlm-isgp-98, + editor = {Mehdi Jazayeri and + R{\"u}diger Loos and + David R. Musser}, + title = {Generic Programming, International Seminar on Generic Programming, + Dagstuhl Castle, Germany, April 27 - May 1, 1998, Selected Papers}, + booktitle = {Generic Programming}, + publisher = {Springer}, + series = {Lecture Notes in Computer Science}, + volume = {1766}, + year = {2000}, + isbn = {3-540-41090-2}, + bibsource = {DBLP, http://dblp.uni-trier.de} +} + +@inproceedings{Kazhdan06, + author = {Michael Kazhdan and M. Bolitho and Hugues Hoppe}, + title = "{Poisson Surface Reconstruction}", + booktitle = {Symp. on Geometry Processing}, + year = {2006}, + pages = "61--70", +} + +@Article{BC02, + author = "Boissonnat and Cazals", + title = "Smooth Surface Reconstruction via Natural Neighbour + Interpolation of Distance Functions", + journal = "CGTA: Computational Geometry: Theory and + Applications", + volume = "22", + year = "2002"} + +@inproceedings{LC87, + author = {William E. Lorensen and Harvey E. Cline}, + title = {Marching cubes: A high resolution 3D surface construction algorithm}, + booktitle = {SIGGRAPH '87: Proceedings of the 14th annual conference on Computer graphics and interactive techniques}, + year = {1987}, + isbn = {0-89791-227-6}, + pages = {163--169}, + doi = {http://doi.acm.org/10.1145/37401.37422}, + publisher = {ACM Press}, + address = {New York, NY, USA}, + } + +@inproceedings{CBC01, + author = {J. C. Carr and R. K. Beatson and J. B. Cherrie and T. J. Mitchell and W. R. Fright and B. C. McCallum and T. R. Evans}, + title = {Reconstruction and representation of 3D objects with radial basis functions}, + booktitle = {SIGGRAPH '01: Proceedings of the 28th annual conference on Computer graphics and interactive techniques}, + year = {2001}, + isbn = {1-58113-374-X}, + pages = {67--76}, + doi = {http://doi.acm.org/10.1145/383259.383266}, + publisher = {ACM Press}, + address = {New York, NY, USA}, +} + +@inproceedings{ABK98, + author = {Nina Amenta and Marshall Bern and Manolis Kamvysselis}, + title = {A new Voronoi-based surface reconstruction algorithm}, + booktitle = {SIGGRAPH '98: Proceedings of the 25th annual conference on Computer graphics and interactive techniques}, + year = {1998}, + isbn = {0-89791-999-8}, + pages = {415--421}, + doi = {http://doi.acm.org/10.1145/280814.280947}, + publisher = {ACM Press}, + address = {New York, NY, USA}, + } + +@inproceedings{Guennebaud07, + author = {Ga\"{e}l Guennebaud and Markus Gross}, + title = {Algebraic point set surfaces}, + booktitle = {SIGGRAPH '07: ACM SIGGRAPH 2007 papers}, + year = {2007}, + pages = {23}, + location = {San Diego, California}, + doi = {http://doi.acm.org/10.1145/1275808.1276406}, + publisher = {ACM}, + address = {New York, NY, USA}, + } + +@article{cclt-dc3sk-08, +title = "Design of the {CGAL} 3{D} {Spherical Kernel} and application to arrangements of circles on a sphere", +journal = "Computational Geometry : Theory and Applications", +volume = "42", +number = "6-7", +pages = "536 - 550", +year = "2009", +note = "", +issn = "0925-7721", +doi = "DOI: 10.1016/j.comgeo.2008.10.003", +author = "Pedro M.M. de Castro and Frederic Cazals and Sebastien Loriot and Monique Teillaud" +} + +@conference{schwarzkopf1995ede, + title={{The extensible drawing editor Ipe}}, + author={Schwarzkopf, O.}, + booktitle={Proceedings of the eleventh annual symposium on Computational geometry}, + pages={410--411}, + year={1995}, + organization={ACM New York, NY, USA} +} + +@MANUAL{ipe:man-09, + TITLE = {{IPE} manual and library documentation}, + AUTHOR = {Otfried Cheong}, + EDITION = {6.0pre32}, + YEAR = {2009}, + URL = {http://tclab.kaist.ac.kr/ipe/} +} + +@misc{cgal:t-ocdl-05, + key = "opcode", + author = {P. Terdiman}, + title = "{{OPCODE 3D} Collision Detection library}", + note = "http://www.codercorner.com/Opcode.htm", + year = {2005} +} + +@incollection{msri52:liu-snoeyink-05, + author = {Yuanxin Liu and Jack Snoeyink}, + title = {A Comparison of Five Implementations of 3{D} Delaunay Tessellation}, + booktitle = {Combinatorial and Computational Geometry}, + editor = "Jacob E. Goodman, J\'anos Pach and Emo Welzl", + year = {2005}, + pages = {439-458}, + URL = {http://www.msri.org/communications/books/Book52/files/23liu.pdf}, + publisher = {MSRI Publications} +} + +@article{cgta-kmpsy-08 +, author = "Lutz Kettner and Kurt Mehlhorn and Sylvain Pion and Stefan Schirra and Chee Yap" +, title = "Classroom Examples of Robustness Problems in Geometric Computations" +, journal = "Computational Geometry: Theory and Applications" +, publisher = "Elsevier" +, year = "2008" +, month = "may" +, volume = "40" +, number = "1" +, pages = "61-78" +, url = "http://hal.inria.fr/inria-00344310/" +, doi = "10.1016/j.comgeo.2007.06.003" +, x-international-audience = "yes" +, x-editorial-board = "yes" +} + +@inproceedings{e-dpssdt-02 + , author = "Jeff Erickson" + , title = "Dense point sets have sparse {Delaunay} triangulations" + , booktitle = "Proc. 13th ACM-SIAM Sympos. Discrete Algorithms (SODA)" + , year = 2002 + , pages = "125-134" +} + +@inproceedings{geometrica-5986i +, thanks = "barbados" +, author = "Nina Amenta and Dominique Attali and Olivier Devillers" +, title = "Complexity of {Delaunay} triangulation for points on lower-dimensional polyhedra" +, booktitle = "Proc. 18th ACM-SIAM Sympos. Discrete Algorithms" +, nickname = "SODA" +, url = "http://hal.inria.fr/inria-00182835/" +, year = 2007 +, pages = "1106--1113" +} + +@article{prisme-4453a +, author = "Dominique Attali and Jean-Daniel Boissonnat" +, title = "Complexity of the {Delaunay} triangulation of points on polyhedral surfaces" +, journal = "Discrete and Computational Geometry" +, volume = 30 +, number = 3 +, pages = "437--452" +, year = 2003 +} + +@inproceedings{prisme-abl-03 +, geombib = "not yet" +, author = "Dominique Attali and Jean-Daniel Boissonnat and Andr{\'e} Lieutier" +, title = "Complexity of the {Delaunay} Triangulation of Points on Surfaces: The Smooth Case" +, booktitle = "Proc. 19th Annual Symposium on Computational Geometry" +, year = 2003 +, pages = "237--246" +} + + +@PHDTHESIS{eigenwillig-phd-08, +AUTHOR = "Eigenwillig, Arno", +TITLE = "Real Root Isolation for Exactand Approximate Polynomials Using Descartes ' Rule of Signs" , +SCHOOL = "Universit{\"a}t des Saarlandes", +YEAR = "2008", +ADDRESS = "Saarbr{\"u}cken, Germany" +} + +@misc{abbott-qir-06, + author = "J. Abbott", + title = "Quadratic Interval Refinement for Real Roots", + URL = "http://www.dima.unige.it/~abbott/", + note = "Poster presented at the 2006 Int.\ Symp.\ on Symb.\ + and Alg.\ Comp.\ (ISSAC 2006)"} + +@InProceedings{ek-exact-08, + author = {Arno Eigenwillig and Michael Kerber}, + title = {Exact and Efficient 2D-Arrangements of Arbitrary Algebraic Curves}, + booktitle = {Proceedings of the Nineteenth Annual ACM-SIAM Symposium on Discrete Algorithms (SODA08)}, + year = 2008, + note = {122--131} +} + +@InProceedings{ekw-fast-07, + author = {Arno Eigenwillig and Michael Kerber and Nicola Wolpert}, + title = {Fast and Exact Geometric Analysis of Real Algebraic Plane Curves}, + booktitle = {Proocedings of the 2007 International Symposium on Symbolic and Algebraic Computation (ISSAC 2007)}, + year = 2007, + editor = {Christopher W. Brown}, + pages = {151--158} +} + + +@PHDTHESIS{kerber-phd-09, +AUTHOR = "Kerber, Michael", +TITLE = "Geometric Algorithms for Algebraic Curves and Surfaces" , +SCHOOL = "Universit{\"a}t des Saarlandes", +YEAR = 2009, +ADDRESS = "Saarbr{\"u}cken, Germany" +} + +@InCollection{grlr-sturm-habicht-98, + author = {L.~Gonzalez-Vega and T.~Recio and H.~Lombardi and M.-F.~Roy}, + title = {Sturm-Habicht Sequences, Determinants and Real Roots of Univariate Polynomials}, + booktitle = {Quantifier Elimination and Cylindrical Algebraic Decomposition}, + pages = {300--316}, + publisher = {Springer}, + year = 1998, + editor = {B.F.~Caviness and J.R.~Johnson}, + series = {Texts and Monographs in Symbolic Computation} +} + +% ---------------------------------------------------------------------------- +% END OF BIBFILE +% ---------------------------------------------------------------------------- diff --git a/Documentation/doc/footer.html b/Documentation/doc/footer.html new file mode 100644 index 00000000000..80222ad953a --- /dev/null +++ b/Documentation/doc/footer.html @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/Documentation/doc/header.html b/Documentation/doc/header.html new file mode 100644 index 00000000000..4acc4f413be --- /dev/null +++ b/Documentation/doc/header.html @@ -0,0 +1,54 @@ + + + + + +$projectname: $title +$title + + + + +$treeview +$search +$mathjax + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + +
+
$projectname +  $projectnumber +
+
$projectbrief
+
+
$projectbrief
+
$searchbox
+
+ + diff --git a/Documentation/doc/main.txt b/Documentation/doc/main.txt new file mode 100644 index 00000000000..e727283d2b0 --- /dev/null +++ b/Documentation/doc/main.txt @@ -0,0 +1,61 @@ +/*! + +\mainpage CGAL + +The goal of the CGAL Open Source Project is to provide easy access to +efficient and reliable geometric algorithms in the form of a C++ +library. CGAL is used in various areas needing geometric computation, +such as: computer graphics, scientific visualization, computer aided +design and modeling, geographic information systems, molecular +biology, medical imaging, robotics and motion planning, mesh +generation, numerical methods... More on the projects using CGAL web +page. + +The Computational Geometry Algorithms Library (CGAL), offers data +structures and algorithms like triangulations (2D constrained +triangulations and Delaunay triangulations in 2D and 3D, periodic +triangulations in 3D), Voronoi diagrams (for 2D and 3D points, 2D +additively weighted Voronoi diagrams, and segment Voronoi diagrams), +polygons (Boolean operations, offsets, straight skeleton), polyhedra +(Boolean operations), arrangements of curves and their applications +(2D and 3D envelopes, Minkowski sums), mesh generation (2D Delaunay +mesh generation and 3D surface and volume mesh generation, skin +surfaces), geometry processing (surface mesh simplification, +subdivision and parameterization, as well as estimation of local +differential properties, and approximation of ridges and umbilics), +alpha shapes, convex hull algorithms (in 2D, 3D and dD), search +structures (kd trees for nearest neighbor search, and range and +segment trees), interpolation (natural neighbor interpolation and +placement of streamlines), shape analysis, fitting, and distances +(smallest enclosing sphere of points or spheres, smallest enclosing +ellipsoid of points, principal component analysis), and kinetic data +structures. + +All these data structures and algorithms operate on geometric objects +like points and segments, and perform geometric tests on them. These +objects and predicates are regrouped in CGAL Kernels. + +Finally, the Support Library offers geometric object generators and +spatial sorting functions, as well as a matrix search framework and a +solver for linear and quadratic programs. It further offers interfaces +to third party software such as the GUI libraries Qt, Geomview, and +the Boost Graph Library. License + +CGAL is distributed under a dual-license scheme. CGAL can be used +together with Open Source software free of charge. Using CGAL in other +contexts can be done by obtaining a commercial license from +GeometryFactory. For more details see the License page. + +\page packages CGAL + +\tableofcontents + +\section general_introduction I General Introduction + +
    +
  1. \ref introduction
  2. +
  3. \ref preliminaries
  4. +
  5. \ref installation
  6. +
+ +*/ diff --git a/Documentation/doc/stylesheet.css b/Documentation/doc/stylesheet.css new file mode 100644 index 00000000000..5085deced02 --- /dev/null +++ b/Documentation/doc/stylesheet.css @@ -0,0 +1,1103 @@ +/* The standard CSS for doxygen */ + +body, table, div, p, dl { + font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; + font-size: 15px; + line-height: 1.3; +} + +/* @group Heading Levels */ + +h1 { + font-size: 150%; +} + +.title { + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2 { + font-size: 120%; +} + +h3 { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd, p.starttd { + margin-top: 2px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #FBFBE8; + border: 1px solid #ECEC91; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #B0B01E; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #CBCB23; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #EAEA89; + color: #ffffff; + border: 1px double #E6E66E; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +.fragment { + font-family: monospace, fixed; + font-size: 105%; +} + +pre.fragment { + border: 1px solid #F3F3B9; + background-color: #FEFEFB; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; +} + +div.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #FBFBE8; + font-weight: bold; + border: 1px solid #F3F3B9; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #FBFBE8; + border: 1px solid #F3F3B9; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #FBFBEA; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #FDFDF5; + border-left: 2px solid #EAEA89; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #ECEC91; +} + +th.dirtab { + background: #FBFBE8; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #D4D424; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #FDFDF8; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memItemLeft, .memItemRight, .memTemplParams { + border-top: 1px solid #F3F3B9; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #CBCB23; + white-space: nowrap; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #CBCB23; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #FBFBE8; + border: 1px solid #ECEC91; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #EDED97; + border-left: 1px solid #EDED97; + border-right: 1px solid #EDED97; + padding: 6px 0px 6px 0px; + color: #6C6C12; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #F9F9DD; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #EDED97; + border-left: 1px solid #EDED97; + border-right: 1px solid #EDED97; + padding: 6px 10px 2px 10px; + background-color: #FEFEFB; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #E1E156; + border-top:1px solid #B8B81F; + border-left:1px solid #B8B81F; + border-right:1px solid #F3F3B9; + border-bottom:1px solid #F3F3B9; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; +} + + + +/* @end */ + +/* these are for tree view when not used as main index */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #FDFDF5; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #B0B01E; +} + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #7B7B15; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #838316; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #A0A01B; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + width: 100%; + margin-bottom: 10px; + border: 1px solid #EDED97; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #EDED97; + border-bottom: 1px solid #EDED97; + vertical-align: top; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #EDED97; + width: 100%; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #F9F9DD; + font-size: 90%; + color: #6C6C12; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #EDED97; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + height:30px; + line-height:30px; + color:#E6E673; + border:solid 1px #F2F2B6; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#9C9C1B; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; +} + +.navpath li.navelem a:hover +{ + color:#DFDF4A; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#9C9C1B; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + margin-left: 5px; + font-size: 8pt; + padding-left: 5px; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #FDFDF8; + margin: 0px; + border-bottom: 1px solid #F3F3B9; +} + +div.headertitle +{ + padding: 5px 5px 5px 7px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #DBDB30; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #E8E87A; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#939319; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #FCFCF2; + border: 1px solid #F7F7D1; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #CBCB23; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } + pre.fragment + { + overflow: visible; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + } +} +