mirror of https://github.com/CGAL/cgal
merge from trunk
This commit is contained in:
commit
b4bf7e3f58
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
#include <CGAL/Polynomial.h>
|
||||
#include <CGAL/Polynomial_traits_d.h>
|
||||
#include <CGAL/Polynomial_type_generator.h>
|
||||
#include <CGAL/RS/functors.h>
|
||||
#include <CGAL/RS/functors_1.h>
|
||||
|
||||
template <class _C,class _G=CGAL::Rsgcd_1>
|
||||
struct Algebraic_kernel_rs_1{
|
||||
|
|
|
|||
|
|
@ -189,7 +189,7 @@ class Ugcd:public Primes{
|
|||
return dG;
|
||||
};
|
||||
|
||||
}; // class Primes
|
||||
}; // class Ugcd
|
||||
|
||||
} // namespace RS_MGCD
|
||||
} // namespace CGAL
|
||||
|
|
|
|||
|
|
@ -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_<check_type>_msg(<Cond>,<Msg>)} can be used. The text in
|
||||
\ccc{<Msg>} is just appended to the failure message given above.
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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 <CGAL/Cartesian.h>
|
||||
|
|
@ -150,7 +150,7 @@ here the better), you should do the following:
|
|||
the image files should be as follows:
|
||||
\centerline{\ccc{<program>_}\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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -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<T,Stream>}
|
||||
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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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.}
|
||||
|
|
|
|||
|
|
@ -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}]~\\
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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|)}
|
||||
|
|
|
|||
|
|
@ -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}.%
|
||||
|
|
|
|||
|
|
@ -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=<some compiler not detected by cmake>
|
|||
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}.
|
||||
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
@ -39,7 +39,7 @@ A f()
|
|||
return A();
|
||||
}
|
||||
|
||||
#include <algorithm>
|
||||
#include <utility>
|
||||
|
||||
A&& f(A&& a)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
|
|
@ -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(){}
|
||||
|
|
@ -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/
|
||||
|
||||
|
|
@ -1,3 +1,96 @@
|
|||
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
#include <CGAL/Delaunay_triangulation_3.h>
|
||||
#include <CGAL/Triangulation_vertex_base_with_info_3.h>
|
||||
#include <CGAL/Mesh_3/Robust_intersection_traits_3.h>
|
||||
#include <CGAL/Mesh_triangulation_3.h>
|
||||
#include <CGAL/Mesh_complex_3_in_triangulation_3.h>
|
||||
#include <CGAL/Mesh_criteria_3.h>
|
||||
#include <CGAL/Polyhedral_mesh_domain_3.h>
|
||||
#include <CGAL/make_mesh_3.h>
|
||||
#include <CGAL/refine_mesh_3.h>
|
||||
#include <CGAL/IO/Polyhedron_iostream.h>
|
||||
#include <CGAL/Mesh_domain_with_polyline_features_3.h>
|
||||
|
||||
typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
|
||||
typedef CGAL::Mesh_3::Robust_intersection_traits_3<K> Geom_traits;
|
||||
typedef Geom_traits::Point_3 Point_3;
|
||||
typedef CGAL::Polyhedron_3<Geom_traits> Polyhedron;
|
||||
typedef CGAL::Mesh_domain_with_polyline_features_3<
|
||||
CGAL::Polyhedral_mesh_domain_3<Polyhedron, Geom_traits> > MD_IntersectedLines;
|
||||
typedef CGAL::Mesh_triangulation_3<MD_IntersectedLines>::type Tr_MDI;
|
||||
typedef CGAL::Mesh_criteria_3<Tr_MDI> Mesh_criteria_MDI;
|
||||
typedef CGAL::Mesh_complex_3_in_triangulation_3<Tr_MDI> C3t3_MDI;
|
||||
typedef C3t3_MDI::Facets_in_complex_iterator Facet_Iter_inComplex;
|
||||
typedef std::vector<Point_3> InterPolyline;
|
||||
typedef std::list<InterPolyline> 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<Polyhedron*> 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<C3t3_MDI>(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 <CGAL/Exact_predicates_inexact_constructions_kernel.h>
|
||||
|
||||
#include <CGAL/Mesh_triangulation_3.h>
|
||||
|
|
@ -42,3 +135,4 @@ int main()
|
|||
std::ofstream medit_file("out.mesh");
|
||||
c3t3.output_to_medit(medit_file);
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
Loading…
Reference in New Issue