\hypertarget{ModBaseT_8hh}{}\section{Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\+Mod\+BaseT.hh File Reference}
\label{ModBaseT_8hh}\index{Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\+Mod\+Base\+T.\+hh@{Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\+Mod\+Base\+T.\+hh}}
{\ttfamily \#include $<$Open\+Mesh/\+Core/\+Utils/\+Noncopyable.\+hh$>$}\newline
{\ttfamily \#include $<$Open\+Mesh/\+Tools/\+Decimater/\+Collapse\+Info\+T.\+hh$>$}\newline
{\ttfamily \#include $<$string$>$}\newline
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{classOpenMesh_1_1Decimater_1_1BaseDecimaterT}{Open\+Mesh\+::\+Decimater\+::\+Base\+Decimater\+T$<$ Mesh\+T $>$}
\item 
class \hyperlink{classOpenMesh_1_1Decimater_1_1ModHandleT}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Handle\+T$<$ Module $>$}
\item 
class \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T$<$ Mesh\+T $>$}
\end{DoxyCompactItemize}
\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
 \hyperlink{namespaceOpenMesh}{Open\+Mesh}
\item 
 \hyperlink{namespaceOpenMesh_1_1Decimater}{Open\+Mesh\+::\+Decimater}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{ModBaseT_8hh_a906b4531219a46e7f62e37672b50e479}{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+ME}(\+\_\+mod\+\_\+name)
\item 
\#define \hyperlink{ModBaseT_8hh_ae1f2d4c274e420c0e81d52cf17cc1c5b}{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+LE}(Classname,  MeshT,  Name)
\end{DoxyCompactItemize}


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

\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{ModBaseT_8hh_a906b4531219a46e7f62e37672b50e479}\label{ModBaseT_8hh_a906b4531219a46e7f62e37672b50e479}} 
\index{Mod\+Base\+T.\+hh@{Mod\+Base\+T.\+hh}!D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+ME@{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+ME}}
\index{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+ME@{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+ME}!Mod\+Base\+T.\+hh@{Mod\+Base\+T.\+hh}}
\subsubsection{\texorpdfstring{D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+ME}{DECIMATER\_MODNAME}}
{\footnotesize\ttfamily \#define D\+E\+C\+I\+M\+A\+T\+E\+R\+\_\+\+M\+O\+D\+N\+A\+ME(\begin{DoxyParamCaption}\item[{}]{\+\_\+mod\+\_\+name }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{virtual} \textcolor{keyword}{const} std::string& name()\textcolor{keyword}{ const override }\{ \(\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 130 of file Mod\+Base\+T.\+hh.

\mbox{\Hypertarget{ModBaseT_8hh_ae1f2d4c274e420c0e81d52cf17cc1c5b}\label{ModBaseT_8hh_ae1f2d4c274e420c0e81d52cf17cc1c5b}} 
\index{Mod\+Base\+T.\+hh@{Mod\+Base\+T.\+hh}!D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+LE@{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+LE}}
\index{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+LE@{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+LE}!Mod\+Base\+T.\+hh@{Mod\+Base\+T.\+hh}}
\subsubsection{\texorpdfstring{D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+LE}{DECIMATING\_MODULE}}
{\footnotesize\ttfamily \#define D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+LE(\begin{DoxyParamCaption}\item[{}]{Classname,  }\item[{}]{MeshT,  }\item[{}]{Name }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{typedef} Classname < MeshT >    Self;            \(\backslash\)
  typedef \hyperlink{classOpenMesh_1_1Decimater_1_1ModHandleT}{OpenMesh::Decimater::ModHandleT< Self >}     Handle; \(\backslash\)
  typedef \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT}{OpenMesh::Decimater::ModBaseT< MeshT >} Base;   \(\backslash\)
  typedef \textcolor{keyword}{typename} Base::Mesh         \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh};         \(\backslash\)
  typedef \textcolor{keyword}{typename} Base::CollapseInfo CollapseInfo;     \(\backslash\)
  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\textquotesingle{}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{ModBaseT_8hh_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 MeshT} & Pass here the mesh type, which is the template parameter passed to Mod\+BaseT. \\
\hline
{\em Name} & Give the module a name. \\
\hline
\end{DoxyParams}


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

