\hypertarget{a02026}{\section{libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\+Mod\+Base\+T.hh File Reference}
\label{a02026}\index{libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\+Mod\+Base\+T.\+hh@{libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\+Mod\+Base\+T.\+hh}}
}
{\ttfamily \#include $<$Open\+Mesh/\+Core/\+Utils/\+Noncopyable.\+hh$>$}\\*
{\ttfamily \#include $<$Open\+Mesh/\+Tools/\+Decimater/\+Collapse\+Info\+T.\+hh$>$}\\*
{\ttfamily \#include $<$string$>$}\\*
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
singleton \hyperlink{a00313}{Open\+Mesh\+::\+Decimater\+::\+Base\+Decimater\+T$<$ Mesh\+T $>$}
\item 
class \hyperlink{a00848}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Handle\+T$<$ Module $>$}
\item 
class \hyperlink{a00846}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T$<$ Mesh\+T $>$}
\end{DoxyCompactItemize}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \hyperlink{a03368}{Open\+Mesh}
\item 
 \hyperlink{a03371}{Open\+Mesh\+::\+Decimater}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{a02026_a906b4531219a46e7f62e37672b50e479}{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E}(\+\_\+mod\+\_\+name)
\item 
\#define \hyperlink{a02026_ae1f2d4c274e420c0e81d52cf17cc1c5b}{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E}(Classname, Mesh\+T, Name)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Base class for all decimation modules. 

Definition in file \hyperlink{a02026_source}{Mod\+Base\+T.\+hh}.



\subsection{Macro Definition Documentation}
\hypertarget{a02026_a906b4531219a46e7f62e37672b50e479}{\index{Mod\+Base\+T.\+hh@{Mod\+Base\+T.\+hh}!D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E@{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E}}
\index{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E@{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E}!Mod\+Base\+T.\+hh@{Mod\+Base\+T.\+hh}}
\subsubsection[{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E(
\begin{DoxyParamCaption}
\item[{}]{\+\_\+mod\+\_\+name}
\end{DoxyParamCaption}
)}}\label{a02026_a906b4531219a46e7f62e37672b50e479}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{virtual} \textcolor{keyword}{const} std::string& name()\textcolor{keyword}{ const }\{ \(\backslash\)
  static std::string \_s\_modname\_(#\_mod\_name); \textcolor{keywordflow}{return} \_s\_modname\_; \(\backslash\)
\}
\end{DoxyCode}
Macro that sets up the name() function 

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

\hypertarget{a02026_ae1f2d4c274e420c0e81d52cf17cc1c5b}{\index{Mod\+Base\+T.\+hh@{Mod\+Base\+T.\+hh}!D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E@{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E}}
\index{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E@{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E}!Mod\+Base\+T.\+hh@{Mod\+Base\+T.\+hh}}
\subsubsection[{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E}]{\setlength{\rightskip}{0pt plus 5cm}\#define D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E(
\begin{DoxyParamCaption}
\item[{}]{Classname, }
\item[{}]{Mesh\+T, }
\item[{}]{Name}
\end{DoxyParamCaption}
)}}\label{a02026_ae1f2d4c274e420c0e81d52cf17cc1c5b}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{typedef} Classname < MeshT >    Self;            \(\backslash\)
  typedef \hyperlink{a00848}{OpenMesh::Decimater::ModHandleT< Self >}     Handle; \(\backslash\)
  typedef \hyperlink{a00846}{OpenMesh::Decimater::ModBaseT< MeshT >} Base;   \(\backslash\)
  typedef \textcolor{keyword}{typename} Base::Mesh         \hyperlink{a01335}{Mesh};         \(\backslash\)
  typedef \textcolor{keyword}{typename} Base::CollapseInfo CollapseInfo;     \hyperlink{a02026_a906b4531219a46e7f62e37672b50e479}{\(\backslash\)}
\hyperlink{a02026_a906b4531219a46e7f62e37672b50e479}{  DECIMATER\_MODNAME}( Name )
\end{DoxyCode}
Convenience macro, to be used in derived modules The macro defines the types
\begin{DoxyItemize}
\item {\ttfamily Handle}, type of the module's handle.
\item {\ttfamily Base}, type of Mod\+Base\+T$<$$>$.
\item {\ttfamily Mesh}, type of the associated mesh passed by the decimater type.
\item {\ttfamily Collapse\+Info}, to your convenience and uses \hyperlink{a02026_a906b4531219a46e7f62e37672b50e479}{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+M\+E()} to define the name of the module.
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em Classname} & The name of the derived class. \\
\hline
{\em Mesh\+T} & Pass here the mesh type, which is the template parameter passed to Mod\+Base\+T. \\
\hline
{\em Name} & Give the module a name. \\
\hline
\end{DoxyParams}


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

