mirror of https://github.com/CGAL/cgal
missing changes for Tds_3 done
This commit is contained in:
parent
ab21a74685
commit
93c8981c96
|
|
@ -1,9 +1,9 @@
|
|||
# Makefile for CGAL's Triangulation3 package.
|
||||
|
||||
Package=Triangulation3
|
||||
Package=Triangulation_3
|
||||
|
||||
TEXINPUTS=.:../../../examples:/0/prisme_util/latex:
|
||||
LATEX_CONV_INPUTS=.:../../../examples:/0/prisme/teillaud/CGAL/Triangulation3/examples
|
||||
LATEX_CONV_INPUTS=.:../../../examples:/0/prisme/teillaud/CGAL/Triangulation_3/examples
|
||||
|
||||
.PHONY: doc package test
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
.PHONY: dvi ps
|
||||
|
||||
ps: Triangulation3.ps
|
||||
ps: Triangulation_3.ps
|
||||
|
||||
Triangulation3.ps: wrapper.dvi
|
||||
dvips -o Triangulation3.ps wrapper.dvi
|
||||
Triangulation_3.ps: wrapper.dvi
|
||||
dvips -o Triangulation_3.ps wrapper.dvi
|
||||
|
||||
dvi: wrapper.dvi
|
||||
|
||||
|
|
|
|||
|
|
@ -295,11 +295,11 @@ data structure class is one of the template parameters of the
|
|||
geometric triangulation class. The user may choose to replace the
|
||||
\cgal\ triangulation data structure class by his own triangulation
|
||||
data structure. In this case, his class has to be a model of the
|
||||
concept described in \ccRefPage{Tds_3}.
|
||||
concept described in \ccRefPage{TriangulationDataStructure_3}.
|
||||
|
||||
\section{Examples}
|
||||
\label{TDS3-sec-examples}
|
||||
The following example shows how to construct a 3D triangulation data
|
||||
structure by inserting vertices.
|
||||
|
||||
\ccIncludeExampleCode{Triangulation3/example_tds.C}
|
||||
\ccIncludeExampleCode{Triangulation_3/example_tds.C}
|
||||
|
|
@ -35,8 +35,7 @@
|
|||
\subsection{Definition}
|
||||
\label{Triangulation3-sec-def}
|
||||
A three-dimensional triangulation is a three-dimensional simplicial
|
||||
complex, pure connected and without singularities. (See
|
||||
\cite{by-ag-98} or Chapter~\ref{I1_Chapter_Triangulations}.) Its
|
||||
complex, pure connected and without singularities \cite{by-ag-98}. Its
|
||||
cells ($3$-faces) are such that two cells either do not intersect or
|
||||
share a common facet ($2$-face), edge ($1$-face) or vertex ($0$-face).
|
||||
|
||||
|
|
@ -55,7 +54,7 @@ fourth vertex an auxiliary vertex called the \ccc{infinite vertex}. In
|
|||
that way, each facet is incident to exactly two cells and special cases
|
||||
at the boundary of the convex hull are simple to deal with.
|
||||
|
||||
The class \ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} of \cgal\ implements this
|
||||
The class \ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} of \cgal\ implements this
|
||||
point of view and therefore considers the triangulation of the set
|
||||
of points as a set of finite and infinite tetrahedra. Notice that the
|
||||
infinite vertex has no significant coordinates and that no
|
||||
|
|
@ -102,7 +101,7 @@ endpoints are the vertices of \ccc{c} with indices \ccc{i} and
|
|||
\subsection{Degenerate Dimensions}
|
||||
\label{Triangulation3-sec-degen_dim}
|
||||
|
||||
The class \ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} can also deal with
|
||||
The class \ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} can also deal with
|
||||
triangulations whose dimension is less than~3. A triangulation of a
|
||||
set of points in $\R^d$ covers the whole space $\R^d$ and consists of
|
||||
cells having $d+1$ vertices: some of them are infinite, they are
|
||||
|
|
@ -164,7 +163,7 @@ sufficient for practical cases.
|
|||
\section{Software Design}
|
||||
\label{Triangulation3-sec-design}
|
||||
|
||||
The class \ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} is
|
||||
The class \ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} is
|
||||
designed to be used as
|
||||
a layer upon a 3D-triangulation data structure as presented in
|
||||
Section~\ref{TDS3-sec-design} of Chapter~\ref{chapter-TDS3}.
|
||||
|
|
@ -176,38 +175,44 @@ the geometric validity. This class is parameterized by two classes:
|
|||
specify the type of points to use as well as the elementary
|
||||
operations on them (predicates,\ldots). The concept of such a class is
|
||||
introduced in Section~\ref{Triangulation3-sec-Traits}\lcTex{ and described in
|
||||
\ccRefPage{Triangulation_traits_3}} and a
|
||||
model is provided by \cgal\
|
||||
(see \ccc{CGAL::Triangulation_geom_traits_3<R>}\lcTex{
|
||||
(\ccRefPage{CGAL::Triangulation_geom_traits_3<R>})} and
|
||||
\ccc{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>}\lcTex{
|
||||
(\ccRefPage{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>})}.
|
||||
\ccRefPage{TriangulationTraits_3}} and the homegeneous and cartesian
|
||||
kernels of \cgal\ are models for this concept
|
||||
(see also \ccc{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>}\lcTex{
|
||||
(\ccRefPage{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>})}
|
||||
for the Regular triangulation).
|
||||
\item {} the \textbf{triangulation data structure} class of the middle level,
|
||||
described in Chapter~\ref{chapter-TDS3}.
|
||||
\end{itemize}
|
||||
|
||||
Delaunay triangulations as well as triangulation hierarchies
|
||||
\cite{d-iirdt-98} are also implemented in the package:
|
||||
\ccc{Delaunay_triangulation_3<Triangulation_traits_3,Tds_3>} inherits from
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>}, and
|
||||
\ccc{Delaunay_triangulation_3<DelaunayTriangulationTraits_3,TriangulationDataStructure_3>}
|
||||
inherits from
|
||||
\ccc{Triangulation_3<DelaunayTriangulationTraits_3,TriangulationDataStructure_3>}, and
|
||||
\ccc{Triangulation_hierarchy_3<Tr>} inherits from \ccc{Tr}.
|
||||
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} derives from
|
||||
\ccc{Triangulation_utils_3<Triangulation_traits_3,Tds_3>},
|
||||
\ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} derives from
|
||||
\ccc{Triangulation_utils_3<TriangulationTraits_3,TriangulationDataStructure_3>},
|
||||
which defines a set of tools
|
||||
working on the indices of vertices in cells\lcTex{
|
||||
(\ccRefPage{CGAL::Triangulation_utils_3})}.
|
||||
|
||||
\subsection{Basic Triangulation}
|
||||
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} expects a model of a
|
||||
\ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} expects a model of a
|
||||
\textit{geometric traits class} as its first template argument and a model
|
||||
of a \textit{triangulation data structure} as its second argument. The
|
||||
requirements and defaults for these classes are described in
|
||||
the reference pages for Triangulation\_traits\_3\lcTex{ (
|
||||
\ccRefPage{Triangulation_traits_3})},
|
||||
\ccc{CGAL::Triangulation_geom_traits_3<R>}\lcTex{
|
||||
(\ccRefPage{CGAL::Triangulation_geom_traits_3<R>})} and
|
||||
the reference pages for
|
||||
\ccc{TriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationTraits_3})},
|
||||
\ccc{DelaunayTriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{DelaunayTriangulationTraits_3})},
|
||||
\ccc{TriangulationHierarchyTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationHierarchyTraits_3})}
|
||||
\ccc{RegularTriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{RegularTriangulationTraits_3})},
|
||||
and
|
||||
\ccc{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>}\lcTex{
|
||||
(\ccRefPage{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>})}.
|
||||
|
||||
|
|
@ -242,7 +247,7 @@ the reference pages for Triangulation\_traits\_3\lcTex{ (
|
|||
|
||||
\subsection{Delaunay Triangulation}
|
||||
|
||||
The class \ccc{Delaunay_triangulation_3<Triangulation_traits_3,Tds_3>}
|
||||
The class \ccc{Delaunay_triangulation_3<DelaunayTriangulationTraits_3,TriangulationDataStructure_3>}
|
||||
represents a three-dimensional Delaunay triangulation.
|
||||
|
||||
\subsection{Triangulation hierarchy}
|
||||
|
|
@ -269,7 +274,7 @@ by one of the \cgal\ triangulation classes.
|
|||
\subsection{Regular Triangulation}
|
||||
\label{Triangulation3-sec-class-Regulartriangulation}
|
||||
|
||||
\ccc{Regular_triangulation_3<Triangulation_traits_3,Tds_3>} implements
|
||||
\ccc{Regular_triangulation_3<RegularTriangulationTraits_3,TriangulationDataStructure_3>} implements
|
||||
regular triangulations.
|
||||
|
||||
Let ${S}^{(w)}$ be a set of weighted points in $\R^3$. Let
|
||||
|
|
@ -387,7 +392,7 @@ point $p\in\R^3$ or the weighted point ${p}^{(w)}=(p,w_p)$.
|
|||
\label{Triangulation3-sec-Traits}
|
||||
|
||||
The first template parameter of the triangulation class
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} of \cgal\ is the geometric traits class.
|
||||
\ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} of \cgal\ is the geometric traits class.
|
||||
|
||||
The geometric traits class must define the geometric
|
||||
objects (points, segments, triangles and tetrahedra) forming the
|
||||
|
|
@ -399,34 +404,37 @@ In addition to the requirements described before, the geometric traits
|
|||
class of a Delaunay triangulation must define predicates for the
|
||||
\textit{empty sphere property}.
|
||||
|
||||
\cgal\ provides two predefined geometric traits classes
|
||||
\ccc{Cartesian<R>} and \ccc{Homogeneous<R>} using the kernel
|
||||
geometric objects and predicates.
|
||||
These classes are templated with a representation class.
|
||||
They supply the user with all
|
||||
the functionalities described for the concepts
|
||||
\ccc{TriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationTraits_3})},
|
||||
\ccc{DelaunayTriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{DelaunayTriangulationTraits_3})}and
|
||||
\ccc{TriangulationHierarchyTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationHierarchyTraits_3})}.
|
||||
So, any of them can be used as a default traits
|
||||
class for \ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>},
|
||||
\ccc{Delaunay_triangulation_3<DelaunayTriangulationTraits_3,TriangulationDataStructure_3>}
|
||||
and for the parameter \ccc{Tr} of \ccc{TriangulationHierarchy_3<Tr>}.
|
||||
|
||||
To be used as the traits class for the regular triangulation provided
|
||||
by \cgal, a class must provide definitions for the \textit{power tests}.
|
||||
(See Section~\ref{Triangulation3-sec-class-Regulartriangulation}.)
|
||||
|
||||
\cgal\ provides a predefined geometric traits class
|
||||
\ccc{Triangulation_geom_traits_3<R>} using the kernel
|
||||
geometric objects and predicates.
|
||||
This class is templated with a representation class.
|
||||
|
||||
The traits class \ccClassTemplateName\ is designed to deal with \cgal\
|
||||
three-dimensional points. It supplies the user with all
|
||||
the functionalities described for the concept
|
||||
Triangulation\_traits\_3\lcTex{ (\ccRefPage{Triangulation_traits_3})}.
|
||||
So, it can be used as a default traits
|
||||
class for \ccc{Triangulation_3<Triangulation_traits_3,Tds_3>},
|
||||
\ccc{Delaunay_triangulation_3<Triangulation_traits_3,Tds_3>}.
|
||||
|
||||
\ccc{Regular_triangulation_euclidean_traits_3<R,Weight>} is a traits class
|
||||
designed to be used by the class
|
||||
\ccc{Regular_triangulation_3<Triangulation_traits_3,Tds_3>}. It provides
|
||||
\ccc{Regular_triangulation_3<RegularTriangulationTraits_3,TriangulationDataStructure_3>}. It provides
|
||||
\ccc{Weighted_point}, a class for weighted points
|
||||
provided by the class, which derives from the \cgal\ three dimensional
|
||||
point class. It supplies
|
||||
the user with all the functionalities
|
||||
described for the concept Triangulation\_traits\_3\lcTex{
|
||||
(\ccRefPage{Triangulation_traits_3})}.
|
||||
described for the concept \ccc{TriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationTraits_3})}.
|
||||
It can be used as a default traits
|
||||
class for \ccc{Regular_triangulation_3<Triangulation_traits_3,Tds_3>}.
|
||||
class for \ccc{Regular_triangulation_3<RegularTriangulationTraits_3,TriangulationDataStructure_3>}.
|
||||
|
||||
% \subsection{Weighted point}
|
||||
% \label{Triangulation3-sec-class-Weightedpoints}
|
||||
|
|
@ -453,7 +461,7 @@ class for \ccc{Regular_triangulation_3<Triangulation_traits_3,Tds_3>}.
|
|||
\label{Triangulation3-sec-tds}
|
||||
|
||||
The second template parameter of the basic triangulation class
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} is a triangulation
|
||||
\ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} is a triangulation
|
||||
data structure class. This class can be seen as a container for the
|
||||
cells and vertices maintaining incidence and adjacency relations (see
|
||||
Chapter~\ref{chapter-TDS3}). A model of this triangulation data
|
||||
|
|
@ -466,5 +474,5 @@ This example shows the incremental construction of a 3D triangulation,
|
|||
the location of a point, and how to manipulate elementary operations
|
||||
on indices in a cell.
|
||||
|
||||
\ccIncludeExampleCode{Triangulation3/example1.C}
|
||||
\ccIncludeExampleCode{Triangulation_3/example1.C}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
||||
\begin{ccRefConcept}[Tds_3::]{Cell}
|
||||
\begin{ccRefConcept}[TriangulationDataStructure_3::]{Cell}
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[concept]{} %% add further index entries
|
||||
|
|
@ -34,13 +34,13 @@ Section~\ref{TDS3-sec-degen_dim}.)
|
|||
\ccThreeToTwo
|
||||
The class \ccClassName\ defines the following types.
|
||||
|
||||
\ccTypedef{typedef Tds_3::Vertex Vertex;}{}
|
||||
\ccTypedef{typedef TriangulationDataStructure_3::Vertex Vertex;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef Tds_3::Cell Cell;}{}
|
||||
\ccTypedef{typedef TriangulationDataStructure_3::Cell Cell;}{}
|
||||
|
||||
\ccCreation
|
||||
\ccCreationVariable{c} %% choose variable name
|
||||
\ccThree{Tds::Vertex}{v(const Point & p, Cell* c);}{}
|
||||
\ccThree{TriangulationDataStructure::Vertex}{v(const Point & p, Cell* c);}{}
|
||||
|
||||
The constructors of a cell do not insert it into any triangulation
|
||||
data structure. To add a cell into a given triangulation
|
||||
|
|
@ -146,7 +146,7 @@ a precise indication of the kind of invalidity encountered.}
|
|||
|
||||
\ccSeeAlso
|
||||
|
||||
\ccc{Tds_3::Vertex}.
|
||||
\ccc{TriangulationDataStructure_3::Vertex}.
|
||||
|
||||
%% \ccExample
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
||||
\begin{ccRefConcept}[Tds_3::]{Vertex}
|
||||
\begin{ccRefConcept}[TriangulationDataStructure_3::]{Vertex}
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[concept]{} %% add further index entries
|
||||
|
|
@ -32,15 +32,15 @@ for the geometric triangulation class. (See Section~\ref{TDS3-sec-design}.)
|
|||
structure alone.}}
|
||||
|
||||
The class \ccClassName\ defines types that are the same as some of the
|
||||
types defined by the triangulation data structure class \ccc{Tds}.
|
||||
types defined by the triangulation data structure class \ccc{TriangulationDataStructure}.
|
||||
|
||||
\ccTypedef{typedef Tds_3::Vertex Vertex;}{}
|
||||
\ccTypedef{typedef TriangulationDataStructure_3::Vertex Vertex;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef Tds_3::Cell Cell;}{}
|
||||
\ccTypedef{typedef TriangulationDataStructure_3::Cell Cell;}{}
|
||||
|
||||
\ccCreation
|
||||
\ccCreationVariable{v} %% choose variable name
|
||||
\ccThree{Tds::Vertex}{v(const Point & p, Cell* c);}{}
|
||||
\ccThree{TriangulationDataStructure::Vertex}{v(const Point & p, Cell* c);}{}
|
||||
|
||||
\ccConstructor{Vertex();}
|
||||
{Introduces a vertex \ccVar.
|
||||
|
|
@ -60,7 +60,7 @@ triangulation data structure alone.}}}
|
|||
{Introduces a vertex \ccVar, and sets the pointer to the incident cell
|
||||
to \ccc{c}.}
|
||||
|
||||
\ccConstructor{Tds_vertex_3();}{default constructor.}
|
||||
\ccConstructor{Vertex();}{default constructor.}
|
||||
|
||||
\ccOperations
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ a precise indication on the kind of invalidity encountered.}
|
|||
|
||||
\ccSeeAlso
|
||||
|
||||
\ccc{Tds_3::Cell}.
|
||||
\ccc{TriangulationDataStructure_3::Cell}.
|
||||
|
||||
%% \ccExample
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
\input{Triang3}
|
||||
\input{Triangulation3_ref/Triangulation/main.tex}
|
||||
\input{Triangulation_3_ref/Triangulation_3/main.tex}
|
||||
|
||||
\input{TDS3}
|
||||
\input{Triangulation3_ref/Triangulation_data_structure/main.tex}
|
||||
\input{Triangulation_3_ref/Triangulation_data_structure_3/main.tex}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
.PHONY: dvi ps
|
||||
|
||||
ps: Triangulation3.ps
|
||||
ps: Triangulation_3.ps
|
||||
|
||||
Triangulation3.ps: wrapper.dvi
|
||||
dvips -o Triangulation3.ps wrapper.dvi
|
||||
Triangulation_3.ps: wrapper.dvi
|
||||
dvips -o Triangulation_3.ps wrapper.dvi
|
||||
|
||||
dvi: wrapper.dvi
|
||||
|
||||
|
|
|
|||
|
|
@ -295,11 +295,11 @@ data structure class is one of the template parameters of the
|
|||
geometric triangulation class. The user may choose to replace the
|
||||
\cgal\ triangulation data structure class by his own triangulation
|
||||
data structure. In this case, his class has to be a model of the
|
||||
concept described in \ccRefPage{Tds_3}.
|
||||
concept described in \ccRefPage{TriangulationDataStructure_3}.
|
||||
|
||||
\section{Examples}
|
||||
\label{TDS3-sec-examples}
|
||||
The following example shows how to construct a 3D triangulation data
|
||||
structure by inserting vertices.
|
||||
|
||||
\ccIncludeExampleCode{Triangulation3/example_tds.C}
|
||||
\ccIncludeExampleCode{Triangulation_3/example_tds.C}
|
||||
|
|
@ -35,8 +35,7 @@
|
|||
\subsection{Definition}
|
||||
\label{Triangulation3-sec-def}
|
||||
A three-dimensional triangulation is a three-dimensional simplicial
|
||||
complex, pure connected and without singularities. (See
|
||||
\cite{by-ag-98} or Chapter~\ref{I1_Chapter_Triangulations}.) Its
|
||||
complex, pure connected and without singularities \cite{by-ag-98}. Its
|
||||
cells ($3$-faces) are such that two cells either do not intersect or
|
||||
share a common facet ($2$-face), edge ($1$-face) or vertex ($0$-face).
|
||||
|
||||
|
|
@ -55,7 +54,7 @@ fourth vertex an auxiliary vertex called the \ccc{infinite vertex}. In
|
|||
that way, each facet is incident to exactly two cells and special cases
|
||||
at the boundary of the convex hull are simple to deal with.
|
||||
|
||||
The class \ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} of \cgal\ implements this
|
||||
The class \ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} of \cgal\ implements this
|
||||
point of view and therefore considers the triangulation of the set
|
||||
of points as a set of finite and infinite tetrahedra. Notice that the
|
||||
infinite vertex has no significant coordinates and that no
|
||||
|
|
@ -102,7 +101,7 @@ endpoints are the vertices of \ccc{c} with indices \ccc{i} and
|
|||
\subsection{Degenerate Dimensions}
|
||||
\label{Triangulation3-sec-degen_dim}
|
||||
|
||||
The class \ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} can also deal with
|
||||
The class \ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} can also deal with
|
||||
triangulations whose dimension is less than~3. A triangulation of a
|
||||
set of points in $\R^d$ covers the whole space $\R^d$ and consists of
|
||||
cells having $d+1$ vertices: some of them are infinite, they are
|
||||
|
|
@ -164,7 +163,7 @@ sufficient for practical cases.
|
|||
\section{Software Design}
|
||||
\label{Triangulation3-sec-design}
|
||||
|
||||
The class \ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} is
|
||||
The class \ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} is
|
||||
designed to be used as
|
||||
a layer upon a 3D-triangulation data structure as presented in
|
||||
Section~\ref{TDS3-sec-design} of Chapter~\ref{chapter-TDS3}.
|
||||
|
|
@ -176,38 +175,44 @@ the geometric validity. This class is parameterized by two classes:
|
|||
specify the type of points to use as well as the elementary
|
||||
operations on them (predicates,\ldots). The concept of such a class is
|
||||
introduced in Section~\ref{Triangulation3-sec-Traits}\lcTex{ and described in
|
||||
\ccRefPage{Triangulation_traits_3}} and a
|
||||
model is provided by \cgal\
|
||||
(see \ccc{CGAL::Triangulation_geom_traits_3<R>}\lcTex{
|
||||
(\ccRefPage{CGAL::Triangulation_geom_traits_3<R>})} and
|
||||
\ccc{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>}\lcTex{
|
||||
(\ccRefPage{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>})}.
|
||||
\ccRefPage{TriangulationTraits_3}} and the homegeneous and cartesian
|
||||
kernels of \cgal\ are models for this concept
|
||||
(see also \ccc{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>}\lcTex{
|
||||
(\ccRefPage{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>})}
|
||||
for the Regular triangulation).
|
||||
\item {} the \textbf{triangulation data structure} class of the middle level,
|
||||
described in Chapter~\ref{chapter-TDS3}.
|
||||
\end{itemize}
|
||||
|
||||
Delaunay triangulations as well as triangulation hierarchies
|
||||
\cite{d-iirdt-98} are also implemented in the package:
|
||||
\ccc{Delaunay_triangulation_3<Triangulation_traits_3,Tds_3>} inherits from
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>}, and
|
||||
\ccc{Delaunay_triangulation_3<DelaunayTriangulationTraits_3,TriangulationDataStructure_3>}
|
||||
inherits from
|
||||
\ccc{Triangulation_3<DelaunayTriangulationTraits_3,TriangulationDataStructure_3>}, and
|
||||
\ccc{Triangulation_hierarchy_3<Tr>} inherits from \ccc{Tr}.
|
||||
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} derives from
|
||||
\ccc{Triangulation_utils_3<Triangulation_traits_3,Tds_3>},
|
||||
\ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} derives from
|
||||
\ccc{Triangulation_utils_3<TriangulationTraits_3,TriangulationDataStructure_3>},
|
||||
which defines a set of tools
|
||||
working on the indices of vertices in cells\lcTex{
|
||||
(\ccRefPage{CGAL::Triangulation_utils_3})}.
|
||||
|
||||
\subsection{Basic Triangulation}
|
||||
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} expects a model of a
|
||||
\ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} expects a model of a
|
||||
\textit{geometric traits class} as its first template argument and a model
|
||||
of a \textit{triangulation data structure} as its second argument. The
|
||||
requirements and defaults for these classes are described in
|
||||
the reference pages for Triangulation\_traits\_3\lcTex{ (
|
||||
\ccRefPage{Triangulation_traits_3})},
|
||||
\ccc{CGAL::Triangulation_geom_traits_3<R>}\lcTex{
|
||||
(\ccRefPage{CGAL::Triangulation_geom_traits_3<R>})} and
|
||||
the reference pages for
|
||||
\ccc{TriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationTraits_3})},
|
||||
\ccc{DelaunayTriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{DelaunayTriangulationTraits_3})},
|
||||
\ccc{TriangulationHierarchyTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationHierarchyTraits_3})}
|
||||
\ccc{RegularTriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{RegularTriangulationTraits_3})},
|
||||
and
|
||||
\ccc{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>}\lcTex{
|
||||
(\ccRefPage{CGAL::Regular_triangulation_euclidean_traits_3<R,Weight>})}.
|
||||
|
||||
|
|
@ -242,7 +247,7 @@ the reference pages for Triangulation\_traits\_3\lcTex{ (
|
|||
|
||||
\subsection{Delaunay Triangulation}
|
||||
|
||||
The class \ccc{Delaunay_triangulation_3<Triangulation_traits_3,Tds_3>}
|
||||
The class \ccc{Delaunay_triangulation_3<DelaunayTriangulationTraits_3,TriangulationDataStructure_3>}
|
||||
represents a three-dimensional Delaunay triangulation.
|
||||
|
||||
\subsection{Triangulation hierarchy}
|
||||
|
|
@ -269,7 +274,7 @@ by one of the \cgal\ triangulation classes.
|
|||
\subsection{Regular Triangulation}
|
||||
\label{Triangulation3-sec-class-Regulartriangulation}
|
||||
|
||||
\ccc{Regular_triangulation_3<Triangulation_traits_3,Tds_3>} implements
|
||||
\ccc{Regular_triangulation_3<RegularTriangulationTraits_3,TriangulationDataStructure_3>} implements
|
||||
regular triangulations.
|
||||
|
||||
Let ${S}^{(w)}$ be a set of weighted points in $\R^3$. Let
|
||||
|
|
@ -387,7 +392,7 @@ point $p\in\R^3$ or the weighted point ${p}^{(w)}=(p,w_p)$.
|
|||
\label{Triangulation3-sec-Traits}
|
||||
|
||||
The first template parameter of the triangulation class
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} of \cgal\ is the geometric traits class.
|
||||
\ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} of \cgal\ is the geometric traits class.
|
||||
|
||||
The geometric traits class must define the geometric
|
||||
objects (points, segments, triangles and tetrahedra) forming the
|
||||
|
|
@ -399,34 +404,37 @@ In addition to the requirements described before, the geometric traits
|
|||
class of a Delaunay triangulation must define predicates for the
|
||||
\textit{empty sphere property}.
|
||||
|
||||
\cgal\ provides two predefined geometric traits classes
|
||||
\ccc{Cartesian<R>} and \ccc{Homogeneous<R>} using the kernel
|
||||
geometric objects and predicates.
|
||||
These classes are templated with a representation class.
|
||||
They supply the user with all
|
||||
the functionalities described for the concepts
|
||||
\ccc{TriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationTraits_3})},
|
||||
\ccc{DelaunayTriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{DelaunayTriangulationTraits_3})}and
|
||||
\ccc{TriangulationHierarchyTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationHierarchyTraits_3})}.
|
||||
So, any of them can be used as a default traits
|
||||
class for \ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>},
|
||||
\ccc{Delaunay_triangulation_3<DelaunayTriangulationTraits_3,TriangulationDataStructure_3>}
|
||||
and for the parameter \ccc{Tr} of \ccc{TriangulationHierarchy_3<Tr>}.
|
||||
|
||||
To be used as the traits class for the regular triangulation provided
|
||||
by \cgal, a class must provide definitions for the \textit{power tests}.
|
||||
(See Section~\ref{Triangulation3-sec-class-Regulartriangulation}.)
|
||||
|
||||
\cgal\ provides a predefined geometric traits class
|
||||
\ccc{Triangulation_geom_traits_3<R>} using the kernel
|
||||
geometric objects and predicates.
|
||||
This class is templated with a representation class.
|
||||
|
||||
The traits class \ccClassTemplateName\ is designed to deal with \cgal\
|
||||
three-dimensional points. It supplies the user with all
|
||||
the functionalities described for the concept
|
||||
Triangulation\_traits\_3\lcTex{ (\ccRefPage{Triangulation_traits_3})}.
|
||||
So, it can be used as a default traits
|
||||
class for \ccc{Triangulation_3<Triangulation_traits_3,Tds_3>},
|
||||
\ccc{Delaunay_triangulation_3<Triangulation_traits_3,Tds_3>}.
|
||||
|
||||
\ccc{Regular_triangulation_euclidean_traits_3<R,Weight>} is a traits class
|
||||
designed to be used by the class
|
||||
\ccc{Regular_triangulation_3<Triangulation_traits_3,Tds_3>}. It provides
|
||||
\ccc{Regular_triangulation_3<RegularTriangulationTraits_3,TriangulationDataStructure_3>}. It provides
|
||||
\ccc{Weighted_point}, a class for weighted points
|
||||
provided by the class, which derives from the \cgal\ three dimensional
|
||||
point class. It supplies
|
||||
the user with all the functionalities
|
||||
described for the concept Triangulation\_traits\_3\lcTex{
|
||||
(\ccRefPage{Triangulation_traits_3})}.
|
||||
described for the concept \ccc{TriangulationTraits_3}\lcTex{
|
||||
(\ccRefPage{TriangulationTraits_3})}.
|
||||
It can be used as a default traits
|
||||
class for \ccc{Regular_triangulation_3<Triangulation_traits_3,Tds_3>}.
|
||||
class for \ccc{Regular_triangulation_3<RegularTriangulationTraits_3,TriangulationDataStructure_3>}.
|
||||
|
||||
% \subsection{Weighted point}
|
||||
% \label{Triangulation3-sec-class-Weightedpoints}
|
||||
|
|
@ -453,7 +461,7 @@ class for \ccc{Regular_triangulation_3<Triangulation_traits_3,Tds_3>}.
|
|||
\label{Triangulation3-sec-tds}
|
||||
|
||||
The second template parameter of the basic triangulation class
|
||||
\ccc{Triangulation_3<Triangulation_traits_3,Tds_3>} is a triangulation
|
||||
\ccc{Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>} is a triangulation
|
||||
data structure class. This class can be seen as a container for the
|
||||
cells and vertices maintaining incidence and adjacency relations (see
|
||||
Chapter~\ref{chapter-TDS3}). A model of this triangulation data
|
||||
|
|
@ -466,5 +474,5 @@ This example shows the incremental construction of a 3D triangulation,
|
|||
the location of a point, and how to manipulate elementary operations
|
||||
on indices in a cell.
|
||||
|
||||
\ccIncludeExampleCode{Triangulation3/example1.C}
|
||||
\ccIncludeExampleCode{Triangulation_3/example1.C}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
||||
\begin{ccRefConcept}[Tds_3::]{Cell}
|
||||
\begin{ccRefConcept}[TriangulationDataStructure_3::]{Cell}
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[concept]{} %% add further index entries
|
||||
|
|
@ -34,13 +34,13 @@ Section~\ref{TDS3-sec-degen_dim}.)
|
|||
\ccThreeToTwo
|
||||
The class \ccClassName\ defines the following types.
|
||||
|
||||
\ccTypedef{typedef Tds_3::Vertex Vertex;}{}
|
||||
\ccTypedef{typedef TriangulationDataStructure_3::Vertex Vertex;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef Tds_3::Cell Cell;}{}
|
||||
\ccTypedef{typedef TriangulationDataStructure_3::Cell Cell;}{}
|
||||
|
||||
\ccCreation
|
||||
\ccCreationVariable{c} %% choose variable name
|
||||
\ccThree{Tds::Vertex}{v(const Point & p, Cell* c);}{}
|
||||
\ccThree{TriangulationDataStructure::Vertex}{v(const Point & p, Cell* c);}{}
|
||||
|
||||
The constructors of a cell do not insert it into any triangulation
|
||||
data structure. To add a cell into a given triangulation
|
||||
|
|
@ -146,7 +146,7 @@ a precise indication of the kind of invalidity encountered.}
|
|||
|
||||
\ccSeeAlso
|
||||
|
||||
\ccc{Tds_3::Vertex}.
|
||||
\ccc{TriangulationDataStructure_3::Vertex}.
|
||||
|
||||
%% \ccExample
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
||||
\begin{ccRefConcept}[Tds_3::]{Vertex}
|
||||
\begin{ccRefConcept}[TriangulationDataStructure_3::]{Vertex}
|
||||
|
||||
%% \ccHtmlCrossLink{} %% add further rules for cross referencing links
|
||||
%% \ccHtmlIndexC[concept]{} %% add further index entries
|
||||
|
|
@ -32,15 +32,15 @@ for the geometric triangulation class. (See Section~\ref{TDS3-sec-design}.)
|
|||
structure alone.}}
|
||||
|
||||
The class \ccClassName\ defines types that are the same as some of the
|
||||
types defined by the triangulation data structure class \ccc{Tds}.
|
||||
types defined by the triangulation data structure class \ccc{TriangulationDataStructure}.
|
||||
|
||||
\ccTypedef{typedef Tds_3::Vertex Vertex;}{}
|
||||
\ccTypedef{typedef TriangulationDataStructure_3::Vertex Vertex;}{}
|
||||
\ccGlue
|
||||
\ccTypedef{typedef Tds_3::Cell Cell;}{}
|
||||
\ccTypedef{typedef TriangulationDataStructure_3::Cell Cell;}{}
|
||||
|
||||
\ccCreation
|
||||
\ccCreationVariable{v} %% choose variable name
|
||||
\ccThree{Tds::Vertex}{v(const Point & p, Cell* c);}{}
|
||||
\ccThree{TriangulationDataStructure::Vertex}{v(const Point & p, Cell* c);}{}
|
||||
|
||||
\ccConstructor{Vertex();}
|
||||
{Introduces a vertex \ccVar.
|
||||
|
|
@ -60,7 +60,7 @@ triangulation data structure alone.}}}
|
|||
{Introduces a vertex \ccVar, and sets the pointer to the incident cell
|
||||
to \ccc{c}.}
|
||||
|
||||
\ccConstructor{Tds_vertex_3();}{default constructor.}
|
||||
\ccConstructor{Vertex();}{default constructor.}
|
||||
|
||||
\ccOperations
|
||||
|
||||
|
|
@ -94,7 +94,7 @@ a precise indication on the kind of invalidity encountered.}
|
|||
|
||||
\ccSeeAlso
|
||||
|
||||
\ccc{Tds_3::Cell}.
|
||||
\ccc{TriangulationDataStructure_3::Cell}.
|
||||
|
||||
%% \ccExample
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
\input{Triang3}
|
||||
\input{Triangulation3_ref/Triangulation/main.tex}
|
||||
\input{Triangulation_3_ref/Triangulation_3/main.tex}
|
||||
|
||||
\input{TDS3}
|
||||
\input{Triangulation3_ref/Triangulation_data_structure/main.tex}
|
||||
\input{Triangulation_3_ref/Triangulation_data_structure_3/main.tex}
|
||||
|
|
|
|||
Loading…
Reference in New Issue