\hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT}{}\section{Open\+Mesh\+:\+:Decimater\+:\+:Mod\+BaseT$<$ MeshT $>$ Class Template Reference}
\label{classOpenMesh_1_1Decimater_1_1ModBaseT}\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T$<$ Mesh\+T $>$@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T$<$ Mesh\+T $>$}}


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

Inheritance diagram for Open\+Mesh\+:\+:Decimater\+:\+:Mod\+BaseT$<$ MeshT $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{classOpenMesh_1_1Decimater_1_1ModBaseT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \{ \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a77c942fb03efb3b079a916e005729d94afc88837943f46ccbf0ef35d3fcf9c5b1}{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE} = -\/1, 
\hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a77c942fb03efb3b079a916e005729d94a2b521064f4abfdfb6eb5464308b6f6e7}{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE} = 0
 \}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a859ae4de39db6d7e9d1a1ad1335fb897}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a859ae4de39db6d7e9d1a1ad1335fb897}} 
typedef MeshT {\bfseries Mesh}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a8cc9f0b0682dbead98929e929e18d2cf}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a8cc9f0b0682dbead98929e929e18d2cf}} 
typedef \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+InfoT}$<$ MeshT $>$ {\bfseries Collapse\+Info}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_ab2e5893b8418b3bbf4c88fc5cb7b75e5}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_ab2e5893b8418b3bbf4c88fc5cb7b75e5}} 
virtual \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_ab2e5893b8418b3bbf4c88fc5cb7b75e5}{$\sim$\+Mod\+BaseT} ()
\begin{DoxyCompactList}\small\item\em Virtual desctructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_add0059ed0204bb8ec2fce853d509d1aa}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_add0059ed0204bb8ec2fce853d509d1aa}} 
virtual const std\+::string \& \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_add0059ed0204bb8ec2fce853d509d1aa}{name} () const
\begin{DoxyCompactList}\small\item\em Set module\textquotesingle{}s name. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a1c102bc43acb81911c27024032b48b02}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a1c102bc43acb81911c27024032b48b02}} 
bool \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a1c102bc43acb81911c27024032b48b02}{is\+\_\+binary} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if criteria returns a binary value. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a36fbc3ecb0b707e2087aea565c5bd6b5}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a36fbc3ecb0b707e2087aea565c5bd6b5}} 
void \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a36fbc3ecb0b707e2087aea565c5bd6b5}{set\+\_\+binary} (bool \+\_\+b)
\begin{DoxyCompactList}\small\item\em Set whether module is binary or not. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a2c6972aeffef98839951846051690c0b}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a2c6972aeffef98839951846051690c0b}} 
virtual void \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a2c6972aeffef98839951846051690c0b}{initialize} ()
\begin{DoxyCompactList}\small\item\em Initialize module-\/internal stuff. \end{DoxyCompactList}\item 
virtual float \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority} (const \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+InfoT}$<$ MeshT $>$ \&)
\item 
virtual void \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a4d6aa846add0068b1e2bd7005e60edb4}{preprocess\+\_\+collapse} (const \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+InfoT}$<$ MeshT $>$ \&)
\item 
virtual void \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a9b79ddfa2e7771572dd558c928edcdeb}{postprocess\+\_\+collapse} (const \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+InfoT}$<$ MeshT $>$ \&)
\item 
virtual void \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a3f1b2156b44cff425dd758e84218f0db}{set\+\_\+error\+\_\+tolerance\+\_\+factor} (double \+\_\+factor)
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_ac434e4c53a1502b51c9bf8f79214727e}{Mod\+BaseT} (MeshT \&\+\_\+mesh, bool \+\_\+is\+\_\+binary)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a4b4ef38dac53440f7a01402a6844722a}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a4b4ef38dac53440f7a01402a6844722a}} 
MeshT \& \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a4b4ef38dac53440f7a01402a6844722a}{mesh} ()
\begin{DoxyCompactList}\small\item\em Access the mesh associated with the decimater. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a3893f0f6368f1a1fe5e37f6006d72d62}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a3893f0f6368f1a1fe5e37f6006d72d62}} 
double {\bfseries error\+\_\+tolerance\+\_\+factor\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_ab33f3f52a13c1bd550e76f25d4ad8fe8}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_ab33f3f52a13c1bd550e76f25d4ad8fe8}} 
{\bfseries Mod\+BaseT} (const \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Mod\+BaseT} \&\+\_\+cpy)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a68860c2eecdd36681979963ec3d81c01}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a68860c2eecdd36681979963ec3d81c01}} 
\hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Mod\+BaseT} \& {\bfseries operator=} (const \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Mod\+BaseT} \&)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a800b4647f1fcd4ae3267012cc55127dc}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a800b4647f1fcd4ae3267012cc55127dc}} 
MeshT \& {\bfseries mesh\+\_\+}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a5b34ac9d0af0629d8c60da7a9f8b193b}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a5b34ac9d0af0629d8c60da7a9f8b193b}} 
bool {\bfseries is\+\_\+binary\+\_\+}
\end{DoxyCompactItemize}


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

Base class for all decimation modules.

Each module has to implement this interface. To build your own module you have to
\begin{DoxyEnumerate}
\item derive from this class.
\item create the basic settings with \hyperlink{ModBaseT_8hh_ae1f2d4c274e420c0e81d52cf17cc1c5b}{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E()}.
\item override \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()}, if necessary.
\item override \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a2c6972aeffef98839951846051690c0b}{initialize()}, if necessary.
\item override \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_a9b79ddfa2e7771572dd558c928edcdeb}{postprocess\+\_\+collapse()}, if necessary.
\end{DoxyEnumerate}

A module has two major working modes\+:
\begin{DoxyEnumerate}
\item binary mode
\item non-\/binary mode
\end{DoxyEnumerate}

In the binary mode \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()} checks a constraint and returns L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE or I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE.

In the non-\/binary mode the module computes a float error value in the range \mbox{[}0, inf) and returns it. In the case a constraint has been set, e.\+g. the error must be lower than a upper bound, and the constraint is violated, \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()} must return I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE.

\begin{DoxySeeAlso}{See also}
\hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{todo__todo000028}{Todo}]\char`\"{}\+Tutorial on building a custom decimation module.\char`\"{}\end{DoxyRefDesc}


Definition at line 192 of file Mod\+Base\+T.\+hh.



\subsection{Member Enumeration Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a77c942fb03efb3b079a916e005729d94}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a77c942fb03efb3b079a916e005729d94}} 
\subsubsection{\texorpdfstring{anonymous enum}{anonymous enum}}
{\footnotesize\ttfamily template$<$typename MeshT$>$ \\
anonymous enum}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE@{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE}!Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}}\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}!I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE@{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE}}}\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a77c942fb03efb3b079a916e005729d94afc88837943f46ccbf0ef35d3fcf9c5b1}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a77c942fb03efb3b079a916e005729d94afc88837943f46ccbf0ef35d3fcf9c5b1}} 
I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE&indicates an illegal collapse \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE@{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE}!Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}}\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}!L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE@{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE}}}\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a77c942fb03efb3b079a916e005729d94a2b521064f4abfdfb6eb5464308b6f6e7}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a77c942fb03efb3b079a916e005729d94a2b521064f4abfdfb6eb5464308b6f6e7}} 
L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE&indicates a legal collapse \\
\hline

\end{DoxyEnumFields}


Definition at line 198 of file Mod\+Base\+T.\+hh.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_ac434e4c53a1502b51c9bf8f79214727e}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_ac434e4c53a1502b51c9bf8f79214727e}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}!Mod\+BaseT@{Mod\+BaseT}}
\index{Mod\+BaseT@{Mod\+BaseT}!Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}}
\subsubsection{\texorpdfstring{Mod\+Base\+T()}{ModBaseT()}}
{\footnotesize\ttfamily template$<$typename MeshT$>$ \\
\hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}$<$ MeshT $>$\+::\hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Mod\+BaseT} (\begin{DoxyParamCaption}\item[{MeshT \&}]{\+\_\+mesh,  }\item[{bool}]{\+\_\+is\+\_\+binary }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}}

Default constructor \begin{DoxySeeAlso}{See also}
\hyperlink{decimater_docu}{Mesh Decimation Framework} 
\end{DoxySeeAlso}


Definition at line 207 of file Mod\+Base\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}!collapse\+\_\+priority@{collapse\+\_\+priority}}
\index{collapse\+\_\+priority@{collapse\+\_\+priority}!Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}}
\subsubsection{\texorpdfstring{collapse\+\_\+priority()}{collapse\_priority()}}
{\footnotesize\ttfamily template$<$typename MeshT$>$ \\
virtual float \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}$<$ MeshT $>$\+::collapse\+\_\+priority (\begin{DoxyParamCaption}\item[{const \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+InfoT}$<$ MeshT $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Return collapse priority.

In the binary mode \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()} checks a constraint and returns L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE or I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE.

In the non-\/binary mode the module computes a float error value in the range \mbox{[}0, inf) and returns it. In the case a constraint has been set, e.\+g. the error must be lower than a upper bound, and the constraint is violated, \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()} must return I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE.

\begin{DoxyReturn}{Returns}
Collapse priority in the range \mbox{[}0,inf), {\ttfamily L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE} or {\ttfamily I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE}. 
\end{DoxyReturn}


Reimplemented in \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalDeviationT_aa199f3f2299fc171b332dc8fc59d543a}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalDeviationT_aa199f3f2299fc171b332dc8fc59d543a}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalFlippingT_ab5ce17cb288557dcc39588d7a8b0c9b8}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalFlippingT_ab5ce17cb288557dcc39588d7a8b0c9b8}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModHausdorffT_a4007236e4aad92985de4e5e37a088e0a}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModHausdorffT_a4007236e4aad92985de4e5e37a088e0a}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a8cca90f7cddf16a1df74ff9255412698}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a8cca90f7cddf16a1df74ff9255412698}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Tri\+Mesh $>$}, \hyperlink{classModBalancerT_a98d09d915ecb98c5e7e771175953be53}{Mod\+Balancer\+T$<$ D $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModAspectRatioT_aa6326c7103bc353b11ca2deed70551db}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModAspectRatioT_aa6326c7103bc353b11ca2deed70551db}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModQuadricT_af4ac05dd987deba4903b419bd053a3ef}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModQuadricT_af4ac05dd987deba4903b419bd053a3ef}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ D $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModQuadricT_af4ac05dd987deba4903b419bd053a3ef}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModEdgeLengthT_ac051bac3cde9afe41507514755b95d03}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Mesh\+T $>$}, and \hyperlink{classOpenMesh_1_1Decimater_1_1ModEdgeLengthT_ac051bac3cde9afe41507514755b95d03}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Tri\+Mesh $>$}.



Definition at line 245 of file Mod\+Base\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a9b79ddfa2e7771572dd558c928edcdeb}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a9b79ddfa2e7771572dd558c928edcdeb}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}!postprocess\+\_\+collapse@{postprocess\+\_\+collapse}}
\index{postprocess\+\_\+collapse@{postprocess\+\_\+collapse}!Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}}
\subsubsection{\texorpdfstring{postprocess\+\_\+collapse()}{postprocess\_collapse()}}
{\footnotesize\ttfamily template$<$typename MeshT$>$ \\
virtual void \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}$<$ MeshT $>$\+::postprocess\+\_\+collapse (\begin{DoxyParamCaption}\item[{const \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+InfoT}$<$ MeshT $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

After \+\_\+from\+\_\+vh has been collapsed into \+\_\+to\+\_\+vh, this method will be called. 

Reimplemented in \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalDeviationT_a06a7edc9ef58e548f823e8fb4549ac58}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalDeviationT_a06a7edc9ef58e548f823e8fb4549ac58}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Tri\+Mesh $>$}, \hyperlink{classModBalancerT_a4719a068edb53fb2ad064e109ca38147}{Mod\+Balancer\+T$<$ D $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModQuadricT_aebe8d7ca4c5f713b41f6108b9ac63f3b}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModQuadricT_aebe8d7ca4c5f713b41f6108b9ac63f3b}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ D $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModQuadricT_aebe8d7ca4c5f713b41f6108b9ac63f3b}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModProgMeshT_abaa99713a4e23cacb75b30ed6cb80a32}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Prog\+Mesh\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModHausdorffT_a7ee2f78bfbaf5726ec43451d617a7757}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModHausdorffT_a7ee2f78bfbaf5726ec43451d617a7757}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModIndependentSetsT_a293283b4b15fd4cbf68276a570a97b74}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Independent\+Sets\+T$<$ Mesh\+T $>$}, and \hyperlink{classOpenMesh_1_1Decimater_1_1ModIndependentSetsT_a293283b4b15fd4cbf68276a570a97b74}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Independent\+Sets\+T$<$ Tri\+Mesh $>$}.



Definition at line 257 of file Mod\+Base\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a4d6aa846add0068b1e2bd7005e60edb4}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a4d6aa846add0068b1e2bd7005e60edb4}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}!preprocess\+\_\+collapse@{preprocess\+\_\+collapse}}
\index{preprocess\+\_\+collapse@{preprocess\+\_\+collapse}!Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}}
\subsubsection{\texorpdfstring{preprocess\+\_\+collapse()}{preprocess\_collapse()}}
{\footnotesize\ttfamily template$<$typename MeshT$>$ \\
virtual void \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}$<$ MeshT $>$\+::preprocess\+\_\+collapse (\begin{DoxyParamCaption}\item[{const \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+InfoT}$<$ MeshT $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Before \+\_\+from\+\_\+vh has been collapsed into \+\_\+to\+\_\+vh, this method will be called. 

Reimplemented in \hyperlink{classOpenMesh_1_1Decimater_1_1ModAspectRatioT_a79cb59e04d835132ab06219bdb8c477b}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Mesh\+T $>$}, and \hyperlink{classOpenMesh_1_1Decimater_1_1ModAspectRatioT_a79cb59e04d835132ab06219bdb8c477b}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Tri\+Mesh $>$}.



Definition at line 251 of file Mod\+Base\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModBaseT_a3f1b2156b44cff425dd758e84218f0db}\label{classOpenMesh_1_1Decimater_1_1ModBaseT_a3f1b2156b44cff425dd758e84218f0db}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}!set\+\_\+error\+\_\+tolerance\+\_\+factor@{set\+\_\+error\+\_\+tolerance\+\_\+factor}}
\index{set\+\_\+error\+\_\+tolerance\+\_\+factor@{set\+\_\+error\+\_\+tolerance\+\_\+factor}!Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}}
\subsubsection{\texorpdfstring{set\+\_\+error\+\_\+tolerance\+\_\+factor()}{set\_error\_tolerance\_factor()}}
{\footnotesize\ttfamily template$<$typename MeshT$>$ \\
virtual void \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}$<$ MeshT $>$\+::set\+\_\+error\+\_\+tolerance\+\_\+factor (\begin{DoxyParamCaption}\item[{double}]{\+\_\+factor }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

This provides a function that allows the setting of a percentage of the original contraint.

Note that the module might need to be re-\/initialized again after setting the percentage 
\begin{DoxyParams}{Parameters}
{\em \+\_\+factor} & has to be in the closed interval between 0.\+0 and 1.\+0 \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalDeviationT_a30869e4cdeabe62e162b75355863c415}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalDeviationT_a30869e4cdeabe62e162b75355863c415}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_afa0dca4d9da5196185dc4ffbedd30a39}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_afa0dca4d9da5196185dc4ffbedd30a39}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalFlippingT_aa6fa1dd584e10ab26faca53cc9305357}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModNormalFlippingT_aa6fa1dd584e10ab26faca53cc9305357}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModQuadricT_ab2b6ff0a7d2c8c4524b8a1a90e3fd7a8}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModQuadricT_ab2b6ff0a7d2c8c4524b8a1a90e3fd7a8}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ D $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModQuadricT_ab2b6ff0a7d2c8c4524b8a1a90e3fd7a8}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModHausdorffT_aacd7271a89147a2a238105839cda26f0}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModHausdorffT_aacd7271a89147a2a238105839cda26f0}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModAspectRatioT_abcd5fb392984964b01589f5556b6243b}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Mesh\+T $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModAspectRatioT_abcd5fb392984964b01589f5556b6243b}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Tri\+Mesh $>$}, \hyperlink{classOpenMesh_1_1Decimater_1_1ModEdgeLengthT_a34aef5589f477365f74d68afb101874a}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Mesh\+T $>$}, and \hyperlink{classOpenMesh_1_1Decimater_1_1ModEdgeLengthT_a34aef5589f477365f74d68afb101874a}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Tri\+Mesh $>$}.



Definition at line 268 of file Mod\+Base\+T.\+hh.



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