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


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

Inheritance diagram for Open\+Mesh\+:\+:Decimater\+:\+:Mc\+DecimaterT$<$ MeshT $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{classOpenMesh_1_1Decimater_1_1McDecimaterT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a5950abd4cad1bf61e0e0a9daba42d3ce}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a5950abd4cad1bf61e0e0a9daba42d3ce}} 
typedef \hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT}{Mc\+DecimaterT}$<$ MeshT $>$ {\bfseries Self}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a3054af0c7659c3f27f693018b131cd0c}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a3054af0c7659c3f27f693018b131cd0c}} 
typedef MeshT {\bfseries Mesh}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a8cff5875e1e456667f0ca05420ca3e92}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a8cff5875e1e456667f0ca05420ca3e92}} 
typedef \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+InfoT}$<$ MeshT $>$ {\bfseries Collapse\+Info}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a6501d09092b4df14a3e46a7a161f9337}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a6501d09092b4df14a3e46a7a161f9337}} 
typedef \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Mod\+BaseT}$<$ MeshT $>$ {\bfseries Module}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_ad056e5c852766bec7e05d23f59c1b9ba}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_ad056e5c852766bec7e05d23f59c1b9ba}} 
typedef std\+::vector$<$ \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Module} $\ast$$>$ {\bfseries Module\+List}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a6dc3f96d74cf75d323ea940027e3974d}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a6dc3f96d74cf75d323ea940027e3974d}} 
typedef Module\+List\+::iterator {\bfseries Module\+List\+Iterator}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_afe1195415c6af21ccf2a887311f049ed}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_afe1195415c6af21ccf2a887311f049ed}} 
\hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT_afe1195415c6af21ccf2a887311f049ed}{Mc\+DecimaterT} (Mesh \&\+\_\+mesh)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a61aed0a3dbbe2d939c2a99e5f3533454}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a61aed0a3dbbe2d939c2a99e5f3533454}} 
\hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT_a61aed0a3dbbe2d939c2a99e5f3533454}{$\sim$\+Mc\+DecimaterT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT_a970cfba9e739a07ff77fa1969e97ad82}{decimate} (size\+\_\+t \+\_\+n\+\_\+collapses)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_acdaedd58779309579511a37ff4520e54}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_acdaedd58779309579511a37ff4520e54}} 
size\+\_\+t \hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT_acdaedd58779309579511a37ff4520e54}{decimate\+\_\+to} (size\+\_\+t \+\_\+n\+\_\+vertices)
\begin{DoxyCompactList}\small\item\em Decimate to target complexity, returns number of collapses. \end{DoxyCompactList}\item 
size\+\_\+t \hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT_a24b41676c8b93a5587a2bb36dbfb0b94}{decimate\+\_\+to\+\_\+faces} (size\+\_\+t \+\_\+n\+\_\+vertices=0, size\+\_\+t \+\_\+n\+\_\+faces=0)
\item 
size\+\_\+t \hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT_abb7c3b986b8319da869023e2c1dfc44b}{decimate\+\_\+constraints\+\_\+only} (float \+\_\+factor)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_ac5d8a59149367a5e8494b352d505c062}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_ac5d8a59149367a5e8494b352d505c062}} 
size\+\_\+t {\bfseries samples} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a9ffdd544cc357da5ab7df13238426987}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a9ffdd544cc357da5ab7df13238426987}} 
void {\bfseries set\+\_\+samples} (const size\+\_\+t \+\_\+value)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a62f9d47a4990ba4a1c78ba422c9aa0b8}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a62f9d47a4990ba4a1c78ba422c9aa0b8}} 
Mesh \& {\bfseries mesh\+\_\+}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a07041ed7dd207a11caac2013b0d86185}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a07041ed7dd207a11caac2013b0d86185}} 
size\+\_\+t {\bfseries random\+Samples\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


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

Multiple choice decimater framework \begin{DoxySeeAlso}{See also}
Base\+ModT, \hyperlink{decimater_docu}{Mesh Decimation Framework} 
\end{DoxySeeAlso}


Definition at line 77 of file Mc\+Decimater\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a970cfba9e739a07ff77fa1969e97ad82}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a970cfba9e739a07ff77fa1969e97ad82}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT@{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT}!decimate@{decimate}}
\index{decimate@{decimate}!Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT@{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT}}
\subsubsection{\texorpdfstring{decimate()}{decimate()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
size\+\_\+t \hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT}{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT}$<$ Mesh $>$\+::decimate (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+n\+\_\+collapses }\end{DoxyParamCaption})}

Decimate (perform \+\_\+n\+\_\+collapses collapses). Return number of performed collapses. If \+\_\+n\+\_\+collapses is not given reduce as much as possible 

Definition at line 102 of file Mc\+Decimater\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_abb7c3b986b8319da869023e2c1dfc44b}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_abb7c3b986b8319da869023e2c1dfc44b}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT@{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT}!decimate\+\_\+constraints\+\_\+only@{decimate\+\_\+constraints\+\_\+only}}
\index{decimate\+\_\+constraints\+\_\+only@{decimate\+\_\+constraints\+\_\+only}!Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT@{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT}}
\subsubsection{\texorpdfstring{decimate\+\_\+constraints\+\_\+only()}{decimate\_constraints\_only()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
size\+\_\+t \hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT}{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT}$<$ Mesh $>$\+::decimate\+\_\+constraints\+\_\+only (\begin{DoxyParamCaption}\item[{float}]{\+\_\+factor }\end{DoxyParamCaption})}

Decimate only with constraints, while \+\_\+factor gives the percentage of the constraints that should be used 

Definition at line 369 of file Mc\+Decimater\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1McDecimaterT_a24b41676c8b93a5587a2bb36dbfb0b94}\label{classOpenMesh_1_1Decimater_1_1McDecimaterT_a24b41676c8b93a5587a2bb36dbfb0b94}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT@{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT}!decimate\+\_\+to\+\_\+faces@{decimate\+\_\+to\+\_\+faces}}
\index{decimate\+\_\+to\+\_\+faces@{decimate\+\_\+to\+\_\+faces}!Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT@{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT}}
\subsubsection{\texorpdfstring{decimate\+\_\+to\+\_\+faces()}{decimate\_to\_faces()}}
{\footnotesize\ttfamily template$<$class Mesh $>$ \\
size\+\_\+t \hyperlink{classOpenMesh_1_1Decimater_1_1McDecimaterT}{Open\+Mesh\+::\+Decimater\+::\+Mc\+DecimaterT}$<$ Mesh $>$\+::decimate\+\_\+to\+\_\+faces (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+n\+\_\+vertices = {\ttfamily 0},  }\item[{size\+\_\+t}]{\+\_\+n\+\_\+faces = {\ttfamily 0} }\end{DoxyParamCaption})}

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 226 of file Mc\+Decimater\+T\+\_\+impl.\+hh.



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