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


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

Inheritance diagram for Open\+Mesh\+:\+:Decimater\+:\+:Mod\+Base\+T$<$ Mesh\+T $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{a00846}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \{ \hyperlink{a00846_a77c942fb03efb3b079a916e005729d94afc88837943f46ccbf0ef35d3fcf9c5b1}{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E} = -\/1, 
\hyperlink{a00846_a77c942fb03efb3b079a916e005729d94a2b521064f4abfdfb6eb5464308b6f6e7}{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E} = 0
 \}
\item 
\hypertarget{a00846_a859ae4de39db6d7e9d1a1ad1335fb897}{typedef Mesh\+T {\bfseries Mesh}}\label{a00846_a859ae4de39db6d7e9d1a1ad1335fb897}

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

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

\begin{DoxyCompactList}\small\item\em Virtual desctructor. \end{DoxyCompactList}\item 
\hypertarget{a00846_af18fec3571b9cd06c630e543301bddc5}{\hyperlink{a00846_af18fec3571b9cd06c630e543301bddc5}{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E} (Mod\+Base)}\label{a00846_af18fec3571b9cd06c630e543301bddc5}

\begin{DoxyCompactList}\small\item\em Set module's name (using D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E macro) \end{DoxyCompactList}\item 
\hypertarget{a00846_aec5ede626422c446f296cd186c740797}{bool \hyperlink{a00846_aec5ede626422c446f296cd186c740797}{is\+\_\+binary} (void) const }\label{a00846_aec5ede626422c446f296cd186c740797}

\begin{DoxyCompactList}\small\item\em Returns true if criteria returns a binary value. \end{DoxyCompactList}\item 
\hypertarget{a00846_a36fbc3ecb0b707e2087aea565c5bd6b5}{void \hyperlink{a00846_a36fbc3ecb0b707e2087aea565c5bd6b5}{set\+\_\+binary} (bool \+\_\+b)}\label{a00846_a36fbc3ecb0b707e2087aea565c5bd6b5}

\begin{DoxyCompactList}\small\item\em Set whether module is binary or not. \end{DoxyCompactList}\item 
\hypertarget{a00846_a2c6972aeffef98839951846051690c0b}{virtual void \hyperlink{a00846_a2c6972aeffef98839951846051690c0b}{initialize} ()}\label{a00846_a2c6972aeffef98839951846051690c0b}

\begin{DoxyCompactList}\small\item\em Initialize module-\/internal stuff. \end{DoxyCompactList}\item 
virtual float \hyperlink{a00846_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority} (const \hyperlink{a00417}{Collapse\+Info\+T}$<$ Mesh\+T $>$ \&)
\item 
virtual void \hyperlink{a00846_a4d6aa846add0068b1e2bd7005e60edb4}{preprocess\+\_\+collapse} (const \hyperlink{a00417}{Collapse\+Info\+T}$<$ Mesh\+T $>$ \&)
\item 
virtual void \hyperlink{a00846_a9b79ddfa2e7771572dd558c928edcdeb}{postprocess\+\_\+collapse} (const \hyperlink{a00417}{Collapse\+Info\+T}$<$ Mesh\+T $>$ \&)
\item 
virtual void \hyperlink{a00846_a3f1b2156b44cff425dd758e84218f0db}{set\+\_\+error\+\_\+tolerance\+\_\+factor} (double \+\_\+factor)
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a00846_ac434e4c53a1502b51c9bf8f79214727e}{Mod\+Base\+T} (Mesh\+T \&\+\_\+mesh, bool \+\_\+is\+\_\+binary)
\item 
\hypertarget{a00846_a4b4ef38dac53440f7a01402a6844722a}{Mesh\+T \& \hyperlink{a00846_a4b4ef38dac53440f7a01402a6844722a}{mesh} ()}\label{a00846_a4b4ef38dac53440f7a01402a6844722a}

\begin{DoxyCompactList}\small\item\em Access the mesh associated with the decimater. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00846_a3893f0f6368f1a1fe5e37f6006d72d62}{double {\bfseries error\+\_\+tolerance\+\_\+factor\+\_\+}}\label{a00846_a3893f0f6368f1a1fe5e37f6006d72d62}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00846_ab33f3f52a13c1bd550e76f25d4ad8fe8}{{\bfseries Mod\+Base\+T} (const \hyperlink{a00846}{Mod\+Base\+T} \&\+\_\+cpy)}\label{a00846_ab33f3f52a13c1bd550e76f25d4ad8fe8}

\item 
\hypertarget{a00846_a68860c2eecdd36681979963ec3d81c01}{\hyperlink{a00846}{Mod\+Base\+T} \& {\bfseries operator=} (const \hyperlink{a00846}{Mod\+Base\+T} \&)}\label{a00846_a68860c2eecdd36681979963ec3d81c01}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00846_a800b4647f1fcd4ae3267012cc55127dc}{Mesh\+T \& {\bfseries mesh\+\_\+}}\label{a00846_a800b4647f1fcd4ae3267012cc55127dc}

\item 
\hypertarget{a00846_a5b34ac9d0af0629d8c60da7a9f8b193b}{bool {\bfseries is\+\_\+binary\+\_\+}}\label{a00846_a5b34ac9d0af0629d8c60da7a9f8b193b}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Mesh\+T$>$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{a02026_ae1f2d4c274e420c0e81d52cf17cc1c5b}{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E()}.
\item override \hyperlink{a00846_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()}, if necessary.
\item override \hyperlink{a00846_a2c6972aeffef98839951846051690c0b}{initialize()}, if necessary.
\item override \hyperlink{a00846_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{a00846_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()} checks a constraint and returns L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E or I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E.

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{a00846_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()} must return I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E.

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


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



\subsection{Member Enumeration Documentation}
\hypertarget{a00846_a77c942fb03efb3b079a916e005729d94}{\subsubsection[{anonymous enum}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+T$>$ anonymous enum}}\label{a00846_a77c942fb03efb3b079a916e005729d94}
\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E@{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}}\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}!I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E@{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E}}\item[{\em 
\hypertarget{a00846_a77c942fb03efb3b079a916e005729d94afc88837943f46ccbf0ef35d3fcf9c5b1}{I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E}\label{a00846_a77c942fb03efb3b079a916e005729d94afc88837943f46ccbf0ef35d3fcf9c5b1}
}]indicates an illegal collapse \index{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E@{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}}\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}!L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E@{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E}}\item[{\em 
\hypertarget{a00846_a77c942fb03efb3b079a916e005729d94a2b521064f4abfdfb6eb5464308b6f6e7}{L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E}\label{a00846_a77c942fb03efb3b079a916e005729d94a2b521064f4abfdfb6eb5464308b6f6e7}
}]indicates a legal collapse \end{description}
\end{Desc}


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



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00846_ac434e4c53a1502b51c9bf8f79214727e}{\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}!Mod\+Base\+T@{Mod\+Base\+T}}
\index{Mod\+Base\+T@{Mod\+Base\+T}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}}
\subsubsection[{Mod\+Base\+T}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+T$>$ {\bf Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}$<$ Mesh\+T $>$\+::{\bf Mod\+Base\+T} (
\begin{DoxyParamCaption}
\item[{Mesh\+T \&}]{\+\_\+mesh, }
\item[{bool}]{\+\_\+is\+\_\+binary}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}}}\label{a00846_ac434e4c53a1502b51c9bf8f79214727e}
Default constructor \begin{DoxySeeAlso}{See also}
\hyperlink{decimater_docu}{Mesh Decimation Framework} 
\end{DoxySeeAlso}


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



\subsection{Member Function Documentation}
\hypertarget{a00846_acb81c6b9a752741fce2366ca605cd14c}{\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}!collapse\+\_\+priority@{collapse\+\_\+priority}}
\index{collapse\+\_\+priority@{collapse\+\_\+priority}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}}
\subsubsection[{collapse\+\_\+priority}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+T$>$ virtual float {\bf Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}$<$ Mesh\+T $>$\+::collapse\+\_\+priority (
\begin{DoxyParamCaption}
\item[{const {\bf Collapse\+Info\+T}$<$ Mesh\+T $>$ \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00846_acb81c6b9a752741fce2366ca605cd14c}
Return collapse priority.

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

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{a00846_acb81c6b9a752741fce2366ca605cd14c}{collapse\+\_\+priority()} must return I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+S\+E.

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


Reimplemented in \hyperlink{a00852_a46e41a1f64c62f72207d842f4cb581af}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Mesh\+T $>$}, \hyperlink{a00852_a46e41a1f64c62f72207d842f4cb581af}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00853_ae8fc0ecbd533ba2a8ce00f364ce43a38}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Mesh\+T $>$}, \hyperlink{a00853_ae8fc0ecbd533ba2a8ce00f364ce43a38}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00849_a4fe09f7156ee291e13d63033ee8cba42}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}, \hyperlink{a00849_a4fe09f7156ee291e13d63033ee8cba42}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00856_ade6fe704e576b3e0f73453ffd8cad0fd}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Mesh\+T $>$}, \hyperlink{a00856_ade6fe704e576b3e0f73453ffd8cad0fd}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00844_a088057a7f4482c86831a05b54de2271e}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Mesh\+T $>$}, \hyperlink{a00844_a088057a7f4482c86831a05b54de2271e}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00845_a627c9486bf8c3975363e4053a3d8c323}{Mod\+Balancer\+T$<$ D $>$}, \hyperlink{a00855_af831bbc194faf3a3c346bd215f01f413}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Mesh\+T $>$}, \hyperlink{a00855_af831bbc194faf3a3c346bd215f01f413}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ D $>$}, \hyperlink{a00855_af831bbc194faf3a3c346bd215f01f413}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00847_a8b205feac99470a63e6c3351088513a0}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Mesh\+T $>$}, and \hyperlink{a00847_a8b205feac99470a63e6c3351088513a0}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Tri\+Mesh $>$}.



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

\hypertarget{a00846_a9b79ddfa2e7771572dd558c928edcdeb}{\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}!postprocess\+\_\+collapse@{postprocess\+\_\+collapse}}
\index{postprocess\+\_\+collapse@{postprocess\+\_\+collapse}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}}
\subsubsection[{postprocess\+\_\+collapse}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+T$>$ virtual void {\bf Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}$<$ Mesh\+T $>$\+::postprocess\+\_\+collapse (
\begin{DoxyParamCaption}
\item[{const {\bf Collapse\+Info\+T}$<$ Mesh\+T $>$ \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00846_a9b79ddfa2e7771572dd558c928edcdeb}
After \+\_\+from\+\_\+vh has been collapsed into \+\_\+to\+\_\+vh, this method will be called. 

Reimplemented in \hyperlink{a00852_a4f1c81426de1133b30357b14bc9030e8}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Mesh\+T $>$}, \hyperlink{a00852_a4f1c81426de1133b30357b14bc9030e8}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00845_a7ae6cc4976c9b829a926a1f2c6b862d1}{Mod\+Balancer\+T$<$ D $>$}, \hyperlink{a00855_acc01feeb26061855e79480a035068c0c}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Mesh\+T $>$}, \hyperlink{a00855_acc01feeb26061855e79480a035068c0c}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ D $>$}, \hyperlink{a00855_acc01feeb26061855e79480a035068c0c}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00854_a557fa0451994a87346f85b90b50da7d4}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Prog\+Mesh\+T$<$ Mesh\+T $>$}, \hyperlink{a00849_af1fdb32bf2d16b64d486c1398edb2e5e}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}, \hyperlink{a00849_af1fdb32bf2d16b64d486c1398edb2e5e}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00851_ab24afb91c890d484a3bc7674c3e20c39}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Independent\+Sets\+T$<$ Mesh\+T $>$}, and \hyperlink{a00851_ab24afb91c890d484a3bc7674c3e20c39}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Independent\+Sets\+T$<$ Tri\+Mesh $>$}.



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

\hypertarget{a00846_a4d6aa846add0068b1e2bd7005e60edb4}{\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}!preprocess\+\_\+collapse@{preprocess\+\_\+collapse}}
\index{preprocess\+\_\+collapse@{preprocess\+\_\+collapse}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}}
\subsubsection[{preprocess\+\_\+collapse}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+T$>$ virtual void {\bf Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}$<$ Mesh\+T $>$\+::preprocess\+\_\+collapse (
\begin{DoxyParamCaption}
\item[{const {\bf Collapse\+Info\+T}$<$ Mesh\+T $>$ \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00846_a4d6aa846add0068b1e2bd7005e60edb4}
Before \+\_\+from\+\_\+vh has been collapsed into \+\_\+to\+\_\+vh, this method will be called. 

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



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

\hypertarget{a00846_a3f1b2156b44cff425dd758e84218f0db}{\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}!set\+\_\+error\+\_\+tolerance\+\_\+factor@{set\+\_\+error\+\_\+tolerance\+\_\+factor}}
\index{set\+\_\+error\+\_\+tolerance\+\_\+factor@{set\+\_\+error\+\_\+tolerance\+\_\+factor}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}}
\subsubsection[{set\+\_\+error\+\_\+tolerance\+\_\+factor}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+T$>$ virtual void {\bf Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T}$<$ Mesh\+T $>$\+::set\+\_\+error\+\_\+tolerance\+\_\+factor (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+factor}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00846_a3f1b2156b44cff425dd758e84218f0db}
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{a00852_a03b1ad704d30d9a3d8cbf0ba1d97af46}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Mesh\+T $>$}, \hyperlink{a00852_a03b1ad704d30d9a3d8cbf0ba1d97af46}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Deviation\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00856_a14fa6c8dc43d6621a3c0cb5404e1a5de}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Mesh\+T $>$}, \hyperlink{a00856_a14fa6c8dc43d6621a3c0cb5404e1a5de}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00853_a7bf4a80d6dbfa5a7fff510797e3ac112}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Mesh\+T $>$}, \hyperlink{a00853_a7bf4a80d6dbfa5a7fff510797e3ac112}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Normal\+Flipping\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00855_a31113d67dcd8953edef8377572e0b173}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Mesh\+T $>$}, \hyperlink{a00855_a31113d67dcd8953edef8377572e0b173}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ D $>$}, \hyperlink{a00855_a31113d67dcd8953edef8377572e0b173}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Quadric\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00849_a71936976d0d95a85dbea2e50cc638b82}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}, \hyperlink{a00849_a71936976d0d95a85dbea2e50cc638b82}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00844_a0de961edd95e71ce601e2f675c11b648}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Mesh\+T $>$}, \hyperlink{a00844_a0de961edd95e71ce601e2f675c11b648}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Aspect\+Ratio\+T$<$ Tri\+Mesh $>$}, \hyperlink{a00847_a50454bc8ea7dd04451def96d6e447654}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Mesh\+T $>$}, and \hyperlink{a00847_a50454bc8ea7dd04451def96d6e447654}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Edge\+Length\+T$<$ Tri\+Mesh $>$}.



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



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