added documentation

This commit is contained in:
Nico Kruithof 2006-03-12 12:11:44 +00:00
parent 33be9f003d
commit bb754c6cd0
12 changed files with 208 additions and 85 deletions

View File

@ -40,6 +40,9 @@
\ccNestedType{Polyhedron_traits}{The traits class used for the
geometric objects defined by the mesh.}
\ccNestedType{Regular_RT}{The ring type of the
\ccc{Regular_triangulation_traits}.}
\ccNestedType{R2T_converter}{Converter for geometric objects
defined within \ccc{Regular_triangulation_traits} to objects defined within
\ccc{Triangulated_mixed_complex_traits}.}
@ -59,12 +62,12 @@
% NGHK: These predicates need the Regular triangulation, which are not
% known in the skin surface traits class
%\ccNestedType{Compute_anchor_3}{A predicate object which must
% provide the function operators defined for
%\ccNestedType{Compute_anchor_3}{A predicate object which
% provides the function operators defined for
% \ccc{Compute_anchor_3<RegularTriangulation_3>}.}
\ccNestedType{Construct_anchor_point_3}{A predicate object which must
provide the following function operator:\\
\ccNestedType{Construct_anchor_point_3}{A predicate object which
provides the following function operator:\\
\ccc{TMC_Point operator()(const TMC_Point &center_del, const
TMC_Point &center_vor);}\\
Constructs the anchor point in between the Delaunay and Voronoi
@ -80,8 +83,6 @@
\ccRefIdfierPage{CGAL::Skin_surface_traits_3<RegularKernel_3, TriangulatedMixedComplexKernel_3, PolyhedronTraits_3>}
\ccSeeAlso
\ccRefIdfierPage{CGAL::skin_surface_3}
\ccThree{Construct_anchor_point_3}{traits.shrink_factor()}{}
\ccThreeToTwo
@ -116,6 +117,9 @@ The following functions give access to the predicate objects:
\ccc{Triangulated_mixed_complex_traits} to the
\ccc{Polyhedron_traits}.}
\ccSeeAlso
\ccRefIdfierPage{CGAL::skin_surface_3}\\
\ccRefIdfierPage{CGAL::Skin_surface_traits_3<RegularKernel_3, TriangulatedMixedComplexKernel_3, PolyhedronTraits_3>}
\end{ccRefConcept}

View File

@ -21,7 +21,7 @@
The class \ccRefName\ is a model of the \ccc{SkinSurfaceTraits_3}
concept. It defines the geometric types and primitive operations used
in the construction and refinement of a skin surface
in the construction and refinement of a skin surface.
\ccInclude{CGAL/Skin_surface_traits_3.h}
@ -48,80 +48,103 @@ in the construction and refinement of a skin surface
%
\ccTypedef{typedef PolyhedronTraits_3 Polyhedron_traits;}{The traits class used for the
geometric objects defined by the mesh.}
%
\ccTypedef{typedef Regular_kernel::RT Regular_RT;}{}
\ccNestedType{R2T_converter}{Converter for geometric objects
\ccTypedef{typedef Weighted_converter_3 <
Cartesian_converter<Triangulated_mixed_complex_traits,Polyhedron_traits>
> R2T_converter;}{Converter to convert geometric objects
defined within \ccc{Regular_triangulation_traits} to objects defined within
\ccc{Triangulated_mixed_complex_traits}.}
\ccNestedType{R2P_converter}{Converter for geometric objects
defined within \ccc{Regular_triangulation_traits} to objects defined within
\ccTypedef{typedef Weighted_converter_3 <
Cartesian_converter<Triangulated_mixed_complex_traits,Polyhedron_traits>
> R2P_converter;}{Converter to convert geometric objects defined
within \ccc{Regular_triangulation_traits} to objects defined within
\ccc{Polyhedron_traits}.}
\ccNestedType{T2P_converter}{Converter for geometric objects
\ccTypedef{typedef Weighted_converter_3 <
Cartesian_converter<Triangulated_mixed_complex_traits,Polyhedron_traits>
> T2P_converter;}{Converter to convert geometric objects
defined within \ccc{Triangulated_mixed_complex_traits} to objects
defined within \ccc{Polyhedron_traits}.}
\ccNestedType{T2P_converter}{Converter for geometric objects
\ccTypedef{typedef Weighted_converter_3 <
Cartesian_converter<Triangulated_mixed_complex_traits,Polyhedron_traits>
> P2T_converter;}{Converter to convert geometric objects
defined within \ccc{Polyhedron_traits} to objects
defined within \ccc{Triangulated_mixed_complex_traits}.}
\ccNestedType{Compute_anchor_3}{A predicate object which must
provide the function operators defined for
\ccc{Compute_anchor_3<RegularTriangulation_3>}.}
% NGHK: we don't know the regular triangulation
%\ccNestedType{Construct_anchor_point_3}{A predicate object which must
% provide the following function operator:\\
% \ccc{TMC_Point operator()(const TMC_Point &center_del, const
% TMC_Point &center_vor);}\\
% Constructs the anchor point in between the Delaunay and Voronoi
% centers.}
% \ccNestedType{Compute_anchor_3}{A predicate object which provides
% the function operators defined for
% \ccc{Compute_anchor_3<RegularTriangulation_3>}.}
\ccNestedType{R2T_converter}{Converter to convert geometric objects
defined within \ccc{Regular_triangulation_traits} to objects defined within
\ccc{Triangulated_mixed_complex_traits}.}
\ccNestedType{R2P_converter}{Converter to convert geometric objects
defined within \ccc{Regular_triangulation_traits} to objects defined within
\ccc{Polyhedron_traits}.}
\ccNestedType{T2P_converter}{Converter to convert geometric objects
defined within \ccc{Triangulated_mixed_complex_traits} to objects
defined within \ccc{Polyhedron_traits}.}
\ccNestedType{T2P_converter}{Converter to convert geometric objects
defined within \ccc{Polyhedron_traits} to objects
defined within \ccc{Triangulated_mixed_complex_traits}.}
\ccTypedef{typedef
Regular_triangulation_traits::In_smallest_orthocenter_3
In_smallest_orthocenter_3;}{bla}
\ccNestedType{Construct_weighted_circumcenter_3;}{bla}
\ccNestedType{Construct_triangulated_mixed_complex_vertex_3}{bla}
Construct_anchor_point_3<Triangulated_mixed_complex_traits>
Construct_anchor_point_3;} {A predicate object which
provides the following function operator:\\
\ccc{TMC_Point operator()(const TMC_Point &center_del, const
TMC_Point &center_vor);}\\
Constructs the anchor point in between the Delaunay and Voronoi
centers.}
% NGHK: Might be added later to provide the predicate for the anchor point.
%\ccTypedef{typedef
% Regular_triangulation_traits::In_smallest_orthocenter_3
% In_smallest_orthocenter_3;}{bla}
%\ccNestedType{Construct_weighted_circumcenter_3;}{bla}
%\ccNestedType{Construct_triangulated_mixed_complex_vertex_3}{bla}
\ccCreation
\ccCreationVariable{traits} %% choose variable name
\ccConstructor{Skin_surface_traits_3( const typename Regular_triangulation_traits::FT s=.5);}{
constructor that takes the shrink factor as argument.}
\ccConstructor{Skin_surface_traits_3( const typename
Regular_triangulation_traits::FT s=.5);}{ constructor that takes the
shrink factor as argument.}
\ccOperations
\ccThree{Construct_anchor_point_3}{traits.shrink_factor()}{}
\ccThreeToTwo
\ccMethod{In_smallest_orthogonal_sphere_3
in_smallest_orthogonal_sphere_3_object();}{ }
% NGHK: Not in the current version
%\ccMethod{In_smallest_orthogonal_sphere_3
% in_smallest_orthogonal_sphere_3_object();}{ }
%\ccGlue
%\ccMethod{Construct_weighted_circumcenter_3
% construct_weighted_circumcenter_3_object();}{ }
%\ccGlue
\ccMethod{Regular_RT shrink_factor();}{ }
\ccGlue
\ccMethod{Construct_weighted_circumcenter_3
construct_weighted_circumcenter_3_object();}{ }
\ccGlue
\ccMethod{Construct_triangulated_mixed_complex_vertex_3
construct_triangulated_mixed_complex_vertex_3_object();}{ }
\ccMethod{Regular_triangulation_traits::FT shrink_factor();}{ }
\ccMethod{Construct_anchor_point_3 construct_anchor_point_3_object();}{ }
\ccHeading{Converters:}
\ccThree{T2P_converterx}{Construct_anchor_point_3xxx}{}
\ccThreeToTwo
\ccMethod{R2T_converter r2t_converter_object() const;}{returns a
converter of geometric objects from the \ccc{Regular_triangulation_traits} to the
\ccc{Triangulated_mixed_complex_traits}.}
\ccMethod{R2P_converter r2p_converter_object() const;}{returns a
converter of geometric objects from the \ccc{Regular_triangulation_traits} to the
\ccc{Polyhedron_traits}.}
\ccMethod{T2P_converter t2p_converter_object() const;}{returns a
converter of geometric objects from the
\ccc{Triangulated_mixed_complex_traits} to the
\ccc{Polyhedron_traits}.}
\ccMethod{P2T_converter p2t_converter_object() const;}{returns a
converter of geometric objects from the
\ccc{Triangulated_mixed_complex_traits} to the
\ccc{Polyhedron_traits}.}
\ccSeeAlso
\ccRefIdfierPage{SkinSurfaceTraits_3}
\ccRefIdfierPage{CGAL::skin_surface_3}\\
\ccRefIdfierPage{SkinSurfaceTraits_3}\\
\end{ccRefClass}

View File

@ -14,7 +14,47 @@
% +------------------------------------------------------------------------+
\begin{ccRefClass}{Triangulated_mixed_complex_3<Kernel>}
\begin{ccRefClass}{Triangulated_mixed_complex_3<SkinSurfaceTraits_3,GT,PolyhedronKernel_3,Tds>}
\label{refTriangulatedmixedcomplex}
\ccDefinition
%
The \ccRefName\ is a default class that can be used to
store the triangulated mixed complex. It is derived from the
\ccc{Triangulation_3} class and extends cell-type of the triangulation
with a pointer to the quadratic surface that defines the skin surface
within the cell.
\ccInclude{CGAL/Triangulated_mixed_complex_3.h}
\ccParameters
%
The first template parameter \ccc{SkinSurfaceTraits_3} is a model of
the \ccc{SkinSurfaceTraits_3} concept and is used to derive default
values for the following parameters.
The second parameter defines the \ccc{TriangulationTraits_3} of the
triangulation and should be a model of the \ccc{TriangulationTraits_3}
concept. By default this template is
\ccc{SkinSurfaceTraits_3::Triangulated_mixed_complex_traits}.
The third template argument defines the kernel used for quadratic
surface class, which is kernel of the Polyhedral mesh. By default this
template is \ccc{SkinSurfaceTraits_3::Polyhedron_traits}.
The last template argument defines the enhanced
\ccc{TriangulationDataStructure_3}, which is the second template
argument of the parent class. Its default value is
\ccc{Triangulation_data_structure_3 < Triangulation_vertex_base_3<GT>,
Triangulated_mixed_complex_cell_3<GT, PolyhedronKernel_3> >}
\ccInheritsFrom
\ccc{CGAL::Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>}
\ccSeeAlso
\ccRefIdfierPage{SkinSurfaceTraits_3}\\
\ccRefIdfierPage{CGAL::Triangulated_mixed_complex_cell_3<GT,SurfaceKernel,Cb>}\\
\ccRefIdfierPage{CGAL::Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>}
\end{ccRefClass}

View File

@ -14,7 +14,35 @@
% +------------------------------------------------------------------------+
\begin{ccRefClass}{Triangulated_mixed_complex_cell_3<Kernel>}
\begin{ccRefClass}{Triangulated_mixed_complex_cell_3<GT,SurfaceKernel,Cb>}
\label{refTriangulatedmixedcomplexcell}
\ccDefinition
%
The \ccRefName\ defines the cell type of a triangulation that can be
used in the function \ccc{triangulate_mixed_complex_3} to construct a
triangulated mixed complex. It provides a pointer to a
\ccc{CGAL::Skin_surface_quadratic_surface_3} that uses the
\ccc{SurfaceKernel} as its kernel.
\ccInclude{CGAL/Triangulated_mixed_complex_cell_3.h}
\ccParameters
The first template argument is the geometric traits class
\ccc{TriangulationTraits_3} of the \ccc{Cb}.
The second template argument is a kernel that is used to define the
quadratic surface.
The last template argument is the base class from which \ccRefName\
derives. By default it is \ccc{Triangulation_cell_base_3<GT>}.
\ccInheritsFrom
\ccc{Cb}
\ccSeeAlso
\ccRefIdfierPage{CGAL::Triangulation_3<TriangulationTraits_3,TriangulationDataStructure_3>}\\
\ccRefIdfierPage{CGAL::Triangulation_cell_base_3<TriangulationTraits_3, TriangulationDSCellBase_3>}\\
\ccRefIdfierPage{CGAL::Triangulated_mixed_complex_3<SkinSurfaceTraits_3,GT,PolyhedronKernel_3,Tds>}
\end{ccRefClass}

View File

@ -17,4 +17,5 @@
\begin{ccRefClass}{Triangulated_mixed_complex_observer_3<Kernel>}
\label{refTriangulatedmixedcomplexobserver}
\end{ccRefClass}

View File

@ -31,10 +31,8 @@ is customizable with the help of observer classes.
\ccRefIdfierPage{CGAL::Construct_anchor_point_3<Kernel>}
\ccRefIdfierPage{CGAL::Marching_tetrahedra_observer_default_3<Triangulation_3,
Polyhedron_3>}\\
\ccRefIdfierPage{CGAL::Marching_tetrahedra_observer_skin_surface_3<Triangulation_3,
Polyhedron_3>}
\ccRefIdfierPage{CGAL::Marching_tetrahedra_observer_default_3<Triangulation_3,Polyhedron_3>}\\
\ccRefIdfierPage{CGAL::Marching_tetrahedra_observer_skin_surface_3<Triangulation_3,Polyhedron_3>}
\ccRefIdfierPage{CGAL::Skin_surface_hyperboloid_3<Kernel>}\\
\ccRefIdfierPage{CGAL::Skin_surface_quadratic_surface_3<Kernel>}\\
@ -48,16 +46,17 @@ is customizable with the help of observer classes.
\subsubsection*{Traits classes}
\ccRefIdfierPage{CGAL::Marching_tetrahedra_traits_skin_surface_3<Triangulation_3, HalfedgeDS, Converter_ >}\\
\ccRefIdfierPage{CGAL::Skin_surface_traits_3<RegularKernel_3, TriangulatedMixedComplexKernel_3, PolyhedronTraits_3>}
\ccRefIdfierPage{CGAL::Skin_surface_traits_3<RegularKernel_3,TriangulatedMixedComplexKernel_3,PolyhedronTraits_3>}
\subsection*{Functions}
\ccRefIdfierPage{CGAL::marching_tetrahedra_3}\\
\ccRefIdfierPage{CGAL::skin_surface_3}\\
\ccRefIdfierPage{CGAL::triangulate_mixed_complex_3}\\
\ccRefIdfierPage{CGAL::triangulate_power_diagram_3}
%\ccRefIdfierPage{CGAL::triangulate_power_diagram_3}
\lcHtml{\subsection*{Links to the Reference Sections}}
% NGHK: TODO:
%\lcHtml{\subsection*{Links to the Reference Sections}}
%% EOF %%

View File

@ -28,7 +28,7 @@
\input{Skin_surface_3_ref/Skin_surface_traits_3.tex}
\input{Skin_surface_3_ref/triangulate_mixed_complex_3.tex}
\input{Skin_surface_3_ref/triangulate_power_diagram_3.tex}
%\input{Skin_surface_3_ref/triangulate_power_diagram_3.tex}
\input{Skin_surface_3_ref/Triangulated_mixed_complex_3.tex}
\input{Skin_surface_3_ref/Triangulated_mixed_complex_cell_3.tex}
\input{Skin_surface_3_ref/TriangulatedMixedComplexObserver_3.tex}
@ -36,5 +36,5 @@
\input{Skin_surface_3_ref/Triangulation_incremental_builder_3.tex}
\input{Skin_surface_3_ref/Triangulation_simplex_3.tex}
\input{Skin_surface_3_ref/Voronoi_triangulator_3.tex}
%\input{Skin_surface_3_ref/Voronoi_triangulator_3.tex}
%% EOF

View File

@ -38,6 +38,16 @@ The output is a \ccc{Polyhedron_3} and is constructed using the
\ccInclude{CGAL/marching_tetrahedra_3.h}
\ccParameters The first template argument defines the type of the
triangulation that forms the input for the marching tetrahedra
algorithm. The second parameter is the type of the polyhedral mesh in
which the extracted surface is stored. The third template argument is
a model of the \ccc{MarchingTetrahedraTraits_3} concept and defines
which vertices lie inside and which outside the surface. It also
provides a function to obtain a vertex from the intersection of an
edge with the surface. The last template argument is a model of the
\ccc{MarchingTetrahedraObserver_3} concept.
\ccGlobalFunction{
template <class Triangulation_3,
class Polyhedron_3,

View File

@ -13,14 +13,31 @@
\begin{ccRefFunction}{triangulate_mixed_complex_3}
\ccDefinition
\ccDefinition The global function \ccRefName\ takes a regular
triangulation as input and constructs the triangulated mixed
complex, as described in \cite{kv-mssct-05}. It deals with all
degeneracies.
\ccInclude{CGAL/triangulate_mixed_complex_3.h}
\ccParameters
%
The first template argument \ccc{SkinSurfaceTraits_3} is a model of
the \ccc{SkinSurfaceTraits_3} concept. It defines the shrink factor
and is used for the construction of the vertices of the mixed complex
from centers of Delaunay simplices and Voronoi cells.
The second template argument is the type of the Regular triangulation
from which the triangulated mixed complex is computed and the last
template argument is the type of the triangulation in which the
triangulated mixed complex is stored.
\ccThree{voidx }{x}{}
\ccThreeToTwo
\ccGlobalFunction{
const template <
template <
class SkinSurfaceTraits_3,
class Regular_3,
class TriangulatedMixedComplex_3>

View File

@ -2,3 +2,6 @@ TODO.txt
examples/Skin_surface_3/union_of_balls_simple.C
include/CGAL/union_of_balls_3.h
include/CGAL/Voronoi_triangulator_3.h
include/CGAL/triangulate_power_diagram_3.h
doc_tex/Skin_surface_3_ref/triangulate_power_diagram_3.tex
doc_tex/Skin_surface_3_ref/Voronoi_triangulator_3.tex

View File

@ -27,12 +27,6 @@
#include <CGAL/Regular_triangulation_euclidean_traits_3.h>
// Contains the weighted converter:
#include <CGAL/Regular_triangulation_filtered_traits_3.h>
//#include <CGAL/Regular_triangulation_3.h>
//#include <CGAL/Skin_surface_simplicial_complex_3.h>
//#include <CGAL/Polyhedron_3.h>
//#include <CGAL/Skin_surface_polyhedral_items_3.h>
CGAL_BEGIN_NAMESPACE
@ -114,6 +108,7 @@ public:
return P2T_converter();
}
// NGHK: Not in current implementation
// template <class Kernel>
// Construct_weighted_circumcenter_3<
// Regular_triangulation_euclidean_traits_3<Kernel> >
@ -122,22 +117,25 @@ public:
// construct_weighted_circumcenter_3_object();
// }
template <class Kernel>
In_smallest_orthogonal_sphere_3<
Regular_triangulation_euclidean_traits_3<Kernel> >
in_smallest_orthogonal_sphere_3_object() const {
return Regular_triangulation_euclidean_traits_3<Kernel>().
in_smallest_orthogonal_sphere_3_object();
// NGHK: Not in current implementation
// template <class Kernel>
// In_smallest_orthogonal_sphere_3<
// Regular_triangulation_euclidean_traits_3<Kernel> >
// in_smallest_orthogonal_sphere_3_object() const {
// return Regular_triangulation_euclidean_traits_3<Kernel>().
// in_smallest_orthogonal_sphere_3_object();
// }
Regular_RT shrink_factor() const {
return shrink;
}
Construct_anchor_point_3
construct_anchor_point_3_object() const {
return Construct_anchor_point_3(r2t_converter_object()(shrink) );
}
Regular_RT shrink_factor() const {
return shrink;
}
private:
Regular_RT shrink;
};

View File

@ -30,7 +30,7 @@
CGAL_BEGIN_NAMESPACE
template < class GT,
class Polyhedron_3Kernel,
class SurfaceKernel,
class Cb = Triangulation_cell_base_3<GT> >
class Triangulated_mixed_complex_cell_3 : public Cb
{
@ -39,13 +39,13 @@ public:
typedef typename Triangulation_data_structure::Vertex_handle Vertex_handle;
typedef typename Triangulation_data_structure::Cell_handle Cell_handle;
typedef Polyhedron_3Kernel Polyhedron_3_kernel;
typedef SurfaceKernel Surface_kernel;
typedef Skin_surface_quadratic_surface_3<Polyhedron_3_kernel> QuadrSurface;
template < class TDS2 >
struct Rebind_TDS {
typedef typename Cb::template Rebind_TDS<TDS2>::Other Cb2;
typedef Triangulated_mixed_complex_cell_3<GT, Polyhedron_3Kernel, Cb2>
typedef Triangulated_mixed_complex_cell_3<GT, Surface_kernel, Cb2>
Other;
};