diff --git a/Skin_surface_3/doc_tex/Skin_surface_3_ref/SkinSurfaceTraits_3.tex b/Skin_surface_3/doc_tex/Skin_surface_3_ref/SkinSurfaceTraits_3.tex index a07374d5e52..2d3b4df3568 100644 --- a/Skin_surface_3/doc_tex/Skin_surface_3_ref/SkinSurfaceTraits_3.tex +++ b/Skin_surface_3/doc_tex/Skin_surface_3_ref/SkinSurfaceTraits_3.tex @@ -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}.} -\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 ¢er_del, const TMC_Point ¢er_vor);}\\ Constructs the anchor point in between the Delaunay and Voronoi @@ -80,8 +83,6 @@ \ccRefIdfierPage{CGAL::Skin_surface_traits_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} \end{ccRefConcept} diff --git a/Skin_surface_3/doc_tex/Skin_surface_3_ref/Skin_surface_traits_3.tex b/Skin_surface_3/doc_tex/Skin_surface_3_ref/Skin_surface_traits_3.tex index 1d8ede086ec..080ea27d6b0 100644 --- a/Skin_surface_3/doc_tex/Skin_surface_3_ref/Skin_surface_traits_3.tex +++ b/Skin_surface_3/doc_tex/Skin_surface_3_ref/Skin_surface_traits_3.tex @@ -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 + > 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 + > 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 + > 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 + > 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}.} - % 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 ¢er_del, const -% TMC_Point ¢er_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}.} -\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 + Construct_anchor_point_3;} {A predicate object which + provides the following function operator:\\ + \ccc{TMC_Point operator()(const TMC_Point ¢er_del, const + TMC_Point ¢er_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} diff --git a/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_3.tex b/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_3.tex index 843af482567..cd37488689e 100644 --- a/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_3.tex +++ b/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_3.tex @@ -14,7 +14,47 @@ % +------------------------------------------------------------------------+ -\begin{ccRefClass}{Triangulated_mixed_complex_3} +\begin{ccRefClass}{Triangulated_mixed_complex_3} \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, + Triangulated_mixed_complex_cell_3 >} + +\ccInheritsFrom +\ccc{CGAL::Triangulation_3} + +\ccSeeAlso +\ccRefIdfierPage{SkinSurfaceTraits_3}\\ +\ccRefIdfierPage{CGAL::Triangulated_mixed_complex_cell_3}\\ +\ccRefIdfierPage{CGAL::Triangulation_3} + + \end{ccRefClass} diff --git a/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_cell_3.tex b/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_cell_3.tex index c12c45b5411..ea09014ab87 100644 --- a/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_cell_3.tex +++ b/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_cell_3.tex @@ -14,7 +14,35 @@ % +------------------------------------------------------------------------+ -\begin{ccRefClass}{Triangulated_mixed_complex_cell_3} +\begin{ccRefClass}{Triangulated_mixed_complex_cell_3} \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}. + +\ccInheritsFrom +\ccc{Cb} + +\ccSeeAlso +\ccRefIdfierPage{CGAL::Triangulation_3}\\ +\ccRefIdfierPage{CGAL::Triangulation_cell_base_3}\\ +\ccRefIdfierPage{CGAL::Triangulated_mixed_complex_3} + \end{ccRefClass} diff --git a/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_observer_3.tex b/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_observer_3.tex index 70e2cc21a3a..6cfbe1426e0 100644 --- a/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_observer_3.tex +++ b/Skin_surface_3/doc_tex/Skin_surface_3_ref/Triangulated_mixed_complex_observer_3.tex @@ -17,4 +17,5 @@ \begin{ccRefClass}{Triangulated_mixed_complex_observer_3} \label{refTriangulatedmixedcomplexobserver} + \end{ccRefClass} diff --git a/Skin_surface_3/doc_tex/Skin_surface_3_ref/intro.tex b/Skin_surface_3/doc_tex/Skin_surface_3_ref/intro.tex index e58084dbe64..deeddc4e9a0 100644 --- a/Skin_surface_3/doc_tex/Skin_surface_3_ref/intro.tex +++ b/Skin_surface_3/doc_tex/Skin_surface_3_ref/intro.tex @@ -31,10 +31,8 @@ is customizable with the help of observer classes. \ccRefIdfierPage{CGAL::Construct_anchor_point_3} -\ccRefIdfierPage{CGAL::Marching_tetrahedra_observer_default_3}\\ -\ccRefIdfierPage{CGAL::Marching_tetrahedra_observer_skin_surface_3} +\ccRefIdfierPage{CGAL::Marching_tetrahedra_observer_default_3}\\ +\ccRefIdfierPage{CGAL::Marching_tetrahedra_observer_skin_surface_3} \ccRefIdfierPage{CGAL::Skin_surface_hyperboloid_3}\\ \ccRefIdfierPage{CGAL::Skin_surface_quadratic_surface_3}\\ @@ -48,16 +46,17 @@ is customizable with the help of observer classes. \subsubsection*{Traits classes} \ccRefIdfierPage{CGAL::Marching_tetrahedra_traits_skin_surface_3}\\ -\ccRefIdfierPage{CGAL::Skin_surface_traits_3} +\ccRefIdfierPage{CGAL::Skin_surface_traits_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 %% diff --git a/Skin_surface_3/doc_tex/Skin_surface_3_ref/main.tex b/Skin_surface_3/doc_tex/Skin_surface_3_ref/main.tex index f724c54c1ed..cc2f50cee3a 100644 --- a/Skin_surface_3/doc_tex/Skin_surface_3_ref/main.tex +++ b/Skin_surface_3/doc_tex/Skin_surface_3_ref/main.tex @@ -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 diff --git a/Skin_surface_3/doc_tex/Skin_surface_3_ref/marching_tetrahedra_3.tex b/Skin_surface_3/doc_tex/Skin_surface_3_ref/marching_tetrahedra_3.tex index ce488e7dfe5..7b3068c2be5 100644 --- a/Skin_surface_3/doc_tex/Skin_surface_3_ref/marching_tetrahedra_3.tex +++ b/Skin_surface_3/doc_tex/Skin_surface_3_ref/marching_tetrahedra_3.tex @@ -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 diff --git a/Skin_surface_3/dont_submit b/Skin_surface_3/dont_submit index 4c470e6daf7..ad18f59d57d 100644 --- a/Skin_surface_3/dont_submit +++ b/Skin_surface_3/dont_submit @@ -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 diff --git a/Skin_surface_3/include/CGAL/Skin_surface_traits_3.h b/Skin_surface_3/include/CGAL/Skin_surface_traits_3.h index 9e8a604e519..2cc8e355783 100644 --- a/Skin_surface_3/include/CGAL/Skin_surface_traits_3.h +++ b/Skin_surface_3/include/CGAL/Skin_surface_traits_3.h @@ -27,12 +27,6 @@ #include // Contains the weighted converter: #include -//#include - -//#include - -//#include -//#include CGAL_BEGIN_NAMESPACE @@ -114,6 +108,7 @@ public: return P2T_converter(); } + // NGHK: Not in current implementation // template // Construct_weighted_circumcenter_3< // Regular_triangulation_euclidean_traits_3 > @@ -122,22 +117,25 @@ public: // construct_weighted_circumcenter_3_object(); // } - template - In_smallest_orthogonal_sphere_3< - Regular_triangulation_euclidean_traits_3 > - in_smallest_orthogonal_sphere_3_object() const { - return Regular_triangulation_euclidean_traits_3(). - in_smallest_orthogonal_sphere_3_object(); + // NGHK: Not in current implementation +// template +// In_smallest_orthogonal_sphere_3< +// Regular_triangulation_euclidean_traits_3 > +// in_smallest_orthogonal_sphere_3_object() const { +// return Regular_triangulation_euclidean_traits_3(). +// 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; }; diff --git a/Skin_surface_3/include/CGAL/Triangulated_mixed_complex_cell_3.h b/Skin_surface_3/include/CGAL/Triangulated_mixed_complex_cell_3.h index c64ad1a451f..3baae5bd07b 100644 --- a/Skin_surface_3/include/CGAL/Triangulated_mixed_complex_cell_3.h +++ b/Skin_surface_3/include/CGAL/Triangulated_mixed_complex_cell_3.h @@ -30,7 +30,7 @@ CGAL_BEGIN_NAMESPACE template < class GT, - class Polyhedron_3Kernel, + class SurfaceKernel, class Cb = Triangulation_cell_base_3 > 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 QuadrSurface; template < class TDS2 > struct Rebind_TDS { typedef typename Cb::template Rebind_TDS::Other Cb2; - typedef Triangulated_mixed_complex_cell_3 + typedef Triangulated_mixed_complex_cell_3 Other; };