\hypertarget{a00482}{\section{Open\+Mesh\+:\+:Decimater\+:\+:Decimater\+T$<$ Mesh\+T $>$ Class Template Reference}
\label{a00482}\index{Open\+Mesh\+::\+Decimater\+::\+Decimater\+T$<$ Mesh\+T $>$@{Open\+Mesh\+::\+Decimater\+::\+Decimater\+T$<$ Mesh\+T $>$}}
}


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

Inheritance diagram for Open\+Mesh\+:\+:Decimater\+:\+:Decimater\+T$<$ Mesh\+T $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{a00482}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{a00689}{Heap\+Interface}
\begin{DoxyCompactList}\small\item\em Heap interface. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00482_a56387852bafbda2cd245b08ea2d0008e}{typedef \hyperlink{a00482}{Decimater\+T}$<$ Mesh\+T $>$ {\bfseries Self}}\label{a00482_a56387852bafbda2cd245b08ea2d0008e}

\item 
\hypertarget{a00482_a3c5207a20bd2e5adfd2bb35f82719694}{typedef Mesh\+T {\bfseries Mesh}}\label{a00482_a3c5207a20bd2e5adfd2bb35f82719694}

\item 
\hypertarget{a00482_ac4bc78e9bb2a26693eda5ad817dd8308}{typedef \hyperlink{a00417}{Collapse\+Info\+T}$<$ Mesh\+T $>$ {\bfseries Collapse\+Info}}\label{a00482_ac4bc78e9bb2a26693eda5ad817dd8308}

\item 
\hypertarget{a00482_a2c16ba0c94ecaa849bfdfa31148ac5ff}{typedef \hyperlink{a00846}{Mod\+Base\+T}$<$ Mesh\+T $>$ {\bfseries Module}}\label{a00482_a2c16ba0c94ecaa849bfdfa31148ac5ff}

\item 
\hypertarget{a00482_a0846b1d3f4ac5dc6a1aa32a9e7efc7b6}{typedef std\+::vector$<$ \hyperlink{a00846}{Module} $\ast$ $>$ {\bfseries Module\+List}}\label{a00482_a0846b1d3f4ac5dc6a1aa32a9e7efc7b6}

\item 
\hypertarget{a00482_a7d925514a38016c7bd90b4047655f0cc}{typedef Module\+List\+::iterator {\bfseries Module\+List\+Iterator}}\label{a00482_a7d925514a38016c7bd90b4047655f0cc}

\item 
\hypertarget{a00482_a45a4df1d970e4d3ed619029ea80fe30f}{typedef \hyperlink{a00994_a0fc18e13d70825938274e3faf7b55e01}{Mesh\+::\+Vertex\+Handle} {\bfseries Vertex\+Handle}}\label{a00482_a45a4df1d970e4d3ed619029ea80fe30f}

\item 
\hypertarget{a00482_a6214e337d0b42e74ef2f8ec93b67319d}{typedef Mesh\+::\+Halfedge\+Handle {\bfseries Halfedge\+Handle}}\label{a00482_a6214e337d0b42e74ef2f8ec93b67319d}

\item 
\hypertarget{a00482_a22d1340e2ee838d396a6aba82135e4c9}{typedef \hyperlink{a00692}{Utils\+::\+Heap\+T}\\*
$<$ Vertex\+Handle, \hyperlink{a00689}{Heap\+Interface} $>$ {\bfseries Deci\+Heap}}\label{a00482_a22d1340e2ee838d396a6aba82135e4c9}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00482_acf185e9dd3958b8634d26ff322f80685}{\hyperlink{a00482_acf185e9dd3958b8634d26ff322f80685}{Decimater\+T} (Mesh \&\+\_\+mesh)}\label{a00482_acf185e9dd3958b8634d26ff322f80685}

\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\hypertarget{a00482_a6d1b1b6855f42b5501860ae79cf6be64}{\hyperlink{a00482_a6d1b1b6855f42b5501860ae79cf6be64}{$\sim$\+Decimater\+T} ()}\label{a00482_a6d1b1b6855f42b5501860ae79cf6be64}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{a00482_ae68360f349a3aeb6b8a01a7ea4af7ea3}{decimate} (size\+\_\+t \+\_\+n\+\_\+collapses=0)
\item 
\hypertarget{a00482_a314edcd690ba54b6b77dde411e04262a}{size\+\_\+t \hyperlink{a00482_a314edcd690ba54b6b77dde411e04262a}{decimate\+\_\+to} (size\+\_\+t \+\_\+n\+\_\+vertices)}\label{a00482_a314edcd690ba54b6b77dde411e04262a}

\begin{DoxyCompactList}\small\item\em Decimate to target complexity, returns number of collapses. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{a00482_a3f9e5d0abce8d73b67cf2bbf17700241}{decimate\+\_\+to\+\_\+faces} (size\+\_\+t \+\_\+n\+\_\+vertices=0, size\+\_\+t \+\_\+n\+\_\+faces=0)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00482_acd2b69b6a3b88dbf0101fbfeae159d56}{void \hyperlink{a00482_acd2b69b6a3b88dbf0101fbfeae159d56}{heap\+\_\+vertex} (Vertex\+Handle \+\_\+vh)}\label{a00482_acd2b69b6a3b88dbf0101fbfeae159d56}

\begin{DoxyCompactList}\small\item\em Insert vertex in heap. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00482_aaab160b1cbac28224c0dabad3e9e4a86}{Mesh \& {\bfseries mesh\+\_\+}}\label{a00482_aaab160b1cbac28224c0dabad3e9e4a86}

\item 
\hypertarget{a00482_abf2ae2393079252a91fb92e97c000d8e}{std\+::auto\+\_\+ptr$<$ \hyperlink{a00692}{Deci\+Heap} $>$ {\bfseries heap\+\_\+}}\label{a00482_abf2ae2393079252a91fb92e97c000d8e}

\item 
\hypertarget{a00482_afc4ac5d19eee29486d978bedabb7aa90}{\hyperlink{a01470}{V\+Prop\+Handle\+T}$<$ Halfedge\+Handle $>$ {\bfseries collapse\+\_\+target\+\_\+}}\label{a00482_afc4ac5d19eee29486d978bedabb7aa90}

\item 
\hypertarget{a00482_adba6cfc18a298bf79d2beec75baab5f8}{\hyperlink{a01470}{V\+Prop\+Handle\+T}$<$ float $>$ {\bfseries priority\+\_\+}}\label{a00482_adba6cfc18a298bf79d2beec75baab5f8}

\item 
\hypertarget{a00482_a9a42a852c0916e848b596b5a84f30992}{\hyperlink{a01470}{V\+Prop\+Handle\+T}$<$ int $>$ {\bfseries heap\+\_\+position\+\_\+}}\label{a00482_a9a42a852c0916e848b596b5a84f30992}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Mesh\+T$>$class Open\+Mesh\+::\+Decimater\+::\+Decimater\+T$<$ Mesh\+T $>$}

\hyperlink{a03371}{Decimater} framework. \begin{DoxySeeAlso}{See also}
Base\+Mod\+T, \hyperlink{decimater_docu}{Mesh Decimation Framework} 
\end{DoxySeeAlso}


Definition at line 83 of file Decimater\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00482_ae68360f349a3aeb6b8a01a7ea4af7ea3}{\index{Open\+Mesh\+::\+Decimater\+::\+Decimater\+T@{Open\+Mesh\+::\+Decimater\+::\+Decimater\+T}!decimate@{decimate}}
\index{decimate@{decimate}!Open\+Mesh\+::\+Decimater\+::\+Decimater\+T@{Open\+Mesh\+::\+Decimater\+::\+Decimater\+T}}
\subsubsection[{decimate}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh $>$ size\+\_\+t {\bf Open\+Mesh\+::\+Decimater\+::\+Decimater\+T}$<$ Mesh $>$\+::decimate (
\begin{DoxyParamCaption}
\item[{size\+\_\+t}]{\+\_\+n\+\_\+collapses = {\ttfamily 0}}
\end{DoxyParamCaption}
)}}\label{a00482_ae68360f349a3aeb6b8a01a7ea4af7ea3}
Decimate (perform \+\_\+n\+\_\+collapses collapses). Return number of performed collapses. If \+\_\+n\+\_\+collapses is not given reduce as much as possible 

Definition at line 156 of file Decimater\+T.\+cc.

\hypertarget{a00482_a3f9e5d0abce8d73b67cf2bbf17700241}{\index{Open\+Mesh\+::\+Decimater\+::\+Decimater\+T@{Open\+Mesh\+::\+Decimater\+::\+Decimater\+T}!decimate\+\_\+to\+\_\+faces@{decimate\+\_\+to\+\_\+faces}}
\index{decimate\+\_\+to\+\_\+faces@{decimate\+\_\+to\+\_\+faces}!Open\+Mesh\+::\+Decimater\+::\+Decimater\+T@{Open\+Mesh\+::\+Decimater\+::\+Decimater\+T}}
\subsubsection[{decimate\+\_\+to\+\_\+faces}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh $>$ size\+\_\+t {\bf Open\+Mesh\+::\+Decimater\+::\+Decimater\+T}$<$ Mesh $>$\+::decimate\+\_\+to\+\_\+faces (
\begin{DoxyParamCaption}
\item[{size\+\_\+t}]{\+\_\+n\+\_\+vertices = {\ttfamily 0}, }
\item[{size\+\_\+t}]{\+\_\+n\+\_\+faces = {\ttfamily 0}}
\end{DoxyParamCaption}
)}}\label{a00482_a3f9e5d0abce8d73b67cf2bbf17700241}
Decimate to target complexity (vertices and faces). Stops when the number of vertices or the number of faces is reached. Returns number of performed collapses. 

Definition at line 260 of file Decimater\+T.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\hyperlink{a02019}{Decimater\+T.\+hh}\item 
libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\hyperlink{a02018}{Decimater\+T.\+cc}\end{DoxyCompactItemize}
