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/pagealloc.h -text
|
||||||
Algebraic_kernel_d/include/CGAL/RS/polynomial_1_constructors.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_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_io.h -text
|
||||||
Algebraic_kernel_d/include/CGAL/RS/polynomial_1_member.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_operators.h -text
|
||||||
Algebraic_kernel_d/include/CGAL/RS/polynomial_1_parser.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_1_utils.h -text
|
||||||
Algebraic_kernel_d/include/CGAL/RS/polynomial_converter.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/pp.h -text
|
||||||
Algebraic_kernel_d/include/CGAL/RS/primes.h -text
|
Algebraic_kernel_d/include/CGAL/RS/primes.h -text
|
||||||
Algebraic_kernel_d/include/CGAL/RS/refine_1.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.6.1 -text
|
||||||
Maintenance/public_release/announcement/CGAL-3.7 -text
|
Maintenance/public_release/announcement/CGAL-3.7 -text
|
||||||
Maintenance/public_release/announcement/CGAL-3.7-beta1 -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/announcement/CGAL-3.8-beta -text
|
||||||
Maintenance/public_release/scripts/precompiled_demos_zips -text
|
Maintenance/public_release/scripts/precompiled_demos_zips -text
|
||||||
Maintenance/public_release/scripts/prepare_release -text
|
Maintenance/public_release/scripts/prepare_release -text
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
#include <CGAL/Polynomial.h>
|
#include <CGAL/Polynomial.h>
|
||||||
#include <CGAL/Polynomial_traits_d.h>
|
#include <CGAL/Polynomial_traits_d.h>
|
||||||
#include <CGAL/Polynomial_type_generator.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>
|
template <class _C,class _G=CGAL::Rsgcd_1>
|
||||||
struct Algebraic_kernel_rs_1{
|
struct Algebraic_kernel_rs_1{
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,7 @@ class Ugcd:public Primes{
|
||||||
return dG;
|
return dG;
|
||||||
};
|
};
|
||||||
|
|
||||||
}; // class Primes
|
}; // class Ugcd
|
||||||
|
|
||||||
} // namespace RS_MGCD
|
} // namespace RS_MGCD
|
||||||
} // namespace CGAL
|
} // namespace CGAL
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,7 @@ the check fails, an error message similar to
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
%
|
%
|
||||||
is written to the standard error stream and the program is aborted. If
|
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}
|
\ccIndexSubitem{checks}{adding failure message to}
|
||||||
macros \ccc{CGAL_<check_type>_msg(<Cond>,<Msg>)} can be used. The text in
|
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.
|
\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
|
function should be the (uncapitalized) name of the
|
||||||
functor followed by the suffix \ccc{_object}.%
|
functor followed by the suffix \ccc{_object}.%
|
||||||
%\index{object functions@{\ccFont \_object} functions}
|
%\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}.
|
\ccc{Less_xy_2} functor is called \ccc{less_xy_2_object}.
|
||||||
\ccIndexSubitemEnd{naming scheme}{kernel traits}
|
\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
|
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
|
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
|
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|)
|
(\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
|
so the file can be located when seen out of context (\eg, in the documentation
|
||||||
or from the demos web page).
|
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}}
|
\section{Graphical debugging\label{sec:graphical_debugging}}
|
||||||
\ccIndexSubitemBegin{debugging}{graphical}
|
\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
|
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
|
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
|
(graphical) debugging tool. In many cases, the output of a geometric
|
||||||
|
|
@ -51,7 +51,7 @@ to develop
|
||||||
\ccIndexMainItemBegin{cross-checker}
|
\ccIndexMainItemBegin{cross-checker}
|
||||||
|
|
||||||
A cross-checker is a powerful means to allow for efficient
|
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
|
model of that concept \ccIndexMainItemDef{cross-checker} that is
|
||||||
constructed from another model or models (one of which is the one you
|
constructed from another model or models (one of which is the one you
|
||||||
wish to check). In order to implement the functionality required by
|
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}
|
\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
|
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
|
\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.
|
other is (presumably) a traits class that always gives the right answer.
|
||||||
|
|
@ -185,7 +185,7 @@ and similar problems:
|
||||||
instead.
|
instead.
|
||||||
\end{itemize}
|
\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.
|
execution.
|
||||||
\ccIndexSubitemEnd{debugging}{interactive}
|
\ccIndexSubitemEnd{debugging}{interactive}
|
||||||
\ccIndexSubitemEnd{handles}{and debugging}
|
\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
|
\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
|
(\eg, \texttt{Cartesian.h} or \texttt{Homogeneous.h}) to get all
|
||||||
kernel classes as well as the \texttt{basic.h} file. All example
|
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:
|
simply:
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
#include <CGAL/Cartesian.h>
|
#include <CGAL/Cartesian.h>
|
||||||
|
|
@ -150,7 +150,7 @@ here the better), you should do the following:
|
||||||
the image files should be as follows:
|
the image files should be as follows:
|
||||||
\centerline{\ccc{<program>_}\texttt{[big|small].[gif|jpg]}},
|
\centerline{\ccc{<program>_}\texttt{[big|small].[gif|jpg]}},
|
||||||
where \textit{$<$prog\_name$>$} is the name of the program from which
|
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}).
|
\ccc{alpha_shapes_2} or \ccc{hull_of_int_points_2}).
|
||||||
|
|
||||||
\item Create the \texttt{.exe} file for use under Windows (probably with the
|
\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
|
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}
|
in the classes derived from \ccc{Handle}. Moreover, since the \ccc{Handle}
|
||||||
calls the destructor for the representation through a \ccc{Rep*}, the
|
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
|
again, because the \ccc{Handle} class does not know the type of the
|
||||||
representation object.
|
representation object.
|
||||||
Making the actual type of the representation object a template parameter
|
Making the actual type of the representation object a template parameter
|
||||||
|
|
|
||||||
|
|
@ -9,28 +9,18 @@
|
||||||
% $Date$
|
% $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}}
|
\chapter{Recommended Reading\label{chap:info}}
|
||||||
}
|
|
||||||
|
|
||||||
The following books and papers are recommended as references:
|
The following books and papers are recommended as references:
|
||||||
|
|
||||||
\begin{description}
|
\begin{description}
|
||||||
\item[\cite{cgal:a-gps-98}] -- Mathew Austern's introduction to the \stl\
|
\item[\cite{cgal:a-gps-98}] -- Mathew Austern's introduction to the \stl\
|
||||||
using the concept/model style of presentation. Austern wrote the
|
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
|
\item[\cite{cgal:s-cpl-97}] -- Bjarne Stroustrup's introduction to
|
||||||
\CC\ and the \stl\ for those who already know some \CC.
|
\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
|
\item[\cite{cgal:ll-cp-98}] -- Stanley Lippman and Josee Lajoie's
|
||||||
\CC\ primer.
|
\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.
|
\item [\cite{hhkps-aegk-01}] -- The new \cgal\ kernel design paper.
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
\InternalOnly{
|
|
||||||
\input{Developers_manual/web_documents}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -48,13 +48,13 @@ In \cgal, we also define the concept of
|
||||||
which behaves roughly
|
which behaves roughly
|
||||||
like a pointer to an object without an increment or decrement operation.
|
like a pointer to an object without an increment or decrement operation.
|
||||||
More details about handles and their requirements can be found in
|
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
|
Section~\ref{sec:handle_vs_it_vs_circ} below discusses when handles
|
||||||
should be used in your code.
|
should be used in your code.
|
||||||
\ccIndexMainItemEnd{handles}
|
\ccIndexMainItemEnd{handles}
|
||||||
|
|
||||||
The concepts of iterators is relatively well described in textbooks such as
|
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 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
|
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.
|
{\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.
|
statements like \ccc{*it = ...} are likely to be illegal.
|
||||||
On the other hand, output iterators are designed for write operations,
|
On the other hand, output iterators are designed for write operations,
|
||||||
and the only legal use of the operator * of an output iterator
|
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\
|
The code of a standard copy function of the \stl\
|
||||||
provides an example of both of these operations:
|
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}
|
\ccIndexSubitem{\ccFont ostream_iterator}{extension}
|
||||||
\cgal\ provides extensions of the classes \ccc{istream_iterator}
|
\cgal\ provides extensions of the classes \ccc{istream_iterator}
|
||||||
and \ccc{ostream_iterator}. The class \ccc{CGAL::Ostream_iterator<T,Stream>}
|
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}
|
\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}.
|
of type \ccc{T} to objects of the class \ccc{Stream}.
|
||||||
For example, the following code fragment inserts a list of segments into
|
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
|
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
|
\item Take care that decrement of the past-the-end value
|
||||||
is, in accordance with the standard, a legal operation for a
|
is, in accordance with the standard, a legal operation for a
|
||||||
bidirectionnal iterator.
|
bidirectional iterator.
|
||||||
\ccIndexSubitem{iterators}{bidirectional}
|
\ccIndexSubitem{iterators}{bidirectional}
|
||||||
\ccIndexSubsubitem{iterators}{past-the-end value}{decrement of}
|
\ccIndexSubsubitem{iterators}{past-the-end value}{decrement of}
|
||||||
This can, for example, be used to get the last element 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}}
|
\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)
|
representation of objects (e.g. cartesian versus homogeneous)
|
||||||
or provide different functionalities (e.g. circular kernel).
|
or provide different functionalities (e.g. circular kernel).
|
||||||
When creating a new package, the authors have to specify clearly
|
When creating a new package, the authors have to specify clearly
|
||||||
|
|
|
||||||
|
|
@ -103,10 +103,12 @@ Requirements:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item all names defined by \cgal\ are in namespace \ccc{CGAL}
|
\item all names defined by \cgal\ are in namespace \ccc{CGAL}
|
||||||
(including namespaces nested in namespace \ccc{CGAL}).
|
(including namespaces nested in namespace \ccc{CGAL}).
|
||||||
\item qualify calls of \ccc{is_zero}, \ccc{is_one}, \ccc{is_negative},
|
\item explicitly prefix calls to template functions of CGAL
|
||||||
\ccc{is_positive}, \ccc{sign}, \ccc{abs}, \ccc{compare},
|
(such as \ccc{square}, \ccc{sign}, \ccc{abs}, \dots) by \ccc{CGAL::}
|
||||||
\ccc{square} by \texttt{CGAL\_NTS}.
|
to ensure the functions used are the one from CGAL and not one from another
|
||||||
\ccIndexSubitem{qualification}{\ccFont CGAL_NTS}%
|
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}
|
\end{itemize}
|
||||||
|
|
||||||
%% Recommendations:
|
%% 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,
|
\index{boost} \ccIndexMainItem{boost} During the past few years,
|
||||||
\cgal\ has moved towards using on concepts and ideas from the boost
|
\cgal\ has moved towards using on concepts and ideas from the boost
|
||||||
libraries, as well as providing interfaces towards 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.
|
maps library.
|
||||||
|
|
||||||
{\bf Complete and Minimal Interfaces.}
|
{\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}}
|
\section{Identifying compilers and architectures\label{sec:which_compiler}}
|
||||||
\ccIndexSubitem{compilers}{identifying}
|
\ccIndexSubitem{compilers}{identifying}
|
||||||
\ccIndexSubitem{macros}{for compiler identification}
|
\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
|
Every compiler defines some macros that allow you to identify it; see
|
||||||
the following table.
|
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
|
\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.
|
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
|
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}
|
\begin{description}
|
||||||
\item[{\tt CGAL\_CFG\_LONGNAME\_BUG}]~\\
|
\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.
|
inputs is small, but for other applications this fraction is large.
|
||||||
|
|
||||||
\cgal\ has a layered design. The correctness of some components depends
|
\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.
|
a component means behaving according to its (mathematical) specification.
|
||||||
Simply speaking, the source of the robustness problem is that the default
|
Simply speaking, the source of the robustness problem is that the default
|
||||||
hardware-supported arithmetic does not really fulfill the requirements of
|
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
|
numerical input data. \cgal\ also provides\footnote{at present, for the
|
||||||
dimension 2/3 Cartesian kernel(s) only.}
|
dimension 2/3 Cartesian kernel(s) only.}
|
||||||
% The homogeneous counterpart still needs revision.}
|
% 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
|
that (are still fairly generic and) guarantee exact predicate results and
|
||||||
much higher efficiency than exact number types like arbitrary precision
|
much higher efficiency than exact number types like arbitrary precision
|
||||||
integers or rationals. The efficiency relies on the use of speedy
|
integers or rationals. The efficiency relies on the use of speedy
|
||||||
|
|
|
||||||
|
|
@ -1333,7 +1333,7 @@ any problems.
|
||||||
crosslinked to the definition of that entity.
|
crosslinked to the definition of that entity.
|
||||||
|
|
||||||
\item[{\bf Solution:}] Sometimes, the preferred solution is to
|
\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
|
example, a traits class for a planar map should be called
|
||||||
\ccc{Planar_map_traits} rather than \ccc{Traits}. Another
|
\ccc{Planar_map_traits} rather than \ccc{Traits}. Another
|
||||||
possibility is to add the command \verb|\ccHtmlNoClassLinks| before
|
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
|
After each commit, an automatic mail is sent to the
|
||||||
\texttt{cgal-commits@lists.gforge.inria.fr} mailing-list which records
|
\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 log message as well as the URLs to the corresponding diffs within
|
||||||
the ViewCVS interface. Maintainers and developpers can subscribe
|
the ViewCVS interface. Maintainers and developers can subscribe
|
||||||
to it in order to check what gets commited to their packages.
|
to it in order to check what gets committed to their packages.
|
||||||
|
|
||||||
\index{SVN server|)}
|
\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
|
and in this way test with your new files without overwriting
|
||||||
the originals.
|
the originals.
|
||||||
|
|
||||||
\item Export additional environment variables by ading lines to the
|
\item Export additional environment variables by adding lines to the
|
||||||
\ccIndexSubitem{enviornment variables}{test suite}
|
\ccIndexSubitem{environment variables}{test suite}
|
||||||
\ccIndexSubitem{test suite}{environment variables}
|
\ccIndexSubitem{test suite}{environment variables}
|
||||||
{\tt run\_testsuite} script. As an example, it will be demonstrated
|
{\tt run\_testsuite} script. As an example, it will be demonstrated
|
||||||
how to export the {\tt LD\_LIBRARY\_PATH} by editing \texttt{run\_testsuite}.%
|
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\_OPTIONS} specifies the command line options to pass to the
|
||||||
{\tt ulimit} command, which is used to prevent the test-suite from using
|
{\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
|
For example, specifying {\tt ''-c 0 -t 10800 -v 2000000''} will prevent
|
||||||
the creation of dumped core files, will stop processes after 3 hours,
|
the creation of dumped core files, will stop processes after 3 hours,
|
||||||
and will kill them if they reach 2GB of memory.
|
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.
|
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.
|
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.
|
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
|
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 CXXFLAGS='-std=c++0x'
|
||||||
export WITH_CGALimageIO=OFF
|
export WITH_CGALimageIO=OFF
|
||||||
|
|
||||||
cmake -DWITH_CGALPDB=OFF -DCMAKE_BUILD_TYPE=Release ../../..
|
cmake -DWITH_CGALCORE=OFF -DCMAKE_BUILD_TYPE=Release ../../..
|
||||||
|
|
||||||
make
|
make
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
@ -735,7 +735,7 @@ QTDIR=/usr/local/qt2 PARASOFT=/usr/local/parasoft /usr/local/bin/zsh -c\"
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
{\tt CGAL\_URL} is the URL where internal releases are available.
|
{\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}
|
you may change either {\tt CGAL\_URL}, or {\tt LATEST\_LOCATION}
|
||||||
in {\tt .autocgalrc}.
|
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();
|
return A();
|
||||||
}
|
}
|
||||||
|
|
||||||
#include <algorithm>
|
#include <utility>
|
||||||
|
|
||||||
A&& f(A&& a)
|
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/Exact_predicates_inexact_constructions_kernel.h>
|
||||||
|
|
||||||
#include <CGAL/Mesh_triangulation_3.h>
|
#include <CGAL/Mesh_triangulation_3.h>
|
||||||
|
|
@ -42,3 +135,4 @@ int main()
|
||||||
std::ofstream medit_file("out.mesh");
|
std::ofstream medit_file("out.mesh");
|
||||||
c3t3.output_to_medit(medit_file);
|
c3t3.output_to_medit(medit_file);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -377,7 +377,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns past-the-end iterator on facet of the 1D complex
|
/// 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(),
|
return CGAL::filter_iterator(this->triangulation().finite_edges_end(),
|
||||||
Edge_iterator_not_in_complex(*this));
|
Edge_iterator_not_in_complex(*this));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue