mirror of https://github.com/CGAL/cgal
add concepts of subdivision masks into the reference manual.
This commit is contained in:
parent
d229cc55c1
commit
bdb598aeb0
|
|
@ -0,0 +1,245 @@
|
|||
% +------------------------------------------------------------------------+
|
||||
% | Reference manual page: SubdivisionMask_3.tex
|
||||
% +------------------------------------------------------------------------+
|
||||
% | 03.17.2006 Andy Shiue
|
||||
% | Package: Subdivision_method_3
|
||||
% |
|
||||
\RCSdef{\RCSSubdivisionMaskRev}{$Id$}
|
||||
\RCSdefDate{\RCSSubdivisionMaskDate}{$Date$}
|
||||
|
||||
|
||||
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\ccRefPageBegin
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
\begin{ccRefConcept}{PQQMask_3}
|
||||
\label{pagePQQMaskRef}
|
||||
|
||||
Required member functions for the \ccRefName\ concept. This
|
||||
policy concept of geometric computations is used in
|
||||
\ccc{CGAL::Subdivision_method_3::PQQ<Polyhedron_3, Mask>}.
|
||||
|
||||
|
||||
%\ccTypes
|
||||
|
||||
%\ccNestedType{Point_3}{point type.}
|
||||
|
||||
\ccCreationVariable{mask}
|
||||
|
||||
\ccOperations
|
||||
\ccSetThreeColumns{facet_node}{}{\hspace*{8.5cm}}
|
||||
|
||||
\ccMethod{void facet_node(Facet_handle facet, Point_3& pt);}{
|
||||
computes the facet-point \ccc{pt} based on the neighborhood
|
||||
of the facet \ccc{f}.}
|
||||
|
||||
\ccMethod{void edge_node(Edge_handle e, Point_3& pt);}{
|
||||
computes the edge-point \ccc{pt} based on the neighborhood
|
||||
of the edge \ccc{e}.}
|
||||
|
||||
\ccMethod{void vertex_node(Vertex_handle v, Point_3& pt);}{
|
||||
computes the vertex-point \ccc{pt} based on the neighborhood
|
||||
of the vertex \ccc{v}.}
|
||||
|
||||
\ccMethod{void border_node(Halfedge_handle e, Point_3& ept, Point_3& vpt);}{
|
||||
computes the edge-point \ccc{ept} and the vertex-point \ccc{vpt}
|
||||
based on the neighborhood of the border edge \ccc{e}.}
|
||||
|
||||
\begin{ccTexOnly}
|
||||
\begin{center}
|
||||
\parbox{0.75\textwidth}{%
|
||||
\includegraphics[width=0.75\textwidth]{Subdivision_method_3_ref/FIG/CCBorderMask}%
|
||||
}
|
||||
\end{center}
|
||||
\end{ccTexOnly}
|
||||
|
||||
\begin{ccHtmlOnly}
|
||||
<CENTER>
|
||||
<img src="FIG/CCBorderMask.png" alt="PQQ stencil of border nodes"></A><P>
|
||||
</CENTER>
|
||||
\end{ccHtmlOnly}
|
||||
|
||||
\ccHasModels
|
||||
|
||||
\ccRefIdfierPage{CGAL::CatmullClark_mask_3<Polyhedron_3>}
|
||||
|
||||
\ccSeeAlso
|
||||
|
||||
\ccRefIdfierPage{CGAL::Subdivision_method_3}
|
||||
|
||||
\end{ccRefConcept}
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\ccRefPageEnd
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\ccRefPageBegin
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
\begin{ccRefConcept}{PTQMask_3}
|
||||
\label{pagePTQMaskRef}
|
||||
|
||||
Required member functions for the \ccRefName\ concept. This
|
||||
policy concept of geometric computations is used in
|
||||
\ccc{CGAL::Subdivision_method_3::PTQ<Polyhedron_3, Mask>}.
|
||||
|
||||
|
||||
%\ccTypes
|
||||
|
||||
%\ccNestedType{Point_3}{point type.}
|
||||
|
||||
\ccCreationVariable{mask}
|
||||
|
||||
\ccOperations
|
||||
\ccSetThreeColumns{facet_node}{}{\hspace*{8.5cm}}
|
||||
|
||||
\ccMethod{void edge_node(Edge_handle e, Point_3& pt);}{
|
||||
computes the edge-point \ccc{pt} based on the neighborhood
|
||||
of the edge \ccc{e}.}
|
||||
|
||||
\ccMethod{void vertex_node(Vertex_handle v, Point_3& pt);}{
|
||||
computes the vertex-point \ccc{pt} based on the neighborhood
|
||||
of the vertex \ccc{v}.}
|
||||
|
||||
\ccMethod{void border_node(Halfedge_handle e, Point_3& ept, Point_3& vpt);}{
|
||||
computes the edge-point \ccc{ept} and the vertex-point \ccc{vpt}
|
||||
based on the neighborhood of the border edge \ccc{e}.}
|
||||
|
||||
\begin{ccTexOnly}
|
||||
\begin{center}
|
||||
\parbox{0.75\textwidth}{%
|
||||
\includegraphics[width=0.75\textwidth]{Subdivision_method_3_ref/FIG/LoopBorderMask}%
|
||||
}
|
||||
\end{center}
|
||||
\end{ccTexOnly}
|
||||
|
||||
\begin{ccHtmlOnly}
|
||||
<CENTER>
|
||||
<img src="FIG/LoopBorderMask.png" alt="PTQ stencil of border nodes"></A><P>
|
||||
</CENTER>
|
||||
\end{ccHtmlOnly}
|
||||
|
||||
\ccHasModels
|
||||
|
||||
\ccRefIdfierPage{CGAL::Loop_mask_3<Polyhedron_3>}
|
||||
|
||||
\ccSeeAlso
|
||||
|
||||
\ccRefIdfierPage{CGAL::Subdivision_method_3}
|
||||
|
||||
\end{ccRefConcept}
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\ccRefPageEnd
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\ccRefPageBegin
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
\begin{ccRefConcept}{DQQMask_3}
|
||||
\label{pageDQQMaskRef}
|
||||
|
||||
Required member functions for the \ccRefName\ concept. This
|
||||
policy concept of geometric computations is used in
|
||||
\ccc{CGAL::Subdivision_method_3::DQQ<Polyhedron_3, Mask>}.
|
||||
|
||||
|
||||
%\ccTypes
|
||||
|
||||
%\ccNestedType{Point_3}{point type.}
|
||||
|
||||
\ccCreationVariable{mask}
|
||||
|
||||
\ccOperations
|
||||
\ccSetThreeColumns{facet_node}{}{\hspace*{8.5cm}}
|
||||
|
||||
\ccMethod{void corner_node(Halfedge_handle he, Point_3& pt);}{
|
||||
computes the subdivided point \ccc{pt} based on the neighborhood
|
||||
of the vertex pointed by the halfedge \ccc{he}.}
|
||||
|
||||
\begin{ccTexOnly}
|
||||
\begin{center}
|
||||
\parbox{0.55\textwidth}{%
|
||||
\includegraphics[width=0.55\textwidth]{Subdivision_method_3_ref/FIG/DSCornerMask}%
|
||||
}
|
||||
\end{center}
|
||||
\end{ccTexOnly}
|
||||
|
||||
\begin{ccHtmlOnly}
|
||||
<CENTER>
|
||||
<img src="FIG/DSCornerMask.png" alt="DQQ corner stencil"></A><P>
|
||||
</CENTER>
|
||||
\end{ccHtmlOnly}
|
||||
|
||||
\ccHasModels
|
||||
|
||||
\ccRefIdfierPage{CGAL::DooSabin_mask_3<Polyhedron_3>}
|
||||
|
||||
\ccSeeAlso
|
||||
|
||||
\ccRefIdfierPage{CGAL::Subdivision_method_3}
|
||||
|
||||
\end{ccRefConcept}
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\ccRefPageEnd
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
|
||||
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\ccRefPageBegin
|
||||
% +------------------------------------------------------------------------+
|
||||
|
||||
\begin{ccRefConcept}{Sqrt3Mask_3}
|
||||
\label{pageSqrt3MaskRef}
|
||||
|
||||
Required member functions for the \ccRefName\ concept. This
|
||||
policy concept of geometric computations is used in
|
||||
\ccc{CGAL::Subdivision_method_3::Sqrt3<Polyhedron_3, Mask>}.
|
||||
|
||||
|
||||
%\ccTypes
|
||||
|
||||
%\ccNestedType{Point_3}{point type.}
|
||||
|
||||
\ccCreationVariable{mask}
|
||||
|
||||
\ccOperations
|
||||
\ccSetThreeColumns{facet_node}{}{\hspace*{8.5cm}}
|
||||
|
||||
\ccMethod{void facet_node(Facet_handle f, Point_3& pt);}{
|
||||
computes the subdivided point \ccc{pt} based on the neighborhood
|
||||
of the facet \ccc{f}.}
|
||||
|
||||
\ccMethod{void vertex_node(Vertex_handle v, Point& pt);}{
|
||||
computes the subdivided point \ccc{pt} based on the neighborhood
|
||||
of the vertex \ccc{v}.}
|
||||
|
||||
\ccHasModels
|
||||
|
||||
\ccRefIdfierPage{CGAL::Sqrt3_mask_3<Polyhedron_3>}
|
||||
|
||||
\ccSeeAlso
|
||||
|
||||
\ccRefIdfierPage{CGAL::Subdivision_method_3}
|
||||
|
||||
\end{ccRefConcept}
|
||||
|
||||
% +------------------------------------------------------------------------+
|
||||
\ccRefPageEnd
|
||||
% +------------------------------------------------------------------------+
|
||||
|
|
@ -20,15 +20,8 @@
|
|||
Subdivision methods recursively refine the control mesh
|
||||
(i.e.~the input mesh) and generate points approximating
|
||||
the limit surface.
|
||||
%\ccc{Subdivision_method_3}
|
||||
%realizes a subdivision method as a refinement host parameterized
|
||||
%with a geometry policy. The refinement host refines the
|
||||
%control mesh, maintains the stencils, and
|
||||
%computes the geometry of the refined mesh. The computation
|
||||
%of the geometry is done through the geometry policy.
|
||||
Designed to work on the class \ccc{Polyhedron_3},
|
||||
\ccc{Subdivision_method_3} aims to be easy to use and to extend.
|
||||
%(see Chapter~\ref{chapterPolyhedron})
|
||||
\ccc{Subdivision_method_3} is not a class, but a namespace
|
||||
which consists of four popular subdivision methods and their refinement
|
||||
hosts. Supported subdivision methods include Catmull-Clark, Loop,
|
||||
|
|
@ -38,16 +31,15 @@ Variations of those methods can be easily
|
|||
extended by substituting the geometry computation of the refinement
|
||||
host.
|
||||
|
||||
%\subsection*{Concepts}
|
||||
%\ccRefIdfierPage{PolyhedronTraits_3}\\
|
||||
%\ccRefIdfierPage{PolyhedronItems_3}
|
||||
\subsection*{Concepts}
|
||||
\ccRefIdfierPage{PQQMask_3}\\
|
||||
\ccRefIdfierPage{PTQMask_3}\\
|
||||
\ccRefIdfierPage{DQQMask_3}\\
|
||||
\ccRefIdfierPage{Sqrt3Mask_3}
|
||||
|
||||
\subsection*{Classes}
|
||||
|
||||
\ccRefIdfierPage{CGAL::Subdivision_method_3}\\
|
||||
%\ccRefIdfierPage{CGAL::PQQ_stencil_3<Polyhedron_3>}\\
|
||||
%\ccRefIdfierPage{CGAL::DQQ_stencil_3<Polyhedron_3>}\\
|
||||
%\ccRefIdfierPage{CGAL::Linear_mask_3<Polyhedron_3>}\\
|
||||
\ccRefIdfierPage{CGAL::CatmullClark_mask_3<Polyhedron_3>}\\
|
||||
\ccRefIdfierPage{CGAL::Loop_mask_3<Polyhedron_3>}\\
|
||||
\ccRefIdfierPage{CGAL::DooSabin_mask_3<Polyhedron_3>}\\
|
||||
|
|
|
|||
|
|
@ -8,5 +8,6 @@
|
|||
\input{Subdivision_method_3_ref/intro.tex}
|
||||
|
||||
\input{Subdivision_method_3_ref/Subdivision_method_3.tex}
|
||||
\input{Subdivision_method_3_ref/SubdivisionMask_3.tex}
|
||||
\input{Subdivision_method_3_ref/Subdivision_mask_3.tex}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue