From e11e9de671d11121d62def31e8ebc4a786380c77 Mon Sep 17 00:00:00 2001 From: Marc Pouget Date: Sun, 17 Sep 2006 19:48:31 +0000 Subject: [PATCH] doc! --- Ridges_3/doc_tex/Ridges_3/main.tex | 2 +- .../Ridges_3_ref/Ridge_approximation.tex | 29 ++++--- .../Ridges_3_ref/Ridge_interrogation_type.tex | 40 ++++++++++ Ridges_3/doc_tex/Ridges_3_ref/Ridge_line.tex | 61 ++++++++++++++ Ridges_3/doc_tex/Ridges_3_ref/Ridge_type.tex | 41 ++++++++++ .../TriangularPolyhedralSurface.tex | 40 ++++++++++ Ridges_3/doc_tex/Ridges_3_ref/Umbilic.tex | 68 ++++++++++++++++ .../Ridges_3_ref/Umbilic_approximation.tex | 80 +++++++++++++++++++ .../doc_tex/Ridges_3_ref/Umbilic_type.tex | 37 +++++++++ .../Vertex2Data_Property_Map_with_std_map.tex | 65 +++++++++++++++ .../Ridges_3_ref/Vertex2FTPropertyMap.tex | 48 +++++++++++ .../Ridges_3_ref/Vertex2VectorPropertyMap.tex | 49 ++++++++++++ Ridges_3/doc_tex/Ridges_3_ref/intro.tex | 48 +++++++++++ Ridges_3/doc_tex/Ridges_3_ref/main.tex | 13 +++ Ridges_3/examples/Ridges_3/blind.cpp | 3 +- Ridges_3/include/CGAL/Ridges.h | 9 ++- 16 files changed, 614 insertions(+), 19 deletions(-) create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/Ridge_interrogation_type.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/Ridge_line.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/Ridge_type.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/TriangularPolyhedralSurface.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/Umbilic.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/Umbilic_approximation.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/Umbilic_type.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/Vertex2Data_Property_Map_with_std_map.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/Vertex2FTPropertyMap.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/Vertex2VectorPropertyMap.tex create mode 100644 Ridges_3/doc_tex/Ridges_3_ref/intro.tex diff --git a/Ridges_3/doc_tex/Ridges_3/main.tex b/Ridges_3/doc_tex/Ridges_3/main.tex index 6da2e2b5fcc..c1c475a73b1 100644 --- a/Ridges_3/doc_tex/Ridges_3/main.tex +++ b/Ridges_3/doc_tex/Ridges_3/main.tex @@ -2,7 +2,7 @@ \label{chap:Ridges_3} %\ccChapterAuthor{Marc Pouget and Frédéric Cazals} %don't know why but sometimes it does not accept é!!!?????? -\ccChapterAuthor{Marc Pouget and Frederic Cazals} +\ccChapterAuthor{Marc Pouget and Fr\'ed\'eric Cazals} \minitoc diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Ridge_approximation.tex b/Ridges_3/doc_tex/Ridges_3_ref/Ridge_approximation.tex index 736811974fc..a4a0250ddb0 100644 --- a/Ridges_3/doc_tex/Ridges_3_ref/Ridge_approximation.tex +++ b/Ridges_3/doc_tex/Ridges_3_ref/Ridge_approximation.tex @@ -1,18 +1,19 @@ % +------------------------------------------------------------------------+ % | Reference manual page: Ridge_approximation.tex % +------------------------------------------------------------------------+ -% | 09.02.2006 Marc Pouget and Frédéric Cazals +% | 15.09.2006 Marc Pouget and Frédéric Cazals % | Package: Ridges_3 % | -\RCSdef{}{} -\RCSdefDate{}{} +\RCSdef{\RCSRidgeapproximationRev}{$Id$} +\RCSdefDate{\RCSRidgeapproximationDate}{$Date$} % | %%RefPage: end of header, begin of main body % +------------------------------------------------------------------------+ -\begin{ccRefClass}{Ridge_approximation< TriangularPolyhedralSurface, OutputIt, Vertex2FTPropertyMap , Vertex2VectorPropertyMap} - %% add template arg's if necessary +\begin{ccRefClass}{Ridge_approximation< TriangularPolyhedralSurface, OutputIt, +Vertex2FTPropertyMap , Vertex2VectorPropertyMap>} %% add template +arg's if necessary %% \ccHtmlCrossLink{} %% add further rules for cross referencing links %% \ccHtmlIndexC[class]{} %% add further index entries @@ -22,18 +23,19 @@ The class \ccRefName\ is designed to perform the approximation of ridges of a triangular polyhedral surface. -\ccInclude{CGAL/Ridge_approximation.h} +\ccInclude{CGAL/Ridges.h} \ccParameters -The class \ccRefName\ has four template parameters. Parameter +The class \ccRefName\ has four template parameters. \ccc{TriangularPolyhedralSurface} provides the surface. Parameter \ccc{OutputIt} is a stl Output Iterator which \ccc{value_type} is \ccc{CGAL::Ridge_line*}. Parameters \ccc{Vertex2FTPropertyMap} and \ccc{Vertex2VectorPropertyMap} provides the differential properties of the surface associated to its vertices. -Requirements : the types \ccc{TriangularPolyhedralSurface::Traits::FT} -and \ccc{Vertex2FTPropertyMap::value_type} must coincide; the types +Requirements (checked at compile time) : the types +\ccc{TriangularPolyhedralSurface::Traits::FT} and +\ccc{Vertex2FTPropertyMap::value_type} must coincide; the types \ccc{TriangularPolyhedralSurface::Traits::Vector_3} and \ccc{Vertex2VectorPropertyMap::value_type} must coincide; the types \ccc{TriangularPolyhedralSurface::Vertex_handle}, @@ -43,7 +45,9 @@ and \ccc{Vertex2FTPropertyMap::value_type} must coincide; the types \ccTypes %\ccNestedType{TYPE}{some nested types} -\ccEnum{ enum Tag_order {Tag_3, Tag_4};}{} +\ccEnum{ enum Tag_order {Tag_3, Tag_4};} +{Order of differential quantities used to distinguish elliptic and +hyperbolic ridges.} \ccCreation @@ -57,8 +61,9 @@ and \ccc{Vertex2FTPropertyMap::value_type} must coincide; the types Vertex2FTPropertyMap& vertex2P1_pm, Vertex2FTPropertyMap& vertex2P2_pm, Vertex2VectorPropertyMap& vertex2d1_pm, - Vertex2VectorPropertyMap& vertex2d2_pm);} -{Precondition : check if all faces of P are triangular. } + Vertex2VectorPropertyMap& vertex2d2_pm);} + {Precondition : check if all faces of P are + triangular. } %\ccOperations diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Ridge_interrogation_type.tex b/Ridges_3/doc_tex/Ridges_3_ref/Ridge_interrogation_type.tex new file mode 100644 index 00000000000..69f33179ab2 --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/Ridge_interrogation_type.tex @@ -0,0 +1,40 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Ridge_interrogation_type.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSRidgeinterrogationtypeRev}{$Id$} +\RCSdefDate{\RCSRidgeinterrogationtypeDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefEnum}{Ridge_interrogation_type} %% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[enum]{} %% add further index entries + +\ccDefinition + +The enum \ccRefName\ describes the three types of ridge lines which +can be computed by the class \ccc{Ridge_approximation}. + +\ccInclude{CGAL/Ridges.h} + +\ccGlobalEnum{enum Ridge_interrogation_type { BLUE_RIDGE, RED_RIDGE, CREST_RIDGE };} + + +\ccSeeAlso + +\ccc{Ridge_approximation}, + + +\end{ccRefEnum} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Ridge_line.tex b/Ridges_3/doc_tex/Ridges_3_ref/Ridge_line.tex new file mode 100644 index 00000000000..6855ef048c8 --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/Ridge_line.tex @@ -0,0 +1,61 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Ridge_line.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSRidgelineRev}{$Id$} +\RCSdefDate{\RCSRidgelineDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefClass}{Ridge_line} %% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[class]{} %% add further index entries + +\ccDefinition + +The class \ccRefName\ stores the description of a ridge line. + +\ccInclude{CGAL/Ridges.h} + + +\ccTypes + +\ccNestedType{typedef typename TriangularPolyhedralSurface::Traits::FT FT;}{} +\ccGlue +\ccNestedType{typedef typename TriangularPolyhedralSurface::Halfedge_handle Halfedge_handle;}{} +\ccGlue +\ccNestedType{ typedef std::pair< Halfedge_handle, FT> ridge_he;}{} + + +\ccCreation +\ccCreationVariable{ridge_line} %% choose variable name + +\ccConstructor{Ridge_line();}{default constructor.} + +\ccAccessFunctions +% +-------------------------------------------------------------- +\ccMethod{const Ridge_type line_type();}{} +\ccMethod{Ridge_type& line_type();}{} +\ccGlue +\ccMethod{const FT strength();}{} +\ccMethod{FT& strength();}{} +\ccGlue +\ccMethod{const FT sharpness();}{} +\ccMethod{FT& sharpness(); }{} + +\ccSeeAlso + +\ccc{Ridge_approximation}, + +\end{ccRefClass} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Ridge_type.tex b/Ridges_3/doc_tex/Ridges_3_ref/Ridge_type.tex new file mode 100644 index 00000000000..991d98218a8 --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/Ridge_type.tex @@ -0,0 +1,41 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Ridge_type.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSRidgetypeRev}{$Id$} +\RCSdefDate{\RCSRidgetypeDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefEnum}{Ridge_type} %% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[enum]{} %% add further index entries + +\ccDefinition + +The enum \ccRefName\ describes the types for the class \ccc{Ridge_line}. + +\ccInclude{CGAL/Ridges.h} + +\ccGlobalEnum{enum Ridge_type { NO_RIDGE, + BLUE_ELLIPTIC_RIDGE, BLUE_HYPERBOLIC_RIDGE, + BLUE_CREST_RIDGE, RED_ELLIPTIC_RIDGE, + RED_HYPERBOLIC_RIDGE, RED_CREST_RIDGE };} + + +\ccSeeAlso + +\ccc{Ridge_line} + +\end{ccRefEnum} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/TriangularPolyhedralSurface.tex b/Ridges_3/doc_tex/Ridges_3_ref/TriangularPolyhedralSurface.tex new file mode 100644 index 00000000000..7690fcac77e --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/TriangularPolyhedralSurface.tex @@ -0,0 +1,40 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: TriangularPolyhedralSurface.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSTriangularPolyhedralSurfaceRev}{$Id$} +\RCSdefDate{\RCSTriangularPolyhedralSurfaceDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefConcept}{TriangularPolyhedralSurface} + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[concept]{} %% add further index entries + +\ccDefinition + +The concept \ccRefName\ describes a polyhedral surface, based on an +edge data structure, whose faces are all triangular. + + +%\ccTypes +%FT, vertex handle ..??? +%\ccNestedType{TYPE}{some nested types} + + +\ccHasModels + +\ccc{CGAL::Polyhedron_3} with the restriction that faces are triangular. + +\end{ccRefConcept} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Umbilic.tex b/Ridges_3/doc_tex/Ridges_3_ref/Umbilic.tex new file mode 100644 index 00000000000..bebd96f3916 --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/Umbilic.tex @@ -0,0 +1,68 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Umbilic.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSUmbilicRev}{$Id$} +\RCSdefDate{\RCSUmbilicDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefClass}{Umbilic< TriangularPolyhedralSurface >} %% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[class]{} %% add further index entries + +\ccDefinition + +The class \ccRefName\ stores the description of an umbilic. + +\ccInclude{CGAL/Umbilic.h} + +\ccTypes + +\ccNestedType{ typedef typename TriangularPolyhedralSurface::Vertex_handle Vertex_handle;}{} +\ccGlue +\ccNestedType{ typedef typename TriangularPolyhedralSurface::Halfedge_handle Halfedge_handle;}{} + +\ccCreation +\ccCreationVariable{umbilic} %hoose variable name + +\ccConstructor{Umbilic(Vertex_handle v_init, + std::list contour_init);}{default constructor.} + +\ccAccessFunctions +% +-------------------------------------------------------------- +\ccMethod{const Vertex_handle vertex();}{} +\ccMethod{const Umbilic_type umbilic_type();}{} +\ccGlue +\ccMethod{Umbilic_type& umbilic_type();}{} +\ccMethod{const std::list& contour_list() ;}{} +\ccGlue +\ccMethod{std::list& contour_list();}{} + + +\ccOperations +The usual insert operator ($<<$) is provided for \ccc{Umbilic}. + +%\ccFunction{template +%std::ostream& +%operator<<(std::ostream& out_stream, const Umbilic& umbilic);} +%{Outputs umbilic location and type.} + + +\ccSeeAlso + +\ccc{Umbilic_approximation} + + +\end{ccRefClass} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Umbilic_approximation.tex b/Ridges_3/doc_tex/Ridges_3_ref/Umbilic_approximation.tex new file mode 100644 index 00000000000..8fee03f4ec7 --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/Umbilic_approximation.tex @@ -0,0 +1,80 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Umbilic_approximation.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSUmbilicapproximationRev}{$Id$} +\RCSdefDate{\RCSUmbilicapproximationDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefClass}{Umbilic_approximation< TriangularPolyhedralSurface, + OutputIt, Vertex2FTPropertyMap, Vertex2VectorPropertyMap > } %% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[class]{} %% add further index entries + +\ccDefinition + +The class \ccRefName\ is designed to perform the approximation of +umbilics on a triangular polyhedral surface. + + +\ccInclude{CGAL/Umbilic.h} + +\ccParameters +The class \ccRefName\ has four template parameters. +\ccc{TriangularPolyhedralSurface} provides the surface. +Parameter \ccc{OutputIt} is a stl Output Iterator which +\ccc{value_type} is \ccc{CGAL::Umbilic*}. Parameters \ccc{Vertex2FTPropertyMap} +and \ccc{Vertex2VectorPropertyMap} provides the differential properties of +the surface associated to its vertices. + +Requirements (checked at compile time) : the types +\ccc{TriangularPolyhedralSurface::Traits::FT} and +\ccc{Vertex2FTPropertyMap::value_type} must coincide; the types +\ccc{TriangularPolyhedralSurface::Traits::Vector_3} and +\ccc{Vertex2VectorPropertyMap::value_type} must coincide; the types +\ccc{TriangularPolyhedralSurface::Vertex_handle}, +\ccc{Vertex2FTPropertyMap::key_type} and +\ccc{Vertex2VectorPropertyMap::key_type} must coincide; + + +\ccTypes + +\ccNestedType{ typedef typename TriangularPolyhedralSurface::Traits::FT FT;}{} + +\ccCreation +\ccCreationVariable{umbilic_approximation} %% choose variable name + +\ccConstructor{Umbilic_approximation(TriangularPolyhedralSurface &P, + Vertex2FTPropertyMap vertex2k1_pm, Vertex2FTPropertyMap vertex2k2_pm, + Vertex2VectorPropertyMap vertex2d1_pm, Vertex2VectorPropertyMap vertex2d2_pm);} + {default constructor.} + +\ccOperations + +\ccMethod{ OutputIt compute(OutputIt it, FT size);} +{Performs the approximation, \ccc{size} determines the size of the +patches around vertices which is \ccc{size} times the size of the +1-ring. Umbilics are output through the \ccc{OutputIt} which is an +concept of output iterator of the stl with value type \ccc{Umbilic*}.} + +\ccSeeAlso + +\ccc{Umbilic}. +\ccc{TriangularPolyhedralSurface} +\ccc{Vertex2FTPropertyMap} +\ccc{Vertex2VectorPropertyMap} + + +\end{ccRefClass} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Umbilic_type.tex b/Ridges_3/doc_tex/Ridges_3_ref/Umbilic_type.tex new file mode 100644 index 00000000000..652b67beef5 --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/Umbilic_type.tex @@ -0,0 +1,37 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Umbilic_type.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSUmbilictypeRev}{$Id$} +\RCSdefDate{\RCSUmbilictypeDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefEnum}{Umbilic_type} %% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[enum]{} %% add further index entries + +\ccDefinition + +The enum \ccRefName\ describes the types for the class \ccc{Umbilic}. + +\ccInclude{CGAL/Umbilic.h} + +\ccGlobalEnum{enum Umbilic_type { UMBILIC_NON_GENERIC, UMBILIC_WEDGE, UMBILIC_TRISECTOR };} + + +\ccSeeAlso + +\ccc{Umbilic}. +\end{ccRefEnum} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Vertex2Data_Property_Map_with_std_map.tex b/Ridges_3/doc_tex/Ridges_3_ref/Vertex2Data_Property_Map_with_std_map.tex new file mode 100644 index 00000000000..67e417af91e --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/Vertex2Data_Property_Map_with_std_map.tex @@ -0,0 +1,65 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Vertex2Data_Property_Map_with_std_map.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSVertexDataPropertyMapwithstdmapRev}{$Id$} +\RCSdefDate{\RCSVertexDataPropertyMapwithstdmapDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefClass}{Vertex2Data_Property_Map_with_std_map < TriangularPolyhedralSurface >} %% add template arg's if necessary + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[class]{} %% add further index entries + +\ccDefinition + +The class \ccRefName\ provides models for the concepts +\ccc{Vertex2FTPropertyMap} and \ccc{Vertex2VectorPropertyMap} to be used for +\ccc{Ridge_approximation}. The property maps are +created with the \ccc{boost::associative_property_map} adaptor from +\ccc{std::map}. + +\ccInclude{CGAL/Ridges.h} + + +\ccTypes + +\ccNestedType{ typedef typename TriangularPolyhedralSurface::Traits::FT FT;}{} +\ccGlue +\ccNestedType{ typedef typename TriangularPolyhedralSurface::Traits::Vector_3 Vector_3;}{} +\ccGlue +\ccNestedType{ typedef typename TriangularPolyhedralSurface::Vertex_handle Vertex_handle;}{} +\ccStruct{ struct Vertex_cmp{bool operator();};}{} + +\ccNestedType{ typedef std::map Vertex2FT_map;}{} +\ccGlue +\ccNestedType{ typedef boost::associative_property_map< Vertex2FT_map > Vertex2FT_property_map;}{} +\ccNestedType{ typedef std::map Vertex2Vector_map;}{} +\ccGlue +\ccNestedType{ typedef boost::associative_property_map< Vertex2Vector_map > Vertex2Vector_property_map;}{} + + + +\ccIsModel + +\ccc{Vertex2FT_property_map} is model of \ccc{Vertex2FTPropertyMap}. + +\ccc{Vertex2Vector_property_map} is model of \ccc{Vertex2VectorPropertyMap}. + + +\ccSeeAlso + +\ccc{Ridge_approximation} + +\end{ccRefClass} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Vertex2FTPropertyMap.tex b/Ridges_3/doc_tex/Ridges_3_ref/Vertex2FTPropertyMap.tex new file mode 100644 index 00000000000..e2aad11dfe7 --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/Vertex2FTPropertyMap.tex @@ -0,0 +1,48 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Vertex2FTPropertyMap.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSVertexFTPropertyMapRev}{$Id$} +\RCSdefDate{\RCSVertexFTPropertyMapDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefConcept}{Vertex2FTPropertyMap} + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[concept]{} %% add further index entries + +\ccDefinition + +The concept \ccRefName\ specializes the concept of LvaluePropertyMap +of the Boost library. It is intended to be used in combination with +the concept \ccc{TriangularPolyhedralSurface} in the class +\ccc{Ridge_approximation}. It associates a field type value +\ccc{TriangularPolyhedralSurface::Traits::FT} to keys which are +\ccc{TriangularPolyhedralSurface::Vertex_handle}. + + +%\ccTypes +%value and key?? +%\ccNestedType{TYPE}{some nested types} + +\ccHasModels + +\ccc{Vertex2Data_Property_Map_with_std_map::Vertex2FT_property_map}, + +\ccSeeAlso + +\ccc{TriangularPolyhedralSurface}. + + +\end{ccRefConcept} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/Vertex2VectorPropertyMap.tex b/Ridges_3/doc_tex/Ridges_3_ref/Vertex2VectorPropertyMap.tex new file mode 100644 index 00000000000..323a04bb9c7 --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/Vertex2VectorPropertyMap.tex @@ -0,0 +1,49 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: Vertex2VectorPropertyMap.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSVertexVectorPropertyMapRev}{$Id$} +\RCSdefDate{\RCSVertexVectorPropertyMapDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + + +\begin{ccRefConcept}{Vertex2VectorPropertyMap} + +%% \ccHtmlCrossLink{} %% add further rules for cross referencing links +%% \ccHtmlIndexC[concept]{} %% add further index entries + +\ccDefinition + + +The concept \ccRefName\ specializes the concept of LvaluePropertyMap +of the Boost library. It is intended to be used in combination with +the concept \ccc{TriangularPolyhedralSurface} in the class +\ccc{Ridge_approximation}. It associates a three dimensional vector +\ccc{TriangularPolyhedralSurface::Traits::Vector_3} to keys which are +\ccc{TriangularPolyhedralSurface::Vertex_handle}. + + +%\ccTypes +%value and key?? +%\ccNestedType{TYPE}{some nested types} + +\ccHasModels + +\ccc{Vertex2Data_Property_Map_with_std_map::Vertex2Vector_property_map}, + +\ccSeeAlso + +\ccc{TriangularPolyhedralSurface}. + + +\end{ccRefConcept} + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/intro.tex b/Ridges_3/doc_tex/Ridges_3_ref/intro.tex new file mode 100644 index 00000000000..76f7b173794 --- /dev/null +++ b/Ridges_3/doc_tex/Ridges_3_ref/intro.tex @@ -0,0 +1,48 @@ +% +------------------------------------------------------------------------+ +% | Reference manual page: intro.tex +% +------------------------------------------------------------------------+ +% | 15.09.2006 Marc Pouget and Frédéric Cazals +% | Package: Ridges_3 +% | +\RCSdef{\RCSintroRev}{$Id$} +\RCSdefDate{\RCSintroDate}{$Date$} +% | +%%RefPage: end of header, begin of main body +% +------------------------------------------------------------------------+ + +\ccRefChapter{Ridges and Umbilics Extraction on Meshes} +\label{ref_chap:Ridges_3} + +\ccChapterAuthor{Marc Pouget \and Fr\'ed\'eric Cazals} + +\subsection*{Introduction} + +%\ccRequirements + + +\subsection*{Concepts} +\ccRefConceptPage{TriangularPolyhedralSurface} \\ +\ccRefConceptPage{Vertex2FTPropertyMap} \\ +\ccRefConceptPage{Vertex2VectorPropertyMap} \\ + +\subsection*{Enums} +\ccRefIdfierPage{CGAL::Ridge_interrogation_type}\\ +\ccRefIdfierPage{CGAL::Ridge_type}\\ +\ccRefIdfierPage{CGAL::Umbilic_type}\\ + +\subsection*{Classes} +\ccRefIdfierPage{CGAL::Ridge_line}\\ +\ccRefIdfierPage{CGAL::Umbilic}\\ +\ccRefIdfierPage{CGAL::Ridge_approximation}\\ +\ccRefIdfierPage{CGAL::Umbilic_approximation}\\ + +\subsection*{Global Functions} +The insert operator is overloaded for the classes \ccc{Ridge_line} and +\ccc{Umbilic}. +\ccRefIdfierPage{CGAL::operator<<}\\ + +% +------------------------------------------------------------------------+ +%%RefPage: end of main body, begin of footer +% EOF +% +------------------------------------------------------------------------+ + diff --git a/Ridges_3/doc_tex/Ridges_3_ref/main.tex b/Ridges_3/doc_tex/Ridges_3_ref/main.tex index d0c0b5841b3..ad1bfdab033 100644 --- a/Ridges_3/doc_tex/Ridges_3_ref/main.tex +++ b/Ridges_3/doc_tex/Ridges_3_ref/main.tex @@ -5,6 +5,19 @@ % | of this package. Do not edit manually, you may loose your changes. % +------------------------------------------------------------------------+ +\input{Ridges_3_ref/intro.tex} + \input{Ridges_3_ref/Ridge_approximation.tex} +\input{Ridges_3_ref/Ridge_interrogation_type.tex} +\input{Ridges_3_ref/Ridge_line.tex} +\input{Ridges_3_ref/Ridge_type.tex} +\input{Ridges_3_ref/TriangularPolyhedralSurface.tex} +\input{Ridges_3_ref/Umbilic_approximation.tex} +\input{Ridges_3_ref/Umbilic.tex} +\input{Ridges_3_ref/Umbilic_type.tex} +\input{Ridges_3_ref/Vertex2Data_Property_Map_with_std_map.tex} +\input{Ridges_3_ref/Vertex2FTPropertyMap.tex} +\input{Ridges_3_ref/Vertex2VectorPropertyMap.tex} %% EOF + diff --git a/Ridges_3/examples/Ridges_3/blind.cpp b/Ridges_3/examples/Ridges_3/blind.cpp index f35a248f6cd..59acece509c 100644 --- a/Ridges_3/examples/Ridges_3/blind.cpp +++ b/Ridges_3/examples/Ridges_3/blind.cpp @@ -299,8 +299,7 @@ int main(int argc, char *argv[]) // ridge_approximation.compute_ridges(CGAL::RED_RIDGE, ii, tag_order); //ridge_approximation.compute_ridges(CGAL::CREST_RIDGE, ii, tag_order); ridge_approximation.compute_all_ridges(ii, tag_order); - - + std::vector::iterator iter_lines = ridge_lines.begin(), iter_end = ridge_lines.end(); //OpenGL output diff --git a/Ridges_3/include/CGAL/Ridges.h b/Ridges_3/include/CGAL/Ridges.h index 4a9e7ae5e1a..a2eabc0604c 100644 --- a/Ridges_3/include/CGAL/Ridges.h +++ b/Ridges_3/include/CGAL/Ridges.h @@ -206,9 +206,9 @@ class Ridge_approximation //follow non-visited, regular, 2Xing triangles in both sens to //create a Ridge line. Each time an edge is added the strength and //sharpness(if Tag_4) are updated. - void compute_ridges(Ridge_interrogation_type r_type, - OutputIt ridge_lines_it, - Tag_order ord = Tag_3); + OutputIt compute_ridges(Ridge_interrogation_type r_type, + OutputIt ridge_lines_it, + Tag_order ord = Tag_3); protected: TriangularPolyhedralSurface* P; @@ -341,7 +341,7 @@ compute_all_ridges(OutputIt it, Tag_order ord) template < class TriangularPolyhedralSurface, class OutputIt, class Vertex2FTPropertyMap, class Vertex2VectorPropertyMap > - void Ridge_approximation< TriangularPolyhedralSurface, OutputIt, Vertex2FTPropertyMap , Vertex2VectorPropertyMap >:: +OutputIt Ridge_approximation< TriangularPolyhedralSurface, OutputIt, Vertex2FTPropertyMap , Vertex2VectorPropertyMap >:: compute_ridges(Ridge_interrogation_type r_type, OutputIt ridge_lines_it, Tag_order ord) { tag_order = ord; @@ -415,6 +415,7 @@ compute_ridges(Ridge_interrogation_type r_type, OutputIt ridge_lines_it, Tag_ord } } } + return ridge_lines_it; } template < class TriangularPolyhedralSurface, class OutputIt,