\hypertarget{a08956}{}\section{Open\+Mesh\+:\+:Decimater\+:\+:Mod\+BaseT$<$ MeshT $>$ Class Template Reference}
\label{a08956}\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]{a08956}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \{ \hyperlink{a08956_a77c942fb03efb3b079a916e005729d94afc88837943f46ccbf0ef35d3fcf9c5b1}{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE} = -\/1, 
\hyperlink{a08956_a77c942fb03efb3b079a916e005729d94a2b521064f4abfdfb6eb5464308b6f6e7}{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE} = 0
 \}
\item 
\mbox{\Hypertarget{a08956_a859ae4de39db6d7e9d1a1ad1335fb897}\label{a08956_a859ae4de39db6d7e9d1a1ad1335fb897}} 
typedef MeshT {\bfseries Mesh}
\item 
\mbox{\Hypertarget{a08956_a8cc9f0b0682dbead98929e929e18d2cf}\label{a08956_a8cc9f0b0682dbead98929e929e18d2cf}} 
typedef \hyperlink{a08928}{Collapse\+InfoT}$<$ MeshT $>$ {\bfseries Collapse\+Info}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08956_ab2e5893b8418b3bbf4c88fc5cb7b75e5}\label{a08956_ab2e5893b8418b3bbf4c88fc5cb7b75e5}} 
virtual \hyperlink{a08956_ab2e5893b8418b3bbf4c88fc5cb7b75e5}{$\sim$\+Mod\+BaseT} ()
\begin{DoxyCompactList}\small\item\em Virtual desctructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08956_af18fec3571b9cd06c630e543301bddc5}\label{a08956_af18fec3571b9cd06c630e543301bddc5}} 
\hyperlink{a08956_af18fec3571b9cd06c630e543301bddc5}{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+ME} (Mod\+Base)
\begin{DoxyCompactList}\small\item\em Set module\textquotesingle{}s name (using D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+ME macro) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08956_a1c102bc43acb81911c27024032b48b02}\label{a08956_a1c102bc43acb81911c27024032b48b02}} 
bool \hyperlink{a08956_a1c102bc43acb81911c27024032b48b02}{is\+\_\+binary} (void) const
\begin{DoxyCompactList}\small\item\em Returns true if criteria returns a binary value. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08956_a36fbc3ecb0b707e2087aea565c5bd6b5}\label{a08956_a36fbc3ecb0b707e2087aea565c5bd6b5}} 
void \hyperlink{a08956_a36fbc3ecb0b707e2087aea565c5bd6b5}{set\+\_\+binary} (bool \+\_\+b)
\begin{DoxyCompactList}\small\item\em Set whether module is binary or not. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08956_a2c6972aeffef98839951846051690c0b}\label{a08956_a2c6972aeffef98839951846051690c0b}} 
virtual void \hyperlink{a08956_a2c6972aeffef98839951846051690c0b}{initialize} ()
\begin{DoxyCompactList}\small\item\em Initialize module-\/internal stuff. \end{DoxyCompactList}\item 
virtual float \hyperlink{a08956_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority} (const \hyperlink{a08928}{Collapse\+InfoT}$<$ MeshT $>$ \&)
\item 
virtual void \hyperlink{a08956_a4d6aa846add0068b1e2bd7005e60edb4}{preprocess\+\_\+collapse} (const \hyperlink{a08928}{Collapse\+InfoT}$<$ MeshT $>$ \&)
\item 
virtual void \hyperlink{a08956_a9b79ddfa2e7771572dd558c928edcdeb}{postprocess\+\_\+collapse} (const \hyperlink{a08928}{Collapse\+InfoT}$<$ MeshT $>$ \&)
\item 
virtual void \hyperlink{a08956_a3f1b2156b44cff425dd758e84218f0db}{set\+\_\+error\+\_\+tolerance\+\_\+factor} (double \+\_\+factor)
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a08956_ac434e4c53a1502b51c9bf8f79214727e}{Mod\+BaseT} (MeshT \&\+\_\+mesh, bool \+\_\+is\+\_\+binary)
\item 
\mbox{\Hypertarget{a08956_a4b4ef38dac53440f7a01402a6844722a}\label{a08956_a4b4ef38dac53440f7a01402a6844722a}} 
MeshT \& \hyperlink{a08956_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{a08956_a3893f0f6368f1a1fe5e37f6006d72d62}\label{a08956_a3893f0f6368f1a1fe5e37f6006d72d62}} 
double {\bfseries error\+\_\+tolerance\+\_\+factor\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08956_ab33f3f52a13c1bd550e76f25d4ad8fe8}\label{a08956_ab33f3f52a13c1bd550e76f25d4ad8fe8}} 
{\bfseries Mod\+BaseT} (const \hyperlink{a08956}{Mod\+BaseT} \&\+\_\+cpy)
\item 
\mbox{\Hypertarget{a08956_a68860c2eecdd36681979963ec3d81c01}\label{a08956_a68860c2eecdd36681979963ec3d81c01}} 
\hyperlink{a08956}{Mod\+BaseT} \& {\bfseries operator=} (const \hyperlink{a08956}{Mod\+BaseT} \&)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08956_a800b4647f1fcd4ae3267012cc55127dc}\label{a08956_a800b4647f1fcd4ae3267012cc55127dc}} 
MeshT \& {\bfseries mesh\+\_\+}
\item 
\mbox{\Hypertarget{a08956_a5b34ac9d0af0629d8c60da7a9f8b193b}\label{a08956_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{a02207_ae1f2d4c274e420c0e81d52cf17cc1c5b}{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E()}.
\item override \hyperlink{a08956_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()}, if necessary.
\item override \hyperlink{a08956_a2c6972aeffef98839951846051690c0b}{initialize()}, if necessary.
\item override \hyperlink{a08956_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{a08956_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{a08956_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()} must return I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE.

\begin{DoxySeeAlso}{See also}
\hyperlink{a08956_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()}
\end{DoxySeeAlso}
\begin{DoxyRefDesc}{Todo}
\item[\hyperlink{a06164__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{a08956_a77c942fb03efb3b079a916e005729d94}\label{a08956_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{a08956_a77c942fb03efb3b079a916e005729d94afc88837943f46ccbf0ef35d3fcf9c5b1}\label{a08956_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{a08956_a77c942fb03efb3b079a916e005729d94a2b521064f4abfdfb6eb5464308b6f6e7}\label{a08956_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{a08956_ac434e4c53a1502b51c9bf8f79214727e}\label{a08956_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{a08956}{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}$<$ MeshT $>$\+::\hyperlink{a08956}{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{a08956_acb81c6b9a752741fce2366ca605cd14c}\label{a08956_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{a08956}{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}$<$ MeshT $>$\+::collapse\+\_\+priority (\begin{DoxyParamCaption}\item[{const \hyperlink{a08928}{Collapse\+InfoT}$<$ MeshT $>$ \&}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}

Return collapse priority.

In the binary mode \hyperlink{a08956_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{a08956_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{a08972_a46e41a1f64c62f72207d842f4cb581af}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Mesh\+T $>$}, \hyperlink{a08972_a46e41a1f64c62f72207d842f4cb581af}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08976_ae8fc0ecbd533ba2a8ce00f364ce43a38}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Mesh\+T $>$}, \hyperlink{a08976_ae8fc0ecbd533ba2a8ce00f364ce43a38}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08964_a4fe09f7156ee291e13d63033ee8cba42}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}, \hyperlink{a08964_a4fe09f7156ee291e13d63033ee8cba42}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08992_ade6fe704e576b3e0f73453ffd8cad0fd}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Mesh\+T $>$}, \hyperlink{a08992_ade6fe704e576b3e0f73453ffd8cad0fd}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08408_a627c9486bf8c3975363e4053a3d8c323}{Mod\+Balancer\+T$<$ D $>$}, \hyperlink{a08948_a088057a7f4482c86831a05b54de2271e}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Mesh\+T $>$}, \hyperlink{a08948_a088057a7f4482c86831a05b54de2271e}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08988_af831bbc194faf3a3c346bd215f01f413}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Mesh\+T $>$}, \hyperlink{a08988_af831bbc194faf3a3c346bd215f01f413}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ D $>$}, \hyperlink{a08988_af831bbc194faf3a3c346bd215f01f413}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08960_a8b205feac99470a63e6c3351088513a0}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Mesh\+T $>$}, and \hyperlink{a08960_a8b205feac99470a63e6c3351088513a0}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Tri\+Mesh $>$}.



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

\mbox{\Hypertarget{a08956_a9b79ddfa2e7771572dd558c928edcdeb}\label{a08956_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{a08956}{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}$<$ MeshT $>$\+::postprocess\+\_\+collapse (\begin{DoxyParamCaption}\item[{const \hyperlink{a08928}{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{a08972_a4f1c81426de1133b30357b14bc9030e8}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Mesh\+T $>$}, \hyperlink{a08972_a4f1c81426de1133b30357b14bc9030e8}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08408_a7ae6cc4976c9b829a926a1f2c6b862d1}{Mod\+Balancer\+T$<$ D $>$}, \hyperlink{a08988_acc01feeb26061855e79480a035068c0c}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Mesh\+T $>$}, \hyperlink{a08988_acc01feeb26061855e79480a035068c0c}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ D $>$}, \hyperlink{a08988_acc01feeb26061855e79480a035068c0c}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08980_a557fa0451994a87346f85b90b50da7d4}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Prog\+Mesh\+T$<$ Mesh\+T $>$}, \hyperlink{a08964_af1fdb32bf2d16b64d486c1398edb2e5e}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}, \hyperlink{a08964_af1fdb32bf2d16b64d486c1398edb2e5e}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08968_ab24afb91c890d484a3bc7674c3e20c39}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Independent\+Sets\+T$<$ Mesh\+T $>$}, and \hyperlink{a08968_ab24afb91c890d484a3bc7674c3e20c39}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Independent\+Sets\+T$<$ Tri\+Mesh $>$}.



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

\mbox{\Hypertarget{a08956_a4d6aa846add0068b1e2bd7005e60edb4}\label{a08956_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{a08956}{Open\+Mesh\+::\+Decimater\+::\+Mod\+BaseT}$<$ MeshT $>$\+::preprocess\+\_\+collapse (\begin{DoxyParamCaption}\item[{const \hyperlink{a08928}{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{a08948_aa4049ce266c474b148702674ede963a1}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Mesh\+T $>$}, and \hyperlink{a08948_aa4049ce266c474b148702674ede963a1}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Tri\+Mesh $>$}.



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

\mbox{\Hypertarget{a08956_a3f1b2156b44cff425dd758e84218f0db}\label{a08956_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{a08956}{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{a08972_a03b1ad704d30d9a3d8cbf0ba1d97af46}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Mesh\+T $>$}, \hyperlink{a08972_a03b1ad704d30d9a3d8cbf0ba1d97af46}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08992_a14fa6c8dc43d6621a3c0cb5404e1a5de}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Mesh\+T $>$}, \hyperlink{a08992_a14fa6c8dc43d6621a3c0cb5404e1a5de}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08976_a7bf4a80d6dbfa5a7fff510797e3ac112}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Mesh\+T $>$}, \hyperlink{a08976_a7bf4a80d6dbfa5a7fff510797e3ac112}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08988_a31113d67dcd8953edef8377572e0b173}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Mesh\+T $>$}, \hyperlink{a08988_a31113d67dcd8953edef8377572e0b173}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ D $>$}, \hyperlink{a08988_a31113d67dcd8953edef8377572e0b173}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08964_a71936976d0d95a85dbea2e50cc638b82}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}, \hyperlink{a08964_a71936976d0d95a85dbea2e50cc638b82}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08948_a0de961edd95e71ce601e2f675c11b648}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Mesh\+T $>$}, \hyperlink{a08948_a0de961edd95e71ce601e2f675c11b648}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Tri\+Mesh $>$}, \hyperlink{a08960_a50454bc8ea7dd04451def96d6e447654}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Mesh\+T $>$}, and \hyperlink{a08960_a50454bc8ea7dd04451def96d6e447654}{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{a02207}{Mod\+Base\+T.\+hh}\end{DoxyCompactItemize}
