\hypertarget{a01257}{\section{Open\+Mesh\+:\+:Subdivider\+:\+:Uniform\+:\+:Subdivider\+T$<$ Mesh\+Type, Real\+Type $>$ Class Template Reference}
\label{a01257}\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T$<$ Mesh\+Type, Real\+Type $>$@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T$<$ Mesh\+Type, Real\+Type $>$}}
}


{\ttfamily \#include $<$libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Uniform/\+Subdivider\+T.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:Subdivider\+:\+:Uniform\+:\+:Subdivider\+T$<$ Mesh\+Type, Real\+Type $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=0.680851cm]{a01257}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01257_acc900fcb30e4243ecb60ee270ae9fd22}{typedef Mesh\+Type {\bfseries mesh\+\_\+t}}\label{a01257_acc900fcb30e4243ecb60ee270ae9fd22}

\item 
\hypertarget{a01257_aad89e5e754ae100ff90a1abd02095b57}{typedef Real\+Type {\bfseries real\+\_\+t}}\label{a01257_aad89e5e754ae100ff90a1abd02095b57}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01257_a89c316211e4014b0705d34a141152f4f}{virtual \hyperlink{a01257_a89c316211e4014b0705d34a141152f4f}{$\sim$\+Subdivider\+T} ()}\label{a01257_a89c316211e4014b0705d34a141152f4f}

\begin{DoxyCompactList}\small\item\em Descructor (calls \hyperlink{a01257_a5e43f1fde3bd9588b4265fe1d1be6a8d}{detach()}) \end{DoxyCompactList}\item 
\hypertarget{a01257_ab841456af600904618a0146e2ab65010}{virtual const char $\ast$ \hyperlink{a01257_ab841456af600904618a0146e2ab65010}{name} (void) const =0}\label{a01257_ab841456af600904618a0146e2ab65010}

\begin{DoxyCompactList}\small\item\em Return name of subdivision algorithm. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf Constructors}\par
\begin{DoxyCompactItemize}
\item 
\hyperlink{a01257_a89341e7a735352adbb76f6842d3fab12}{Subdivider\+T} (void)
\item 
\hyperlink{a01257_a697277667735e023a5c62b7c406a2cad}{Subdivider\+T} (Mesh\+Type \&\+\_\+m)
\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Interface 1}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{a01257_a2c3bb164d974ac4bcc9217a8368a7484}{operator()} (Mesh\+Type \&\+\_\+m, size\+\_\+t \+\_\+n, const bool \+\_\+update\+\_\+points=true)
\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Interface 2}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{a01257_a4faaaf5cdd9273b4c28ef9f2a2e942ba}{attach} (Mesh\+Type \&\+\_\+m)
\item 
bool \hyperlink{a01257_a3d294cdf55c4373e0793002dd8d86add}{operator()} (size\+\_\+t \+\_\+n, const bool \+\_\+update\+\_\+points=true)
\item 
void \hyperlink{a01257_a5e43f1fde3bd9588b4265fe1d1be6a8d}{detach} (void)
\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Protected Member Functions}
\begin{Indent}{\bf Overload theses methods}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01257_a83f6bde97d824c799cc3a2ee4f137ffb}{virtual bool \hyperlink{a01257_a83f6bde97d824c799cc3a2ee4f137ffb}{prepare} (Mesh\+Type \&\+\_\+m)=0}\label{a01257_a83f6bde97d824c799cc3a2ee4f137ffb}

\begin{DoxyCompactList}\small\item\em Prepare mesh, e.\+g. add properties. \end{DoxyCompactList}\item 
\hypertarget{a01257_aacf8b2b63d1512d3c174fbe1781ee311}{virtual bool \hyperlink{a01257_aacf8b2b63d1512d3c174fbe1781ee311}{subdivide} (Mesh\+Type \&\+\_\+m, size\+\_\+t \+\_\+n, const bool \+\_\+update\+\_\+points=true)=0}\label{a01257_aacf8b2b63d1512d3c174fbe1781ee311}

\begin{DoxyCompactList}\small\item\em Subdivide mesh {\ttfamily \+\_\+m} {\ttfamily \+\_\+n} times. \end{DoxyCompactList}\item 
\hypertarget{a01257_a0538a5d4d1a38d3cf88796ed41776651}{virtual bool \hyperlink{a01257_a0538a5d4d1a38d3cf88796ed41776651}{cleanup} (Mesh\+Type \&\+\_\+m)=0}\label{a01257_a0538a5d4d1a38d3cf88796ed41776651}

\begin{DoxyCompactList}\small\item\em Cleanup mesh after usage, e.\+g. remove added properties. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01257_a9cd607ce5c62f7134faa1ac95b14c8a0}{Mesh\+Type $\ast$ {\bfseries attached\+\_\+}}\label{a01257_a9cd607ce5c62f7134faa1ac95b14c8a0}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Mesh\+Type, typename Real\+Type = float$>$class Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T$<$ Mesh\+Type, Real\+Type $>$}

Abstract base class for uniform subdivision algorithms.

A derived class must overload the following functions\+:
\begin{DoxyEnumerate}
\item \hyperlink{a01257_ab841456af600904618a0146e2ab65010}{name()}
\item \hyperlink{a01257_a83f6bde97d824c799cc3a2ee4f137ffb}{prepare()}
\item \hyperlink{a01257_aacf8b2b63d1512d3c174fbe1781ee311}{subdivide()}
\item \hyperlink{a01257_a0538a5d4d1a38d3cf88796ed41776651}{cleanup()} 
\end{DoxyEnumerate}

Definition at line 94 of file Subdivider\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a01257_a89341e7a735352adbb76f6842d3fab12}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}!Subdivider\+T@{Subdivider\+T}}
\index{Subdivider\+T@{Subdivider\+T}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}}
\subsubsection[{Subdivider\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type  = float$>$ {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}$<$ Mesh\+Type, Real\+Type $>$\+::{\bf Subdivider\+T} (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01257_a89341e7a735352adbb76f6842d3fab12}
Constructor to be used with interface 2 \begin{DoxySeeAlso}{See also}
\hyperlink{a01257_a4faaaf5cdd9273b4c28ef9f2a2e942ba}{attach()}, operator()(size\+\_\+t), \hyperlink{a01257_a5e43f1fde3bd9588b4265fe1d1be6a8d}{detach()} 
\end{DoxySeeAlso}


Definition at line 107 of file Subdivider\+T.\+hh.

\hypertarget{a01257_a697277667735e023a5c62b7c406a2cad}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}!Subdivider\+T@{Subdivider\+T}}
\index{Subdivider\+T@{Subdivider\+T}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}}
\subsubsection[{Subdivider\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type  = float$>$ {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}$<$ Mesh\+Type, Real\+Type $>$\+::{\bf Subdivider\+T} (
\begin{DoxyParamCaption}
\item[{Mesh\+Type \&}]{\+\_\+m}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01257_a697277667735e023a5c62b7c406a2cad}
Constructor to be used with interface 1 (calls \hyperlink{a01257_a4faaaf5cdd9273b4c28ef9f2a2e942ba}{attach()}) \begin{DoxySeeAlso}{See also}
operator()( Mesh\+Type\&, size\+\_\+t ) 
\end{DoxySeeAlso}


Definition at line 111 of file Subdivider\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a01257_a4faaaf5cdd9273b4c28ef9f2a2e942ba}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}!attach@{attach}}
\index{attach@{attach}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}}
\subsubsection[{attach}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type  = float$>$ bool {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}$<$ Mesh\+Type, Real\+Type $>$\+::attach (
\begin{DoxyParamCaption}
\item[{Mesh\+Type \&}]{\+\_\+m}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01257_a4faaaf5cdd9273b4c28ef9f2a2e942ba}
Attach mesh {\ttfamily \+\_\+m} to self \begin{DoxySeeAlso}{See also}
\hyperlink{a01257_a89341e7a735352adbb76f6842d3fab12}{Subdivider\+T()}, operator()(size\+\_\+t), \hyperlink{a01257_a5e43f1fde3bd9588b4265fe1d1be6a8d}{detach()} 
\end{DoxySeeAlso}


Definition at line 138 of file Subdivider\+T.\+hh.

\hypertarget{a01257_a5e43f1fde3bd9588b4265fe1d1be6a8d}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}!detach@{detach}}
\index{detach@{detach}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}}
\subsubsection[{detach}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type  = float$>$ void {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}$<$ Mesh\+Type, Real\+Type $>$\+::detach (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01257_a5e43f1fde3bd9588b4265fe1d1be6a8d}
Detach an eventually attached mesh. \begin{DoxySeeAlso}{See also}
\hyperlink{a01257_a89341e7a735352adbb76f6842d3fab12}{Subdivider\+T()}, \hyperlink{a01257_a4faaaf5cdd9273b4c28ef9f2a2e942ba}{attach()}, operator()(size\+\_\+t) 
\end{DoxySeeAlso}


Definition at line 161 of file Subdivider\+T.\+hh.

\hypertarget{a01257_a2c3bb164d974ac4bcc9217a8368a7484}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}!operator()@{operator()}}
\index{operator()@{operator()}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type  = float$>$ bool {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}$<$ Mesh\+Type, Real\+Type $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{Mesh\+Type \&}]{\+\_\+m, }
\item[{size\+\_\+t}]{\+\_\+n, }
\item[{const bool}]{\+\_\+update\+\_\+points = {\ttfamily true}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01257_a2c3bb164d974ac4bcc9217a8368a7484}
Subdivide the mesh {\ttfamily \+\_\+m} {\ttfamily \+\_\+n} times. \begin{DoxySeeAlso}{See also}
\hyperlink{a01257_a697277667735e023a5c62b7c406a2cad}{Subdivider\+T(\+Mesh\+Type\&)} 
\end{DoxySeeAlso}


Definition at line 128 of file Subdivider\+T.\+hh.

\hypertarget{a01257_a3d294cdf55c4373e0793002dd8d86add}{\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}!operator()@{operator()}}
\index{operator()@{operator()}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}}
\subsubsection[{operator()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+Type , typename Real\+Type  = float$>$ bool {\bf Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T}$<$ Mesh\+Type, Real\+Type $>$\+::operator() (
\begin{DoxyParamCaption}
\item[{size\+\_\+t}]{\+\_\+n, }
\item[{const bool}]{\+\_\+update\+\_\+points = {\ttfamily true}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a01257_a3d294cdf55c4373e0793002dd8d86add}
Subdivide the attached {\ttfamily \+\_\+n} times. \begin{DoxySeeAlso}{See also}
\hyperlink{a01257_a89341e7a735352adbb76f6842d3fab12}{Subdivider\+T()}, \hyperlink{a01257_a4faaaf5cdd9273b4c28ef9f2a2e942ba}{attach()}, \hyperlink{a01257_a5e43f1fde3bd9588b4265fe1d1be6a8d}{detach()} 
\end{DoxySeeAlso}


Definition at line 154 of file Subdivider\+T.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Uniform/\hyperlink{a02073}{Subdivider\+T.\+hh}\end{DoxyCompactItemize}
