diff --git a/Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp b/Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp index 163125c0e3df..c232a671542b 100644 --- a/Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp +++ b/Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp @@ -5,7 +5,7 @@ #include -#include +#include #include #include diff --git a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_dual.cpp b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_dual.cpp index 1915f8a1a235..98c2c4b1526b 100644 --- a/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_dual.cpp +++ b/Arrangement_on_surface_2/test/Arrangement_on_surface_2/test_dual.cpp @@ -5,7 +5,7 @@ #include #include -#include +#include #include diff --git a/BGL/examples/BGL_arrangement_2/primal.cpp b/BGL/examples/BGL_arrangement_2/primal.cpp index 62d684e0c426..e5f954dfdad3 100644 --- a/BGL/examples/BGL_arrangement_2/primal.cpp +++ b/BGL/examples/BGL_arrangement_2/primal.cpp @@ -8,7 +8,7 @@ #include #include -#include +#include #include diff --git a/BGL/examples/BGL_triangulation_2/dijkstra.cpp b/BGL/examples/BGL_triangulation_2/dijkstra.cpp index 1e63fc8810f1..f0bf554b69d2 100644 --- a/BGL/examples/BGL_triangulation_2/dijkstra.cpp +++ b/BGL/examples/BGL_triangulation_2/dijkstra.cpp @@ -1,7 +1,7 @@ #include #include -#include +#include #include diff --git a/BGL/examples/BGL_triangulation_2/dijkstra_with_internal_properties.cpp b/BGL/examples/BGL_triangulation_2/dijkstra_with_internal_properties.cpp index b1bc089d216e..bcd9548338fb 100644 --- a/BGL/examples/BGL_triangulation_2/dijkstra_with_internal_properties.cpp +++ b/BGL/examples/BGL_triangulation_2/dijkstra_with_internal_properties.cpp @@ -4,7 +4,7 @@ #include #include -#include +#include #include diff --git a/BGL/include/CGAL/boost/graph/dijkstra_shortest_paths.h b/BGL/include/CGAL/boost/graph/dijkstra_shortest_paths.h deleted file mode 100644 index a8563023229b..000000000000 --- a/BGL/include/CGAL/boost/graph/dijkstra_shortest_paths.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (c) 2014 GeometryFactory (France). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Sebastien Loriot - - -#ifndef CGAL_BOOST_GRAPH_DIJKSTRA_SHORTEST_PATHS_H -#define CGAL_BOOST_GRAPH_DIJKSTRA_SHORTEST_PATHS_H - -// This will push/pop a VC++ warning -#include - -#if defined(BOOST_MSVC) -# pragma warning(push) -# pragma warning(disable:4172) // Address warning inside boost named parameters -#endif - -#include - -#if defined(BOOST_MSVC) -# pragma warning(pop) -#endif - -#endif // CGAL_BOOST_GRAPH_DIJKSTRA_SHORTEST_PATHS_H diff --git a/Cartesian_kernel/include/CGAL/predicates/kernel_ftC3.h b/Cartesian_kernel/include/CGAL/predicates/kernel_ftC3.h index 5d210da549dc..86bf5f74bd23 100644 --- a/Cartesian_kernel/include/CGAL/predicates/kernel_ftC3.h +++ b/Cartesian_kernel/include/CGAL/predicates/kernel_ftC3.h @@ -102,12 +102,14 @@ collinearC3(const FT &px, const FT &py, const FT &pz, FT dqx = qx-rx; FT dpy = py-ry; FT dqy = qy-ry; - if (sign_of_determinant(dpx, dqx, dpy, dqy) != ZERO) + + auto is_zero = sign_of_determinant(dpx, dqx, dpy, dqy) == ZERO; + if (certainly_not(is_zero)) return false; FT dpz = pz-rz; FT dqz = qz-rz; - return CGAL_AND( sign_of_determinant(dpx, dqx, dpz, dqz) == ZERO , - sign_of_determinant(dpy, dqy, dpz, dqz) == ZERO ); + return is_zero & CGAL_AND( sign_of_determinant(dpx, dqx, dpz, dqz) == ZERO , + sign_of_determinant(dpy, dqy, dpz, dqz) == ZERO ); } template < class FT > diff --git a/Documentation/doc/CMakeLists.txt b/Documentation/doc/CMakeLists.txt index 481b1792c4fd..0e7ddd3b95af 100644 --- a/Documentation/doc/CMakeLists.txt +++ b/Documentation/doc/CMakeLists.txt @@ -263,7 +263,7 @@ set(CGAL_DOC_DXY_DIR "${CMAKE_BINARY_DIR}/doc_dxy") file(MAKE_DIRECTORY "${CGAL_DOC_DXY_DIR}") #Setting the resource directory depending on the version of doxygen -set(CGAL_DOC_RESOURCE_DIR_DEFAULT "${CMAKE_CURRENT_LIST_DIR}/resources/1.9.6") +set(CGAL_DOC_RESOURCE_DIR_DEFAULT "${CMAKE_CURRENT_LIST_DIR}/resources/1.10.0") # first look if resources for the specific doxygen version is available, fallback # on the default otherwise diff --git a/Documentation/doc/biblio/cgal_manual.bib b/Documentation/doc/biblio/cgal_manual.bib index ce72340b8f58..e16202c69ddf 100644 --- a/Documentation/doc/biblio/cgal_manual.bib +++ b/Documentation/doc/biblio/cgal_manual.bib @@ -1341,6 +1341,29 @@ @article{cgal:lm-clscm-12 year = {2012}, } +@article{cgal:lrtc-iccmps-20, + author = {Jacques-Olivier Lachaud and Pascal Romon and Boris Thibert and David Coeurjolly}, + journal = {Computer Graphics Forum (Proceedings of Symposium on Geometry Processing)}, + number = {5}, + title = {Interpolated Corrected Curvature Measures for Polygonal Surfaces}, + volume = {39}, + month = aug, + year = {2020}, + url = {https://doi.org/10.1111/cgf.14067}, + doi = {10.1111/cgf.14067} +} + +@article{cgal:lrt-ccm-22, + author = {Jacques-Olivier Lachaud and Pascal Romon and Boris Thibert}, + journal = {Discrete & Computational Geometry}, + title = {Corrected Curvature Measures}, + volume = {68}, + pages = {477-524}, + month = jul, + year = {2022}, + url = {https://doi.org/10.1007/s00454-022-00399-4} +} + @inproceedings{ cgal:lt-fmeps-98, author = "Peter Lindstrom and Greg Turk", title = "Fast and memory efficient polygonal simplification", @@ -3083,6 +3106,16 @@ @article{ecvp-bhhhk-14 bibsource = {dblp computer science bibliography, https://dblp.org/} } +@inproceedings {dunyach2013curvRemesh, + booktitle = {Eurographics 2013 - Short Papers}, + title = {{Adaptive Remeshing for Real-Time Mesh Deformation}}, + author = {Dunyach, Marion and Vanderhaeghe, David and Barthe, Loïc and Botsch, Mario}, + year = {2013}, + publisher = {The Eurographics Association}, + ISSN = {1017-4656}, + DOI = {10.2312/conf/EG2013/short/029-032} +} + @book{botsch2010PMP, title={Polygon mesh processing}, author={M. Botsch and L. Kobbelt and M. Pauly and P. Alliez and B. L{\'e}vy}, diff --git a/Documentation/doc/resources/1.10.0/BaseDoxyfile.in b/Documentation/doc/resources/1.10.0/BaseDoxyfile.in new file mode 100644 index 000000000000..4818c4493363 --- /dev/null +++ b/Documentation/doc/resources/1.10.0/BaseDoxyfile.in @@ -0,0 +1,822 @@ +# Doxyfile 1.10.0 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# Only the settings that are not the default ones are kept in this file + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = NO + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:^^" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) + +ALIASES = "cgal=%CGAL" \ + "protocgal=C++gal" \ + "plageo=Plageo" \ + "stl=STL" \ + "gmp=GMP" \ + "gmpxx=GMPXX" \ + "iso=ISO" \ + "lisp=Lisp" \ + "ieee=IEEE" \ + "ascii=ASCII" \ + "exacus=Exacus" \ + "mpir=MPIR" \ + "mpfr=MPFR" \ + "leda=LEDA" \ + "gcc=GCC" \ + "dcel=DCEL" \ + "bgl=BGL" \ + "boost=Boost" \ + "gnu=GNU" \ + "ms=MS" \ + "qt=Qt" \ + "qt5=Qt5" \ + "eigen=Eigen" \ + "opengr=OpenGR" \ + "libpointmatcher=libpointmatcher" \ + "core=Core" \ + "mpfi=MPFI" \ + "ntl=NTL" \ + "pdb=PDB" \ + "esbtl=ESBTL" \ + "tbb=TBB" \ + "laslib=LASlib" \ + "opencv=OpenCV" \ + "tensorflow=TensorFlow" \ + "metis=METIS" \ + "zlib=zlib" \ + "ceres=Ceres" \ + "glpk=GLPK" \ + "scip=SCIP" \ + "osqp=OSQP" \ + "rs=RS" \ + "rs3=RS3" \ + "unix=Unix" \ + "api=API" \ + "vtk=VTK" \ + "visualstudio=Visual Studio" \ + "taucs=TAUCS" \ + "lapack=LAPACK" \ + "blas=BLAS" \ + "opennl=OpenNL" \ + "cpp=C++" \ + "cpp11=C++11" \ + "CC=C++" \ + "cgalExample{1}=
File \ref \1 \include \1" \ + "cgalFigureAnchor{1}=\anchor fig__\1" \ + "cgalFigureRef{1}=\ref fig__\1" \ + "cgalFigureBegin{2}=\anchor fig__\1 ^^ \image html \2 ^^ \image latex \2 \"\" width=15cm ^^ \htmlonly[block]
\endhtmlonly ^^ \ref fig__\1" \ + "cgalFigureBegin{3}=\anchor fig__\1 ^^
\image html \2 ^^ \image latex \2 \"\" width=7.5cm ^^ \image html \3 ^^ \image latex \3 \"\" width=7.5cm ^^
\htmlonly[block]
\endhtmlonly ^^ \ref fig__\1" \ + "cgalFigureBegin{4}=\anchor fig__\1 ^^
\image html \2 ^^ \image latex \2 \"\" width=5cm ^^ \image html \3 ^^ \image latex \3 \"\" width=5cm ^^ \image html \4 ^^ \image latex \4 \"\" width=5cm ^^
\htmlonly[block]
\endhtmlonly ^^ \ref fig__\1" \ + "cgalFigureBegin{5}=\anchor fig__\1 ^^
\image html \2 ^^ \image latex \2 \"\" width=3.75cm ^^ \image html \3 ^^ \image latex \3 \"\" width=3.75cm ^^ \image html \4 ^^ \image latex \4 \"\" width=3.75cm ^^ \image html \5 ^^ \image latex \5 \"\" width=3.75cm ^^
\htmlonly[block]
\endhtmlonly ^^ \ref fig__\1" \ + "cgalFigureBegin{6}=\anchor fig__\1 ^^
\image html \2 ^^ \image latex \2 \"\" width=3cm ^^ \image html \3 ^^ \image latex \3 \"\" width=3cm ^^ \image html \4 ^^ \image latex \4 \"\" width=3cm ^^ \image html \5 ^^ \image latex \5 \"\" width=3cm ^^ \image html \6 ^^ \image latex \6 \"\" width=3cm ^^
\htmlonly[block]
\endhtmlonly ^^ \ref fig__\1" \ + "cgalFigureBegin{7}=\anchor fig__\1 ^^
\image html \2 ^^ \image latex \2 \"\" width=2.5cm ^^ \image html \3 ^^ \image latex \3 \"\" width=2.5cm ^^ \image html \4 ^^ \image latex \4 \"\" width=2.5cm ^^ \image html \5 ^^ \image latex \5 \"\" width=2.5cm ^^ \image html \6 ^^ \image latex \6 \"\" width=2.5cm ^^ \image html \7 ^^ \image latex \7 \"\" width=2.5cm ^^
\htmlonly[block]
\endhtmlonly ^^ \ref fig__\1" \ + "cgalFigureBegin{8}=\anchor fig__\1 ^^
\image html \2 ^^ \image latex \2 \"\" width=2.1cm ^^ \image html \3 ^^ \image latex \3 \"\" width=2.1cm ^^ \image html \4 ^^ \image latex \4 \"\" width=2.1cm ^^ \image html \5 ^^ \image latex \5 \"\" width=2.1cm ^^ \image html \6 ^^ \image latex \6 \"\" width=2.1cm ^^ \image html \7 ^^ \image latex \7 \"\" width=2.1cm ^^ \image html \8 ^^ \image latex \8 \"\" width=2.1cm ^^
\htmlonly[block]
\endhtmlonly ^^ \ref fig__\1" \ + "cgalFigureBegin{9}=\anchor fig__\1 ^^
\image html \2 ^^ \image latex \2 \"\" width=1.9cm ^^ \image html \3 ^^ \image latex \3 \"\" width=1.9cm ^^ \image html \4 ^^ \image latex \4 \"\" width=1.9cm ^^ \image html \5 ^^ \image latex \5 \"\" width=1.9cm ^^ \image html \6 ^^ \image latex \6 \"\" width=1.9cm ^^ \image html \7 ^^ \image latex \7 \"\" width=1.9cm ^^ \image html \8 ^^ \image latex \8 \"\" width=1.9cm ^^ \image html \9 ^^ \image latex \9 \"\" width=1.9cm ^^
\htmlonly[block]
\endhtmlonly ^^ \ref fig__\1" \ + "cgalFigureBegin{10}=\anchor fig__\1 ^^
\image html \2 ^^ \image latex \2 \"\" width=1.6cm ^^ \image html \3 ^^ \image latex \3 \"\" width=1.6cm ^^ \image html \4 ^^ \image latex \4 \"\" width=1.6cm ^^ \image html \5 ^^ \image latex \5 \"\" width=1.6cm ^^ \image html \6 ^^ \image latex \6 \"\" width=1.6cm ^^ \image html \7 ^^ \image latex \7 \"\" width=1.6cm ^^ \image html \8 ^^ \image latex \8 \"\" width=1.6cm ^^ \image html \9 ^^ \image latex \9 \"\" width=1.6cm ^^ \image html \10 ^^ \image latex \10 \"\" width=1.6cm ^^
\htmlonly[block]
\endhtmlonly ^^ \ref fig__\1" \ + "cgalFigureEnd=\htmlonly[block]
\endhtmlonly
" \ + "cgalFigureCaptionBegin{1}=\htmlonly[block]
\endhtmlonly \ref fig__\1" \ + "cgalFigureCaptionEnd=\htmlonly[block]
\endhtmlonly
" \ + "cgalConcept=\details
^^ \brief" \ + "cgalConceptNamespace=\details
^^ \brief" \ + "cgalRefines=Refines" \ + "cgalRefines{1}=
@cgalRefines
@c \1
" \ + "cgalRefines{2}=
@cgalRefines
@c \1
@c \2
" \ + "cgalRefines{3}=
@cgalRefines
@c \1
@c \2
@c \3
" \ + "cgalRefines{4}=
@cgalRefines
@c \1
@c \2
@c \3
@c \4
" \ + "cgalRefines{5}=
@cgalRefines
@c \1
@c \2
@c \3
@c \4
@c \5
" \ + "cgalRefinesBare{1}=
@cgalRefines
\1
" \ + "cgalRefinesBare{2}=
@cgalRefines
@c \1
\2
" \ + "cgalModelsHeader=Is model of" \ + "cgalModels{1}=
@cgalModelsHeader
@c \1
" \ + "cgalModels{2}=
@cgalModelsHeader
@c \1
@c \2
" \ + "cgalModels{3}=
@cgalModelsHeader
@c \1
@c \2
@c \3
" \ + "cgalModels{4}=
@cgalModelsHeader
@c \1
@c \2
@c \3
@c \4
" \ + "cgalModels{5}=
@cgalModelsHeader
@c \1
@c \2
@c \3
@c \4
@c \5
" \ + "cgalModels{6}=
@cgalModelsHeader
@c \1
@c \2
@c \3
@c \4
@c \5
@c \6
" \ + "cgalModelsBareBegin=
@cgalModelsHeader
" \ + "cgalModelsBareEnd=
" \ + "cgalModelsBare{1}=
\1
" \ + "cgalGeneralizes=\xrefitem generalizes \"Generalizes\" \"Generalization Relationships\"" \ + "cgalHasModelsHeader=Has models" \ + "cgalHasModelsBegin=
@cgalHasModelsHeader
" \ + "cgalHasModels{1}=
`\1`
" \ + "cgalHasModelsBare{1}=
\1
" \ + "cgalHasModelsEnd=
" \ + "cgalDebugBegin=\htmlonly[block]
Debugging Support
\endhtmlonly ^^" \ + "cgalDebugEnd=\htmlonly[block]
\endhtmlonly" \ + "cgalDebugFunction=This is a function for debugging purpose." \ + "cgalAdvancedBegin=^^ \htmlonly[block]
Advanced
\endhtmlonly ^^" \ + "cgalAdvancedEnd=\noop ^^ \htmlonly[block]
\endhtmlonly" \ + "cgalAdvancedFunction=This is an advanced function." \ + "cgalAdvancedClass=This is an advanced class." \ + "cgalAdvancedType=This is an advanced type." \ + "cgalAdvancedConcept=This is an advanced concept." \ + "cgalRequiresCPP11=\warning This function requires a C++11 compiler." \ + "cgalPkgPicture{1}=
^^ \image html \1 ^^
" \ + "cgalPkgSummaryBegin=
" \ + "cgalPkgSummaryEnd=
" \ + "cgalPkgShortInfoBegin=
" \ + "cgalPkgShortInfoEnd=
" \ + "cgalPkgAuthor{1}=
\1
" \ + "cgalPkgAuthors{1}=\cgalPkgAuthor{\1}" \ + "cgalPkgDesc{1}=
\1
" \ + "cgalPkgSince{1}=Introduced in: \cgal \1
" \ + "cgalPkgDependsOn{1}=Depends on: \1
" \ + "cgalPkgLicense{1}=License: \1
" \ + "cgalPkgDemo{2}=Windows Demo: \1
" \ + "cgalPkgDemo{4}=Windows Demos: \1, \3
" \ + "cgalPkgDemo{6}=Windows Demos: \1, \3, \5
" \ + "cgalPkgDescriptionEnd=" \ + "cgalModifBegin=\htmlonly
\endhtmlonly \xrefitem Modification \"Modifications\" \"MODIFICATIONS\"" \ + "cgalModifEnd=\htmlonly
\endhtmlonly \latexonly END MODIFICATIONS \endlatexonly" \ + "cgalPkgBib{1}=BibTeX: \1-${CGAL_RELEASE_YEAR_ID}
" \ + "cgalFootnote{1}=\1" \ + "cgalFootnoteCode{1}=\1" \ + "cgalAutoToc=\htmlonly[block]
\endhtmlonly" \ + "cgalTagTrue=\link CGAL::Tag_true `CGAL::Tag_true`\endlink" \ + "cgalTagFalse=\link CGAL::Tag_false `CGAL::Tag_false`\endlink" \ + "cgalHeading{1}= \1
" \ + "cgalClassifedRefPages=\htmlonly[block]

Classified Reference Pages

\endhtmlonly" \ + "cgalCRPSection{1}=

\1

" \ + "cgalCRPSubsection{1}=

\1

" \ + "cgalCite{1}=\cite \1" \ + "cgalPackageSection{2}=\htmlonly[block]
\endhtmlonly \section \1 \2 ^^ \htmlonly[block]
\endhtmlonly" \ + "cgalNamedParamsBegin=
Optional Named Parameters
" \ + "cgalNamedParamsBegin{1}=
\1
" \ + "cgalNamedParamsEnd=
" \ + "cgalParamNBegin{1}= \htmlonly[block]
\endhtmlonly
    " \ + "cgalParamDescription{1}=
  • \1
  • " \ + "cgalParamType{1}=
  • Type: \1
  • " \ + "cgalParamDefault{1}=
  • %Default: \1
  • " \ + "cgalParamExtra{1}=
  • Extra: \1
  • " \ + "cgalParamNEnd=
\htmlonly[block]
\endhtmlonly " \ + "cgalParamSectionBegin{1}=\cgalParamNBegin{\1}" \ + "cgalParamSectionEnd=\cgalParamNEnd" \ + "cgalParamPrecondition{1}=
  • Precondition: \1
  • " \ + "cgalBigO{1}=\f$O(\1)\f$" \ + "cgalBigOLarge{1}=\f$O\left(\1\right)\f$" \ + "cgalInclude{1}=`#include<\1>`" + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. + +EXTENSION_MAPPING = txt=C++ + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 0 + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = YES + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = NO + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = YES + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = YES + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = YES + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = NO + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = ${CGAL_DOC_RESOURCE_DIR}/DoxygenLayoutPackage.xml + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = ${CGAL_DOC_BIBLIO_DIR}/cgal_manual.bib \ + ${CGAL_DOC_BIBLIO_DIR}/geom.bib + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, +# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C +# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, +# *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.cpp \ + *.txt \ + *.md \ + *.h \ + *.hpp + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# ANamespace::AClass, ANamespace::*Test + +EXCLUDE_SYMBOLS = Tr \ + Vb \ + Cb \ + Fb \ + K \ + Traits \ + internal + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = *.cpp \ + *.h + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = YES + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = ${CGAL_DOC_HEADER_PACKAGE} + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = ${CGAL_DOC_RESOURCE_DIR}/footer.html + +# Doxygen stores a couple of settings persistently in the browser (via e.g. +# cookies). By default these settings apply to all HTML pages generated by +# doxygen across all projects. The HTML_PROJECT_COOKIE tag can be used to store +# the settings under a project specific key, such that the user preferences will +# be stored separately. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_PROJECT_COOKIE = CGAL + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = YES + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = svg + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = YES + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 +# This tag requires that the tag USE_MATHJAX is set to YES. + +${CGAL_DOC_MATHJAX_LOCATION_FULL_OPTION_LINE} + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see +# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = TeX/AMSmath \ + TeX/AMSsymbols + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = ${CGAL_DOC_RESOURCE_DIR}/CGAL_mathjax.js + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /