diff --git a/.gitattributes b/.gitattributes index 3c72084aaef..c70e4382f35 100644 --- a/.gitattributes +++ b/.gitattributes @@ -166,13 +166,13 @@ Algebraic_kernel_d/include/CGAL/RS/p.h -text Algebraic_kernel_d/include/CGAL/RS/pagealloc.h -text Algebraic_kernel_d/include/CGAL/RS/polynomial_1_constructors.h -text Algebraic_kernel_d/include/CGAL/RS/polynomial_1_eval.h -text +Algebraic_kernel_d/include/CGAL/RS/polynomial_1_functors.h -text Algebraic_kernel_d/include/CGAL/RS/polynomial_1_io.h -text Algebraic_kernel_d/include/CGAL/RS/polynomial_1_member.h -text Algebraic_kernel_d/include/CGAL/RS/polynomial_1_operators.h -text Algebraic_kernel_d/include/CGAL/RS/polynomial_1_parser.h -text Algebraic_kernel_d/include/CGAL/RS/polynomial_1_utils.h -text Algebraic_kernel_d/include/CGAL/RS/polynomial_converter.h -text -Algebraic_kernel_d/include/CGAL/RS/polynomial_functors.h -text Algebraic_kernel_d/include/CGAL/RS/pp.h -text Algebraic_kernel_d/include/CGAL/RS/primes.h -text Algebraic_kernel_d/include/CGAL/RS/refine_1.h -text @@ -1901,6 +1901,7 @@ Maintenance/public_release/announcement/CGAL-3.6-beta1 -text Maintenance/public_release/announcement/CGAL-3.6.1 -text Maintenance/public_release/announcement/CGAL-3.7 -text Maintenance/public_release/announcement/CGAL-3.7-beta1 -text +Maintenance/public_release/announcement/CGAL-3.8 -text Maintenance/public_release/announcement/CGAL-3.8-beta -text Maintenance/public_release/scripts/precompiled_demos_zips -text Maintenance/public_release/scripts/prepare_release -text diff --git a/Algebraic_kernel_d/include/CGAL/RS/Algebraic_kernel_rs_1.h b/Algebraic_kernel_d/include/CGAL/RS/Algebraic_kernel_rs_1.h index 3e74d1ea0f4..71a7aa02724 100644 --- a/Algebraic_kernel_d/include/CGAL/RS/Algebraic_kernel_rs_1.h +++ b/Algebraic_kernel_d/include/CGAL/RS/Algebraic_kernel_rs_1.h @@ -22,7 +22,7 @@ #include #include #include -#include +#include template struct Algebraic_kernel_rs_1{ diff --git a/Algebraic_kernel_d/include/CGAL/RS/functors.h b/Algebraic_kernel_d/include/CGAL/RS/functors_1.h similarity index 100% rename from Algebraic_kernel_d/include/CGAL/RS/functors.h rename to Algebraic_kernel_d/include/CGAL/RS/functors_1.h diff --git a/Algebraic_kernel_d/include/CGAL/RS/polynomial_functors.h b/Algebraic_kernel_d/include/CGAL/RS/polynomial_1_functors.h similarity index 100% rename from Algebraic_kernel_d/include/CGAL/RS/polynomial_functors.h rename to Algebraic_kernel_d/include/CGAL/RS/polynomial_1_functors.h diff --git a/Algebraic_kernel_d/include/CGAL/RS/ugcd.h b/Algebraic_kernel_d/include/CGAL/RS/ugcd.h index 1c7c9f01876..61f670c3c1c 100644 --- a/Algebraic_kernel_d/include/CGAL/RS/ugcd.h +++ b/Algebraic_kernel_d/include/CGAL/RS/ugcd.h @@ -189,7 +189,7 @@ class Ugcd:public Primes{ return dG; }; -}; // class Primes +}; // class Ugcd } // namespace RS_MGCD } // namespace CGAL diff --git a/Developers_manual/doc_tex/Developers_manual/checks.tex b/Developers_manual/doc_tex/Developers_manual/checks.tex index 2c2394b09d3..78e27249026 100644 --- a/Developers_manual/doc_tex/Developers_manual/checks.tex +++ b/Developers_manual/doc_tex/Developers_manual/checks.tex @@ -134,7 +134,7 @@ the check fails, an error message similar to \end{verbatim} % is written to the standard error stream and the program is aborted. If -an additional explanantion should be given to the user,% +an additional explanation should be given to the user,% \ccIndexSubitem{checks}{adding failure message to} macros \ccc{CGAL__msg(,)} can be used. The text in \ccc{} is just appended to the failure message given above. diff --git a/Developers_manual/doc_tex/Developers_manual/code_format.tex b/Developers_manual/doc_tex/Developers_manual/code_format.tex index de12b6dc15c..b4e271b89a2 100644 --- a/Developers_manual/doc_tex/Developers_manual/code_format.tex +++ b/Developers_manual/doc_tex/Developers_manual/code_format.tex @@ -241,7 +241,7 @@ function that returns an instance of this functor. The name of this function should be the (uncapitalized) name of the functor followed by the suffix \ccc{_object}.% %\index{object functions@{\ccFont \_object} functions} -For example, the function that retuns an instance of the +For example, the function that returns an instance of the \ccc{Less_xy_2} functor is called \ccc{less_xy_2_object}. \ccIndexSubitemEnd{naming scheme}{kernel traits} @@ -406,7 +406,7 @@ optional affiliation or e-mail address. For example and demo programs, the inclusion of the copyright notice is not necessary as this will get in the way if the program is included in the documentation. However, these files should always contain the name of -the file realtive to the \texttt{CGAL\_HOME} directory +the file relative to the \texttt{CGAL\_HOME} directory (\eg, \nonlinkedpath|examples/Convex_hull_3/convex_hull_3.cpp|) so the file can be located when seen out of context (\eg, in the documentation or from the demos web page). diff --git a/Developers_manual/doc_tex/Developers_manual/debugging.tex b/Developers_manual/doc_tex/Developers_manual/debugging.tex index 68f36f11dd9..b8246abb111 100644 --- a/Developers_manual/doc_tex/Developers_manual/debugging.tex +++ b/Developers_manual/doc_tex/Developers_manual/debugging.tex @@ -27,7 +27,7 @@ to do in order to evaluate handles and iterators during the debugging phase \section{Graphical debugging\label{sec:graphical_debugging}} \ccIndexSubitemBegin{debugging}{graphical} -\cgal\ packages usually provide a graphical demo that demostrates the +\cgal\ packages usually provide a graphical demo that demonstrates the functionality in the package. Many times this demo is simply a fancier version of a program that was used in the early stages of development as a (graphical) debugging tool. In many cases, the output of a geometric @@ -51,7 +51,7 @@ to develop \ccIndexMainItemBegin{cross-checker} A cross-checker is a powerful means to allow for efficient -maintainence of your code. A cross-checker for a given concept is a +maintenance of your code. A cross-checker for a given concept is a model of that concept \ccIndexMainItemDef{cross-checker} that is constructed from another model or models (one of which is the one you wish to check). In order to implement the functionality required by @@ -111,7 +111,7 @@ bool curve_is_vertical(const X_curve & cv) const } \end{verbatim} -Notice that the class \ccc{Binary_triats_checker} has template parameters +Notice that the class \ccc{Binary_traits_checker} has template parameters named \ccc{Traits1} and \ccc{Traits2}, and a third parameter named \ccc{Adapter}. One of the traits classes is the one to be tested and the other is (presumably) a traits class that always gives the right answer. @@ -185,7 +185,7 @@ and similar problems: instead. \end{itemize} -Note: You can also use watches to continously examine such values during +Note: You can also use watches to continuously examine such values during execution. \ccIndexSubitemEnd{debugging}{interactive} \ccIndexSubitemEnd{handles}{and debugging} diff --git a/Developers_manual/doc_tex/Developers_manual/examples_and_demos.tex b/Developers_manual/doc_tex/Developers_manual/examples_and_demos.tex index 2c9e173e4cf..f26245e699a 100644 --- a/Developers_manual/doc_tex/Developers_manual/examples_and_demos.tex +++ b/Developers_manual/doc_tex/Developers_manual/examples_and_demos.tex @@ -42,7 +42,7 @@ programs. In particular: \item As of release 2.3, you can include only the kernel include file (\eg, \texttt{Cartesian.h} or \texttt{Homogeneous.h}) to get all kernel classes as well as the \texttt{basic.h} file. All example - and demo programs should do this. For exmaple, you should have + and demo programs should do this. For example, you should have simply: \begin{verbatim} #include @@ -150,7 +150,7 @@ here the better), you should do the following: the image files should be as follows: \centerline{\ccc{_}\texttt{[big|small].[gif|jpg]}}, where \textit{$<$prog\_name$>$} is the name of the program from which - the screen shots were made (an nice menmonic name like + the screen shots were made (an nice mnemonic name like \ccc{alpha_shapes_2} or \ccc{hull_of_int_points_2}). \item Create the \texttt{.exe} file for use under Windows (probably with the diff --git a/Developers_manual/doc_tex/Developers_manual/handles.tex b/Developers_manual/doc_tex/Developers_manual/handles.tex index 7870e01497d..5afa2444ba1 100644 --- a/Developers_manual/doc_tex/Developers_manual/handles.tex +++ b/Developers_manual/doc_tex/Developers_manual/handles.tex @@ -191,7 +191,7 @@ know the type of the representation object. It maintains a \ccc{Rep*} pointer. Therefore, this pointer must be cast to a pointer to the actual type in the classes derived from \ccc{Handle}. Moreover, since the \ccc{Handle} calls the destructor for the representation through a \ccc{Rep*}, the -desctructor of \ccc{Rep} must be virtual. Finally, debugging is difficult, +destructor of \ccc{Rep} must be virtual. Finally, debugging is difficult, again, because the \ccc{Handle} class does not know the type of the representation object. Making the actual type of the representation object a template parameter diff --git a/Developers_manual/doc_tex/Developers_manual/information_sources.tex b/Developers_manual/doc_tex/Developers_manual/information_sources.tex index 14451ca9680..05058ea5e1b 100644 --- a/Developers_manual/doc_tex/Developers_manual/information_sources.tex +++ b/Developers_manual/doc_tex/Developers_manual/information_sources.tex @@ -9,28 +9,18 @@ % $Date$ % ============================================================================= -\InternalOnly{ -\chapter{Sources of Information\label{chap:info}} -\ccChapterRelease{Chapter Version: 1.0} -\ccChapterAuthor{Susan Hert ({\tt hert@mpi-sb.mpg.de})} - -\section{Recommended reading\label{sec:recommended_reading}} -} - -\ExternalOnly{ \chapter{Recommended Reading\label{chap:info}} -} The following books and papers are recommended as references: \begin{description} \item[\cite{cgal:a-gps-98}] -- Mathew Austern's introduction to the \stl\ using the concept/model style of presentation. Austern wrote the - WWW \stl\ documenataion at SGI. + WWW \stl\ documentation at SGI. \item[\cite{cgal:s-cpl-97}] -- Bjarne Stroustrup's introduction to \CC\ and the \stl\ for those who already know some \CC. - Stroustrup is the designer and original implementor of \CC. + Stroustrup is the designer and original implementer of \CC. \item[\cite{cgal:ll-cp-98}] -- Stanley Lippman and Josee Lajoie's \CC\ primer. @@ -44,7 +34,4 @@ The following books and papers are recommended as references: \item [\cite{hhkps-aegk-01}] -- The new \cgal\ kernel design paper. \end{description} -\InternalOnly{ -\input{Developers_manual/web_documents} -} - + \ No newline at end of file diff --git a/Developers_manual/doc_tex/Developers_manual/iterators_and_circulators.tex b/Developers_manual/doc_tex/Developers_manual/iterators_and_circulators.tex index 7c00ad6db58..9a5594e7ac1 100644 --- a/Developers_manual/doc_tex/Developers_manual/iterators_and_circulators.tex +++ b/Developers_manual/doc_tex/Developers_manual/iterators_and_circulators.tex @@ -48,13 +48,13 @@ In \cgal, we also define the concept of which behaves roughly like a pointer to an object without an increment or decrement operation. More details about handles and their requirements can be found in -the \ccAnchor{http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Circulator/Chapter_main.html}{chapter Circuators and Handles} of the Support Library part of \cgal\ manual. +the \ccAnchor{http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Circulator/Chapter_main.html}{chapter Circulators and Handles} of the Support Library part of \cgal\ manual. Section~\ref{sec:handle_vs_it_vs_circ} below discusses when handles should be used in your code. \ccIndexMainItemEnd{handles} The concepts of iterators is relatively well described in textbooks such as -Stroustrup's book ({\em The C++ Programming Langage} \cite{cgal:s-cpl-97}) +Stroustrup's book ({\em The C++ Programming Language} \cite{cgal:s-cpl-97}) and Austern's book ({\em Generic Programming and the \stl} \cite{cgal:a-gps-98}) and in chapter \ccAnchor{http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Circulator/Chapter_main.html}{Handles and Circulators} of the {\em Support Library} part of the \cgal\ manual. @@ -127,7 +127,7 @@ to get values from the input iterators, statements like \ccc{*it = ...} are likely to be illegal. On the other hand, output iterators are designed for write operations, and the only legal use of the operator * of an output iterator -\ccc{it} is in the assignement \ccc{ *it = ....}. +\ccc{it} is in the assignment \ccc{ *it = ....}. The code of a standard copy function of the \stl\ provides an example of both of these operations: @@ -186,9 +186,9 @@ and used to output values to the output stream to which it is bound. \ccIndexSubitem{\ccFont ostream_iterator}{extension} \cgal\ provides extensions of the classes \ccc{istream_iterator} and \ccc{ostream_iterator}. The class \ccc{CGAL::Ostream_iterator} -is an output iterator adaptator for the stream class \ccc{Stream} and value +is an output iterator adaptor for the stream class \ccc{Stream} and value \ccIndexSubitem{adaptor}{output iterator} -type \ccc{T}. It provides output iterators that can be used to ouput values +type \ccc{T}. It provides output iterators that can be used to output values of type \ccc{T} to objects of the class \ccc{Stream}. For example, the following code fragment inserts a list of segments into a window stream (\ie, it draws the segments in the window) using the @@ -473,7 +473,7 @@ Requirements: \item Take care that decrement of the past-the-end value is, in accordance with the standard, a legal operation for a - bidirectionnal iterator. + bidirectional iterator. \ccIndexSubitem{iterators}{bidirectional} \ccIndexSubsubitem{iterators}{past-the-end value}{decrement of} This can, for example, be used to get the last element of diff --git a/Developers_manual/doc_tex/Developers_manual/kernels.tex b/Developers_manual/doc_tex/Developers_manual/kernels.tex index 9f53c1aedd1..f5c87b0a09b 100644 --- a/Developers_manual/doc_tex/Developers_manual/kernels.tex +++ b/Developers_manual/doc_tex/Developers_manual/kernels.tex @@ -38,7 +38,7 @@ Section~\ref{sec:NewKernelTraits} below. \section{Different kernels\label{sec:different_kernels}} -\cgal\ provides different kernels, thay can differ by internal +\cgal\ provides different kernels, they can differ by internal representation of objects (e.g. cartesian versus homogeneous) or provide different functionalities (e.g. circular kernel). When creating a new package, the authors have to specify clearly diff --git a/Developers_manual/doc_tex/Developers_manual/namespaces.tex b/Developers_manual/doc_tex/Developers_manual/namespaces.tex index 3b404d0b9b7..fa5ff42c67b 100644 --- a/Developers_manual/doc_tex/Developers_manual/namespaces.tex +++ b/Developers_manual/doc_tex/Developers_manual/namespaces.tex @@ -103,10 +103,12 @@ Requirements: \begin{itemize} \item all names defined by \cgal\ are in namespace \ccc{CGAL} (including namespaces nested in namespace \ccc{CGAL}). -\item qualify calls of \ccc{is_zero}, \ccc{is_one}, \ccc{is_negative}, - \ccc{is_positive}, \ccc{sign}, \ccc{abs}, \ccc{compare}, - \ccc{square} by \texttt{CGAL\_NTS}. - \ccIndexSubitem{qualification}{\ccFont CGAL_NTS}% +\item explicitly prefix calls to template functions of CGAL +(such as \ccc{square}, \ccc{sign}, \ccc{abs}, \dots) by \ccc{CGAL::} +to ensure the functions used are the one from CGAL and not one from another +library. If you want to allow an optimized function from another library +to be used, then you should not qualify the call and document it explicitly + (if appropriate). \end{itemize} %% Recommendations: diff --git a/Developers_manual/doc_tex/Developers_manual/philosophy.tex b/Developers_manual/doc_tex/Developers_manual/philosophy.tex index dc623fd6feb..04be9cc1892 100644 --- a/Developers_manual/doc_tex/Developers_manual/philosophy.tex +++ b/Developers_manual/doc_tex/Developers_manual/philosophy.tex @@ -115,7 +115,7 @@ example is the use of container classes and algorithms from the \index{boost} \ccIndexMainItem{boost} During the past few years, \cgal\ has moved towards using on concepts and ideas from the boost libraries, as well as providing interfaces towards boost -libraries. These include the boost graph libary and the boost property +libraries. These include the boost graph library and the boost property maps library. {\bf Complete and Minimal Interfaces.} diff --git a/Developers_manual/doc_tex/Developers_manual/portability.tex b/Developers_manual/doc_tex/Developers_manual/portability.tex index b5eae8f4273..c5c25ad2d5b 100644 --- a/Developers_manual/doc_tex/Developers_manual/portability.tex +++ b/Developers_manual/doc_tex/Developers_manual/portability.tex @@ -104,7 +104,7 @@ piece of code that depends on whether you have \leda-4.0 or later. \section{Identifying compilers and architectures\label{sec:which_compiler}} \ccIndexSubitem{compilers}{identifying} \ccIndexSubitem{macros}{for compiler identification} -\ccIndexSubitem{flag}{for copmiler} +\ccIndexSubitem{flag}{for compiler} Every compiler defines some macros that allow you to identify it; see the following table. @@ -224,7 +224,7 @@ give an overview. See the section on \ccAnchor{http://www.cgal.org/Manual/doc_html/installation/Chapter_installation.html#Section_17}{troubleshooting} in the installation guide for more explanation of some of these problems and known workarounds. Be sure to have a look at \texttt{Installation/config/testfiles/} to have an -uptodate version of this list. +up-to-date version of this list. \begin{description} \item[{\tt CGAL\_CFG\_LONGNAME\_BUG}]~\\ diff --git a/Developers_manual/doc_tex/Developers_manual/robustness.tex b/Developers_manual/doc_tex/Developers_manual/robustness.tex index 2a21989cde6..ba1f59906c6 100644 --- a/Developers_manual/doc_tex/Developers_manual/robustness.tex +++ b/Developers_manual/doc_tex/Developers_manual/robustness.tex @@ -24,7 +24,7 @@ some applications the fraction of bad inputs compared to all possible inputs is small, but for other applications this fraction is large. \cgal\ has a layered design. The correctness of some components depends -on the correctness of the componenents that are used. Correctness of +on the correctness of the components that are used. Correctness of a component means behaving according to its (mathematical) specification. Simply speaking, the source of the robustness problem is that the default hardware-supported arithmetic does not really fulfill the requirements of @@ -83,7 +83,7 @@ computing the lexicographically smaller point for two given points. numerical input data. \cgal\ also provides\footnote{at present, for the dimension 2/3 Cartesian kernel(s) only.} % The homogeneous counterpart still needs revision.} -specialisation of the primitives +specialization of the primitives that (are still fairly generic and) guarantee exact predicate results and much higher efficiency than exact number types like arbitrary precision integers or rationals. The efficiency relies on the use of speedy diff --git a/Developers_manual/doc_tex/Developers_manual/specification.tex b/Developers_manual/doc_tex/Developers_manual/specification.tex index 609ce45e6bb..3240d4ecba4 100644 --- a/Developers_manual/doc_tex/Developers_manual/specification.tex +++ b/Developers_manual/doc_tex/Developers_manual/specification.tex @@ -1333,7 +1333,7 @@ any problems. crosslinked to the definition of that entity. \item[{\bf Solution:}] Sometimes, the preferred solution is to - chosse a better name for the entity under consideration. For + choose a better name for the entity under consideration. For example, a traits class for a planar map should be called \ccc{Planar_map_traits} rather than \ccc{Traits}. Another possibility is to add the command \verb|\ccHtmlNoClassLinks| before diff --git a/Developers_manual/doc_tex/Developers_manual/svn.tex b/Developers_manual/doc_tex/Developers_manual/svn.tex index cc581f54556..04816fc400b 100644 --- a/Developers_manual/doc_tex/Developers_manual/svn.tex +++ b/Developers_manual/doc_tex/Developers_manual/svn.tex @@ -166,7 +166,7 @@ Here are the access rules: After each commit, an automatic mail is sent to the \texttt{cgal-commits@lists.gforge.inria.fr} mailing-list which records the log message as well as the URLs to the corresponding diffs within -the ViewCVS interface. Maintainers and developpers can subscribe -to it in order to check what gets commited to their packages. +the ViewCVS interface. Maintainers and developers can subscribe +to it in order to check what gets committed to their packages. \index{SVN server|)} diff --git a/Developers_manual/doc_tex/Developers_manual/testing.tex b/Developers_manual/doc_tex/Developers_manual/testing.tex index b6fc6bafb51..8d838ab040f 100644 --- a/Developers_manual/doc_tex/Developers_manual/testing.tex +++ b/Developers_manual/doc_tex/Developers_manual/testing.tex @@ -261,8 +261,8 @@ ways you can customize this script to meet you needs: and in this way test with your new files without overwriting the originals. -\item Export additional environment variables by ading lines to the - \ccIndexSubitem{enviornment variables}{test suite} +\item Export additional environment variables by adding lines to the + \ccIndexSubitem{environment variables}{test suite} \ccIndexSubitem{test suite}{environment variables} {\tt run\_testsuite} script. As an example, it will be demonstrated how to export the {\tt LD\_LIBRARY\_PATH} by editing \texttt{run\_testsuite}.% diff --git a/Developers_manual/doc_tex/Developers_manual/tools.tex b/Developers_manual/doc_tex/Developers_manual/tools.tex index 88bea84f0f7..d36a2ca44ce 100644 --- a/Developers_manual/doc_tex/Developers_manual/tools.tex +++ b/Developers_manual/doc_tex/Developers_manual/tools.tex @@ -447,7 +447,7 @@ all CPU time for itself. The default value is {\tt ''-19''}. {\tt ULIMIT\_OPTIONS} specifies the command line options to pass to the {\tt ulimit} command, which is used to prevent the test-suite from using -various system ressources. It can be used to help killing looping programs. +various system resources. It can be used to help killing looping programs. For example, specifying {\tt ''-c 0 -t 10800 -v 2000000''} will prevent the creation of dumped core files, will stop processes after 3 hours, and will kill them if they reach 2GB of memory. @@ -509,7 +509,7 @@ use the -D option to define cmake variables and -G to define a generator if the default is not right for you. -The cmake variables {\tt WITH\_CGALCORE, WITH\_CGALimageIO, WITH\_CGALPDB and WITH\_CGALQt} +The cmake variables {\tt WITH\_CGALCORE, WITH\_CGALimageIO and WITH\_CGALQt} are used to enable or disable those \cgal\ components. These are all ON by default. You should you define them with OFF if any of those components do not work in your platform. For {\tt these and only these} cmake variables you can define them as environment variables @@ -572,7 +572,7 @@ export CXX= export CXXFLAGS='-std=c++0x' export WITH_CGALimageIO=OFF -cmake -DWITH_CGALPDB=OFF -DCMAKE_BUILD_TYPE=Release ../../.. +cmake -DWITH_CGALCORE=OFF -DCMAKE_BUILD_TYPE=Release ../../.. make \end{verbatim} @@ -735,7 +735,7 @@ QTDIR=/usr/local/qt2 PARASOFT=/usr/local/parasoft /usr/local/bin/zsh -c\" \end{verbatim} {\tt CGAL\_URL} is the URL where internal releases are available. -The {\tt LATEST} file is comming from the same location. If this will change, +The {\tt LATEST} file is coming from the same location. If this will change, you may change either {\tt CGAL\_URL}, or {\tt LATEST\_LOCATION} in {\tt .autocgalrc}. diff --git a/Developers_manual/doc_tex/Developers_manual/web_documents.tex b/Developers_manual/doc_tex/Developers_manual/web_documents.tex deleted file mode 100644 index 4c7cd74bf0b..00000000000 --- a/Developers_manual/doc_tex/Developers_manual/web_documents.tex +++ /dev/null @@ -1,77 +0,0 @@ - -\section{Web documents and pages\label{sec:web_pages}} - -Here we provide a list of the documents and web pages that contain -information you might find useful. Most of these documents -are protected by a password, which you can obtain by asking one of the -other developers. - -\begin{itemize} - \item \ccAnchor{http://www.cgal.org}{The CGAL home page} - \begin{ccTexOnly} - --- \path|http://www.cgal.org| - \end{ccTexOnly} - - \item - \ccAnchor{https://cgal.geometryfactory.com/CGAL/Members/wiki/Main_Page}{The - CGAL developers wiki} - \begin{ccTexOnly} - --- \path|https://cgal.geometryfactory.com/CGAL/Members/wiki/Main_Page| - \end{ccTexOnly} - - \item \ccAnchor{http://www.cgal.org/Manual/latest/doc_html/cgal_manual/contents.html}{Manuals of the latest public release} - \begin{ccTexOnly} - --- \path|http://www.cgal.org/Manual/latest/doc_html/cgal_manual/contents.html| - \end{ccTexOnly} - - \item \ccAnchor{https://cgal.geometryfactory.com/CGAL/Members/Manual_test/LAST/}{Manuals of the latest internal release} - \begin{ccTexOnly} - --- \path|https://cgal.geometryfactory.com/CGAL/Members/Manual_test/LAST/| - \end{ccTexOnly} - - \item \ccAnchor{http://www.cgal.org/Members/Manual_tools/}{The Manual Tools} - \begin{ccTexOnly} - --- \path|http://www.cgal.org/Members/Manual_tools| - \end{ccTexOnly} - - \item \ccAnchor{https://gforge.inria.fr/plugins/scmsvn/viewcvs.php/?root=cgal}{Browse SVN Repository} - \begin{ccTexOnly} - --- \path|https://gforge.inria.fr/plugins/scmsvn/viewcvs.php/?root=cgal| - \end{ccTexOnly} - - \item \ccAnchor{http://www.cgal.org/Members/svn_cgal/}{Documentation of CGAL SVN hosted by InriaGForge} - \begin{ccTexOnly} - --- \path|http://www.cgal.org/Members/svn_cgal/| - \end{ccTexOnly} - - \item \ccAnchor{http://cgal.geometryfactory.com/CGAL/Members/Releases/}{Internal release page} - \begin{ccTexOnly} - --- \path|http://cgal.geometryfactory.com/CGAL/Members/Releases/| - \end{ccTexOnly} - - \item \ccAnchor{http://cgal.geometryfactory.com/CGAL/Members/testsuite/}{Test suite results} - \begin{ccTexOnly} - --- \path|http://cgal.geometryfactory.com/CGAL/Members/testsuite/| - \end{ccTexOnly} - - \item \ccAnchor{https://lists-sop.inria.fr/sympa/arc/cgal-develop}{Archive of {\tt cgal-develop}} - \begin{ccTexOnly} - --- - \path|https://lists-sop.inria.fr/sympa/arc/cgal-develop| - \end{ccTexOnly} - - \item \ccAnchor{https://lists-sop.inria.fr/sympa/arc/cgal-discuss}{Archive of {\tt cgal-discuss-l}} - \begin{ccTexOnly} - --- - \path|https://lists-sop.inria.fr/sympa/arc/cgal-discuss| - \end{ccTexOnly} - - \item \ccAnchor{http://cgal-discuss.949826.n4.nabble.com/}{Archive of - {\tt cgal-discuss-l} through the Nabble interface} - \begin{ccTexOnly} - --- - \path|http://cgal-discuss.949826.n4.nabble.com/| - \end{ccTexOnly} - - -\end{itemize} diff --git a/Installation/config/testfiles/CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE.cpp b/Installation/config/testfiles/CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE.cpp index 339a6f72445..aa04fd12cdb 100644 --- a/Installation/config/testfiles/CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE.cpp +++ b/Installation/config/testfiles/CGAL_CFG_NO_CPP0X_RVALUE_REFERENCE.cpp @@ -39,7 +39,7 @@ A f() return A(); } -#include +#include A&& f(A&& a) { diff --git a/Installation/config/testfiles/CGAL_CFG_NO_CPP0X_STATIC_ASSERT.cpp b/Installation/config/testfiles/CGAL_CFG_NO_CPP0X_STATIC_ASSERT.cpp new file mode 100644 index 00000000000..0a0e1d1a352 --- /dev/null +++ b/Installation/config/testfiles/CGAL_CFG_NO_CPP0X_STATIC_ASSERT.cpp @@ -0,0 +1,25 @@ +// Copyright (c) 2011 INRIA Saclay (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org); you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; version 2.1 of the License. +// See the file LICENSE.LGPL distributed with CGAL. +// +// Licensees holding a valid commercial license may use this file in +// accordance with the commercial license agreement provided with the software. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +// +// $URL$ +// $Id$ +// +// Author(s) : Marc Glisse + +//| If a compiler does not support static_assert (from C++0x) +//| CGAL_CFG_NO_STATIC_ASSERT is set. + +int main(){ + static_assert(true,"Everything is fine"); +} diff --git a/Installation/config/testfiles/CGAL_CFG_TEMPLATE_IN_DEFAULT_PARAMETER_BUG.cpp b/Installation/config/testfiles/CGAL_CFG_TEMPLATE_IN_DEFAULT_PARAMETER_BUG.cpp new file mode 100644 index 00000000000..ce95a66a876 --- /dev/null +++ b/Installation/config/testfiles/CGAL_CFG_TEMPLATE_IN_DEFAULT_PARAMETER_BUG.cpp @@ -0,0 +1,29 @@ +// Copyright (c) 2011 INRIA Saclay (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org); you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; version 2.1 of the License. +// See the file LICENSE.LGPL distributed with CGAL. +// +// Licensees holding a valid commercial license may use this file in +// accordance with the commercial license agreement provided with the software. +// +// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +// +// $URL$ +// $Id$ +// +// Author(s) : Marc Glisse + +//| If a compiler wants us to remove the template keyword in default +//| parameters, CGAL_CFG_TEMPLATE_IN_DEFAULT_PARAMETER_BUG is set. +//| Bug found in sunCC 5.11. + +template < typename A, typename B, typename C = + typename A :: template T < B > :: type > +// here +struct S {}; + +int main(){} diff --git a/Maintenance/public_release/announcement/CGAL-3.8 b/Maintenance/public_release/announcement/CGAL-3.8 new file mode 100644 index 00000000000..b41556f6a44 --- /dev/null +++ b/Maintenance/public_release/announcement/CGAL-3.8 @@ -0,0 +1,69 @@ +Subject: CGAL 3.8 Released, Computational Geometry Algorithms Library +Body: + +The CGAL Open Source Project is pleased to announce the Release 3.8 +of CGAL, the Computational Geometry Algorithms Library. + +Besides fixes to existing packages major features where added +in the following packages. + + o 3D Mesh Generation + + This package now can handle sharp features: the 3D Mesh + generation package now offers the possibility to get in the + final mesh an accurate representation of 1-dimensional + sharp features present in the description of the input domain. + + o 2D and 3D Triangulations + + Add a way to efficiently insert a range of points with information + into a Delaunay and Regular triangulation. + + o 3D Alpha Shapes + + The new class Fixed_alpha_shape_3 provides a robust and + faster way to compute one alpha shape (with a fixed value of alpha). + + +See http://www.cgal.org/releases.html for a complete list of changes. + + +The CGAL project is a collaborative effort to develop a robust, +easy-to-use, and efficient C++ software library of geometric data +structures and algorithms, like +- triangulations (2D constrained triangulations and Delaunay + triangulations in 2D and 3D), +- Voronoi diagrams (for 2D and 3D points, 2D additively weighted + Voronoi diagrams, and segment Voronoi diagrams), +- Boolean operations on polygons and polyhedra, +- Regularized Boolean operations on polygons with curved arcs +- arrangements of curves, +- mesh algorithms (2D Delaunay mesh generation and 3D surface mesh + generation, surface mesh subdivision and parameterization), +- alpha shapes (in 2D and 3D), +- convex hull algorithms (in 2D, 3D and dD), +- operations on polygons (straight skeleton and offset polygon), +- search structures (kd trees for nearest neighbor search, and + range and segment trees), +- interpolation (natural neighbor interpolation and placement of + streamlines), +- optimization algorithms (smallest enclosing sphere of points or + spheres, smallest enclosing ellipsoid of points, principal + component analysis), +- kinetic data structures + + + + +Some modules are distributed under the terms of the LGPL Open Source +license (GNU Lesser General Public License v2.1). +Most modules are distributed under the terms of the QPL Open Source +license (Q Public License v1.0). +If your intended usage does not meet the criteria of the +aforementioned licenses, a commercial license can be purchased from +GeometryFactory (http://www.geometryfactory.com/). + + +For further information and for downloading the library and its +documentation, please visit the CGAL web site: http://www.cgal.org/ + diff --git a/Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_features.cpp b/Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_features.cpp index 5d30be19e2d..273629abc35 100644 --- a/Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_features.cpp +++ b/Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_features.cpp @@ -1,3 +1,96 @@ +#include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; + typedef CGAL::Mesh_3::Robust_intersection_traits_3 Geom_traits; + typedef Geom_traits::Point_3 Point_3; + typedef CGAL::Polyhedron_3 Polyhedron; + typedef CGAL::Mesh_domain_with_polyline_features_3< + CGAL::Polyhedral_mesh_domain_3 > MD_IntersectedLines; + typedef CGAL::Mesh_triangulation_3::type Tr_MDI; + typedef CGAL::Mesh_criteria_3 Mesh_criteria_MDI; + typedef CGAL::Mesh_complex_3_in_triangulation_3 C3t3_MDI; + typedef C3t3_MDI::Facets_in_complex_iterator Facet_Iter_inComplex; + typedef std::vector InterPolyline; + typedef std::list InterPolylines; +using namespace CGAL::parameters; + +int main() + { + +//constructing the bounding box by triangles +Polyhedron bounding_box; + //top face + bounding_box.make_triangle(Point_3(100,100,100), Point_3(0,100,100), Point_3(0,0,100)); + bounding_box.make_triangle(Point_3(100,100,100), Point_3(0,0,100), Point_3(100,0,100)); + //bottom face + bounding_box.make_triangle(Point_3(100,100,0), Point_3(100,0,0), Point_3(0,0,0)); + bounding_box.make_triangle(Point_3(100,100,0), Point_3(0,0,0), Point_3(0,100,0)); + //front face + bounding_box.make_triangle(Point_3(0,0,0), Point_3(100,0,100), Point_3(0,0,100)); + bounding_box.make_triangle(Point_3(0,0,0), Point_3(100,0,0), Point_3(100,0,100)); + //back face + bounding_box.make_triangle(Point_3(0,100,0), Point_3(0,100,100), Point_3(100,100,100)); + bounding_box.make_triangle(Point_3(100,100,100), Point_3(100,100,0), Point_3(0,100,0)); + //left face + bounding_box.make_triangle(Point_3(0,0,0), Point_3(0,0,100), Point_3(0,100,100)); + bounding_box.make_triangle(Point_3(0,0,0), Point_3(0,100,100), Point_3(0,100,0)); + //right face + bounding_box.make_triangle(Point_3(100,100,100), Point_3(100,0,0), Point_3(100,100,0)); + bounding_box.make_triangle(Point_3(100,100,100), Point_3(100,0,100), Point_3(100,0,0)); + +//constructing the input polyhedral face + std::vector AllSurfaces; + Polyhedron NewPoly_1; + NewPoly_1.make_triangle(Point_3(20,20,20), Point_3(25,20,20), Point_3(25,40,20)); + NewPoly_1.make_triangle(Point_3(20,20,20), Point_3(25,40,20), Point_3(20,40,20)); + AllSurfaces.push_back(&NewPoly_1); + Polyhedron NewPoly_2; + NewPoly_2.make_triangle(Point_3(25,40,20), Point_3(25,20,20), Point_3(60,20,20)); + NewPoly_2.make_triangle(Point_3(60,40,20), Point_3(25,40,20), Point_3(60,20,20)); + AllSurfaces.push_back(&NewPoly_2); + + std::ofstream file; + file.open("input_1.off"); + file << NewPoly_1; + file.close(); + file.open("input_2.off"); + file << NewPoly_2; + file.close(); + file.open("bbox.off"); + file << bounding_box; + file.close(); + +//constructing the line feature + InterPolylines interPolySet; + InterPolyline interLine; + interLine.push_back(Point_3(25,40,20)); + interLine.push_back(Point_3(25,20,20)); + interPolySet.push_back(interLine); + +//generating the mesh + MD_IntersectedLines domain(AllSurfaces.begin(), AllSurfaces.end(), bounding_box); + domain.add_features(interPolySet.begin(), interPolySet.end()); + Mesh_criteria_MDI criteria(edge_size = 5, facet_angle=20, cell_size=5, facet_topology = CGAL::FACET_VERTICES_ON_SURFACE); + C3t3_MDI c3t3 = CGAL::make_mesh_3(domain, criteria, no_exude(), no_perturb()); + + //output + std::ofstream medit_file("out_1.mesh"); + c3t3.output_to_medit(medit_file); + medit_file.close(); + } + +#if 0 #include #include @@ -42,3 +135,4 @@ int main() std::ofstream medit_file("out.mesh"); c3t3.output_to_medit(medit_file); } +#endif diff --git a/Mesh_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h b/Mesh_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h index 70bd5bf16df..3d2091c5813 100644 --- a/Mesh_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h +++ b/Mesh_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h @@ -377,7 +377,7 @@ public: } /// Returns past-the-end iterator on facet of the 1D complex - Edges_in_complex_iterator edges_in_complex_end() const + Edges_in_complex_iterator edges_in_complex_end(const Curve_segment_index& = Curve_segment_index()) const { return CGAL::filter_iterator(this->triangulation().finite_edges_end(), Edge_iterator_not_in_complex(*this));