\hypertarget{a09076}{}\section{Open\+Mesh\+:\+:Subdivider\+:\+:Adaptive\+:\+:Rule\+InterfaceT$<$ M $>$ Class Template Reference}
\label{a09076}\index{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+Interface\+T$<$ M $>$@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+Interface\+T$<$ M $>$}}


{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Adaptive/\+Composite/\+Rule\+Interface\+T.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:Subdivider\+:\+:Adaptive\+:\+:Rule\+InterfaceT$<$ M $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{a09076}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09076_a49ab5fcd150855be482374cd006b767e}\label{a09076_a49ab5fcd150855be482374cd006b767e}} 
typedef M {\bfseries Mesh}
\item 
\mbox{\Hypertarget{a09076_afcf0633d1fd08fb041047b4ff350b5c9}\label{a09076_afcf0633d1fd08fb041047b4ff350b5c9}} 
typedef \hyperlink{a09076}{Rule\+InterfaceT}$<$ M $>$ {\bfseries Self}
\item 
\mbox{\Hypertarget{a09076_a5b6d8f209f39c8e0e3cb8ad6e70b9df6}\label{a09076_a5b6d8f209f39c8e0e3cb8ad6e70b9df6}} 
typedef \hyperlink{a09072}{Rule\+HandleT}$<$ \hyperlink{a09076}{Self} $>$ {\bfseries Rule}
\item 
\mbox{\Hypertarget{a09076_a628bf242187501f8479fd0537bf67aae}\label{a09076_a628bf242187501f8479fd0537bf67aae}} 
typedef M\+::\+Scalar {\bfseries scalar\+\_\+t}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09076_a8ddeddc3453946250c0313b21b79295b}\label{a09076_a8ddeddc3453946250c0313b21b79295b}} 
virtual \hyperlink{a09076_a8ddeddc3453946250c0313b21b79295b}{$\sim$\+Rule\+InterfaceT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
virtual const char $\ast$ \hyperlink{a09076_a0b9f68cde6a972bef5662cd032bf5992}{type} () const =0
\item 
\mbox{\Hypertarget{a09076_adaf8b40ec8cd1e8781e8dab4d3159579}\label{a09076_adaf8b40ec8cd1e8781e8dab4d3159579}} 
void {\bfseries update} (typename M\+::\+Face\+Handle \&\+\_\+fh, \hyperlink{a06218_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)
\item 
\mbox{\Hypertarget{a09076_a259045b807b2509999563f9fc21d250f}\label{a09076_a259045b807b2509999563f9fc21d250f}} 
void {\bfseries update} (typename M\+::\+Edge\+Handle \&\+\_\+eh, \hyperlink{a06218_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)
\item 
\mbox{\Hypertarget{a09076_a762abadca24f09a992d69ee88dfdb60f}\label{a09076_a762abadca24f09a992d69ee88dfdb60f}} 
void {\bfseries update} (typename M\+::\+Vertex\+Handle \&\+\_\+vh, \hyperlink{a06218_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)
\item 
\mbox{\Hypertarget{a09076_a9ab34a5b45019dc9464dbc1268df607a}\label{a09076_a9ab34a5b45019dc9464dbc1268df607a}} 
int \hyperlink{a09076_a9ab34a5b45019dc9464dbc1268df607a}{subdiv\+\_\+type} () const
\begin{DoxyCompactList}\small\item\em Type of split operation, if it is a topological operator. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a09076_a84cdab5eafce0be29ecd50591a43a440}\label{a09076_a84cdab5eafce0be29ecd50591a43a440}} 
int \hyperlink{a09076_a84cdab5eafce0be29ecd50591a43a440}{number} () const
\begin{DoxyCompactList}\small\item\em Position in rule sequence. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Raise item}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09076_a271540a6587ff8fb67b26b3dbc3ab2d8}\label{a09076_a271540a6587ff8fb67b26b3dbc3ab2d8}} 
virtual void \hyperlink{a09076_a271540a6587ff8fb67b26b3dbc3ab2d8}{raise} (typename M\+::\+Face\+Handle \&\+\_\+fh, \hyperlink{a06218_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)
\begin{DoxyCompactList}\small\item\em Raise item to target state {\ttfamily \+\_\+target\+\_\+state}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a09076_a6015b1bab47e1bbff4882f86e5616809}\label{a09076_a6015b1bab47e1bbff4882f86e5616809}} 
virtual void \hyperlink{a09076_a6015b1bab47e1bbff4882f86e5616809}{raise} (typename M\+::\+Edge\+Handle \&\+\_\+eh, \hyperlink{a06218_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)
\begin{DoxyCompactList}\small\item\em Raise item to target state {\ttfamily \+\_\+target\+\_\+state}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a09076_a93f0a04a38a7ea775bceda7edeed4314}\label{a09076_a93f0a04a38a7ea775bceda7edeed4314}} 
virtual void \hyperlink{a09076_a93f0a04a38a7ea775bceda7edeed4314}{raise} (typename M\+::\+Vertex\+Handle \&\+\_\+vh, \hyperlink{a06218_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)
\begin{DoxyCompactList}\small\item\em Raise item to target state {\ttfamily \+\_\+target\+\_\+state}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Parameterization of rule}\par
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09076_af0740a6658e4ec8f186ac53088ef0d01}\label{a09076_af0740a6658e4ec8f186ac53088ef0d01}} 
virtual void \hyperlink{a09076_af0740a6658e4ec8f186ac53088ef0d01}{set\+\_\+coeff} (scalar\+\_\+t \+\_\+coeff)
\begin{DoxyCompactList}\small\item\em Set coefficient -\/ ignored by non-\/parameterized rules. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a09076_a5895e5c94ed83194815794e51a10e67d}\label{a09076_a5895e5c94ed83194815794e51a10e67d}} 
scalar\+\_\+t \hyperlink{a09076_a5895e5c94ed83194815794e51a10e67d}{coeff} () const
\begin{DoxyCompactList}\small\item\em Get coefficient -\/ ignored by non-\/parameterized rules. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09076_a9a46c1370495c4ea2b116e77ab8b709a}\label{a09076_a9a46c1370495c4ea2b116e77ab8b709a}} 
\hyperlink{a09076_a9a46c1370495c4ea2b116e77ab8b709a}{Rule\+InterfaceT} (Mesh \&\+\_\+mesh)
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a09076_a7afd1d969d22b0b0837805e21f2ca2c2}\label{a09076_a7afd1d969d22b0b0837805e21f2ca2c2}} 
void {\bfseries set\+\_\+prev\+\_\+rule} (\hyperlink{a09076}{Self} $\ast$\&\+\_\+p)
\item 
\mbox{\Hypertarget{a09076_ac84c5f1323bc8eafc18b2978441cb96c}\label{a09076_ac84c5f1323bc8eafc18b2978441cb96c}} 
\hyperlink{a09076}{Self} $\ast$ {\bfseries prev\+\_\+rule} ()
\item 
\mbox{\Hypertarget{a09076_aa8ae5a96122e99ee6ac39728921949b3}\label{a09076_aa8ae5a96122e99ee6ac39728921949b3}} 
void {\bfseries set\+\_\+subdiv\+\_\+rule} (\hyperlink{a09076}{Self} $\ast$\&\+\_\+n)
\item 
\mbox{\Hypertarget{a09076_af56278d98179d57d86546674785a45a1}\label{a09076_af56278d98179d57d86546674785a45a1}} 
\hyperlink{a09076}{Self} $\ast$ {\bfseries subdiv\+\_\+rule} ()
\item 
\mbox{\Hypertarget{a09076_ad8ab90db8b575cfa5b8403e75f51733a}\label{a09076_ad8ab90db8b575cfa5b8403e75f51733a}} 
void {\bfseries set\+\_\+number} (int \+\_\+n)
\item 
\mbox{\Hypertarget{a09076_ae0d6aed645cba222ee1769697cc65d1c}\label{a09076_ae0d6aed645cba222ee1769697cc65d1c}} 
void {\bfseries set\+\_\+n\+\_\+rules} (int \+\_\+n)
\item 
\mbox{\Hypertarget{a09076_ae115a18ac2920bac8f23c3ca9a9c4ffc}\label{a09076_ae115a18ac2920bac8f23c3ca9a9c4ffc}} 
int {\bfseries n\+\_\+rules} ()
\item 
\mbox{\Hypertarget{a09076_a110806972dd8fad0b7188e9b97bdc684}\label{a09076_a110806972dd8fad0b7188e9b97bdc684}} 
void {\bfseries set\+\_\+subdiv\+\_\+type} (int \+\_\+n)
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09076_a2c200c977b8c61a1ad2ec8e6099ea66c}\label{a09076_a2c200c977b8c61a1ad2ec8e6099ea66c}} 
Mesh \& {\bfseries mesh\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09076_a5d199bd4a4621cc3908b1eb25f2187b7}\label{a09076_a5d199bd4a4621cc3908b1eb25f2187b7}} 
{\bfseries Rule\+InterfaceT} (const \hyperlink{a09076}{Rule\+InterfaceT} \&)
\item 
\mbox{\Hypertarget{a09076_ab22d43c55d1360c07b7948cc867be2ea}\label{a09076_ab22d43c55d1360c07b7948cc867be2ea}} 
\hyperlink{a09076}{Rule\+InterfaceT} \& {\bfseries operator=} (const \hyperlink{a09076}{Rule\+InterfaceT} \&)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09076_ab1af7b08be3e98cfcd17f694d2733273}\label{a09076_ab1af7b08be3e98cfcd17f694d2733273}} 
\hyperlink{a09076}{Self} $\ast$ {\bfseries prev\+\_\+rule\+\_\+}
\item 
\mbox{\Hypertarget{a09076_afcfb3705a27871e4ef0f97fb7e75e72e}\label{a09076_afcfb3705a27871e4ef0f97fb7e75e72e}} 
\hyperlink{a09076}{Self} $\ast$ {\bfseries subdiv\+\_\+rule\+\_\+}
\item 
\mbox{\Hypertarget{a09076_af1f580e2a9f41577e10249c41debdd25}\label{a09076_af1f580e2a9f41577e10249c41debdd25}} 
int {\bfseries subdiv\+\_\+type\+\_\+}
\item 
\mbox{\Hypertarget{a09076_a6a59fd086102f431982d85fece759b79}\label{a09076_a6a59fd086102f431982d85fece759b79}} 
int {\bfseries number\+\_\+}
\item 
\mbox{\Hypertarget{a09076_a3cf1c0a5e50e93d02d5a8e8544a5075b}\label{a09076_a3cf1c0a5e50e93d02d5a8e8544a5075b}} 
int {\bfseries n\+\_\+rules\+\_\+}
\item 
\mbox{\Hypertarget{a09076_a798ad4f59087f76ffaecc744b47efbbe}\label{a09076_a798ad4f59087f76ffaecc744b47efbbe}} 
scalar\+\_\+t {\bfseries coeff\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a09076_a7cacb6579bb9d17013cf9f2b0bd3770f}\label{a09076_a7cacb6579bb9d17013cf9f2b0bd3770f}} 
class {\bfseries Composite\+T$<$ M $>$}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename M$>$\newline
class Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+Interface\+T$<$ M $>$}

Base class for adaptive composite subdivision rules \begin{DoxySeeAlso}{See also}
class \hyperlink{a09080}{CompositeT} 
\end{DoxySeeAlso}


Definition at line 79 of file Composite\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a09076_a0b9f68cde6a972bef5662cd032bf5992}\label{a09076_a0b9f68cde6a972bef5662cd032bf5992}} 
\index{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+InterfaceT@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+InterfaceT}!type@{type}}
\index{type@{type}!Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+InterfaceT@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+InterfaceT}}
\subsubsection{\texorpdfstring{type()}{type()}}
{\footnotesize\ttfamily template$<$typename M $>$ \\
virtual const char$\ast$ \hyperlink{a09076}{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+InterfaceT}$<$ M $>$\+::type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [pure virtual]}}

Returns the name of the rule. Use define C\+O\+M\+P\+O\+S\+I\+T\+E\+\_\+\+R\+U\+LE to overload this function in a derived class. 

The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Adaptive/\+Composite/\hyperlink{a15295}{Composite\+T.\+hh}\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Adaptive/\+Composite/Rule\+Interface\+T.\+hh\end{DoxyCompactItemize}
