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


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

Inheritance diagram for Open\+Mesh\+:\+:Subdivider\+:\+:Adaptive\+:\+:Rule\+Interface\+T$<$ M $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=12.000000cm]{a01125}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01125_a49ab5fcd150855be482374cd006b767e}{typedef M {\bfseries Mesh}}\label{a01125_a49ab5fcd150855be482374cd006b767e}

\item 
\hypertarget{a01125_afcf0633d1fd08fb041047b4ff350b5c9}{typedef \hyperlink{a01125}{Rule\+Interface\+T}$<$ M $>$ {\bfseries Self}}\label{a01125_afcf0633d1fd08fb041047b4ff350b5c9}

\item 
\hypertarget{a01125_a5b6d8f209f39c8e0e3cb8ad6e70b9df6}{typedef \hyperlink{a01124}{Rule\+Handle\+T}$<$ \hyperlink{a01125}{Self} $>$ {\bfseries Rule}}\label{a01125_a5b6d8f209f39c8e0e3cb8ad6e70b9df6}

\item 
\hypertarget{a01125_a628bf242187501f8479fd0537bf67aae}{typedef M\+::\+Scalar {\bfseries scalar\+\_\+t}}\label{a01125_a628bf242187501f8479fd0537bf67aae}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01125_a8ddeddc3453946250c0313b21b79295b}{virtual \hyperlink{a01125_a8ddeddc3453946250c0313b21b79295b}{$\sim$\+Rule\+Interface\+T} ()}\label{a01125_a8ddeddc3453946250c0313b21b79295b}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
virtual const char $\ast$ \hyperlink{a01125_a0b9f68cde6a972bef5662cd032bf5992}{type} () const =0
\item 
\hypertarget{a01125_adaf8b40ec8cd1e8781e8dab4d3159579}{void {\bfseries update} (typename M\+::\+Face\+Handle \&\+\_\+fh, \hyperlink{a03384_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)}\label{a01125_adaf8b40ec8cd1e8781e8dab4d3159579}

\item 
\hypertarget{a01125_a259045b807b2509999563f9fc21d250f}{void {\bfseries update} (typename M\+::\+Edge\+Handle \&\+\_\+eh, \hyperlink{a03384_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)}\label{a01125_a259045b807b2509999563f9fc21d250f}

\item 
\hypertarget{a01125_a762abadca24f09a992d69ee88dfdb60f}{void {\bfseries update} (typename M\+::\+Vertex\+Handle \&\+\_\+vh, \hyperlink{a03384_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)}\label{a01125_a762abadca24f09a992d69ee88dfdb60f}

\item 
\hypertarget{a01125_ac786f275084a0cb33db23e82086a1fe1}{int \hyperlink{a01125_ac786f275084a0cb33db23e82086a1fe1}{subdiv\+\_\+type} () const }\label{a01125_ac786f275084a0cb33db23e82086a1fe1}

\begin{DoxyCompactList}\small\item\em Type of split operation, if it is a topological operator. \end{DoxyCompactList}\item 
\hypertarget{a01125_a09e217ad7942e63e8173261a476e4393}{int \hyperlink{a01125_a09e217ad7942e63e8173261a476e4393}{number} () const }\label{a01125_a09e217ad7942e63e8173261a476e4393}

\begin{DoxyCompactList}\small\item\em Position in rule sequence. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf Raise item}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01125_a271540a6587ff8fb67b26b3dbc3ab2d8}{virtual void \hyperlink{a01125_a271540a6587ff8fb67b26b3dbc3ab2d8}{raise} (typename M\+::\+Face\+Handle \&\+\_\+fh, \hyperlink{a03384_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)}\label{a01125_a271540a6587ff8fb67b26b3dbc3ab2d8}

\begin{DoxyCompactList}\small\item\em Raise item to target state {\ttfamily \+\_\+target\+\_\+state}. \end{DoxyCompactList}\item 
\hypertarget{a01125_a6015b1bab47e1bbff4882f86e5616809}{virtual void \hyperlink{a01125_a6015b1bab47e1bbff4882f86e5616809}{raise} (typename M\+::\+Edge\+Handle \&\+\_\+eh, \hyperlink{a03384_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)}\label{a01125_a6015b1bab47e1bbff4882f86e5616809}

\begin{DoxyCompactList}\small\item\em Raise item to target state {\ttfamily \+\_\+target\+\_\+state}. \end{DoxyCompactList}\item 
\hypertarget{a01125_a93f0a04a38a7ea775bceda7edeed4314}{virtual void \hyperlink{a01125_a93f0a04a38a7ea775bceda7edeed4314}{raise} (typename M\+::\+Vertex\+Handle \&\+\_\+vh, \hyperlink{a03384_af706613543b0da1b097580a9dc30fc6e}{state\+\_\+t} \+\_\+target\+\_\+state)}\label{a01125_a93f0a04a38a7ea775bceda7edeed4314}

\begin{DoxyCompactList}\small\item\em Raise item to target state {\ttfamily \+\_\+target\+\_\+state}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}{\bf Parameterization of rule}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01125_af0740a6658e4ec8f186ac53088ef0d01}{virtual void \hyperlink{a01125_af0740a6658e4ec8f186ac53088ef0d01}{set\+\_\+coeff} (scalar\+\_\+t \+\_\+coeff)}\label{a01125_af0740a6658e4ec8f186ac53088ef0d01}

\begin{DoxyCompactList}\small\item\em Set coefficient -\/ ignored by non-\/parameterized rules. \end{DoxyCompactList}\item 
\hypertarget{a01125_ac0acb50afb26b4c0b62dbea774522c66}{scalar\+\_\+t \hyperlink{a01125_ac0acb50afb26b4c0b62dbea774522c66}{coeff} () const }\label{a01125_ac0acb50afb26b4c0b62dbea774522c66}

\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 
\hypertarget{a01125_a9a46c1370495c4ea2b116e77ab8b709a}{\hyperlink{a01125_a9a46c1370495c4ea2b116e77ab8b709a}{Rule\+Interface\+T} (Mesh \&\+\_\+mesh)}\label{a01125_a9a46c1370495c4ea2b116e77ab8b709a}

\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hypertarget{a01125_a7afd1d969d22b0b0837805e21f2ca2c2}{void {\bfseries set\+\_\+prev\+\_\+rule} (\hyperlink{a01125}{Self} $\ast$\&\+\_\+p)}\label{a01125_a7afd1d969d22b0b0837805e21f2ca2c2}

\item 
\hypertarget{a01125_ac84c5f1323bc8eafc18b2978441cb96c}{\hyperlink{a01125}{Self} $\ast$ {\bfseries prev\+\_\+rule} ()}\label{a01125_ac84c5f1323bc8eafc18b2978441cb96c}

\item 
\hypertarget{a01125_aa8ae5a96122e99ee6ac39728921949b3}{void {\bfseries set\+\_\+subdiv\+\_\+rule} (\hyperlink{a01125}{Self} $\ast$\&\+\_\+n)}\label{a01125_aa8ae5a96122e99ee6ac39728921949b3}

\item 
\hypertarget{a01125_af56278d98179d57d86546674785a45a1}{\hyperlink{a01125}{Self} $\ast$ {\bfseries subdiv\+\_\+rule} ()}\label{a01125_af56278d98179d57d86546674785a45a1}

\item 
\hypertarget{a01125_ad8ab90db8b575cfa5b8403e75f51733a}{void {\bfseries set\+\_\+number} (int \+\_\+n)}\label{a01125_ad8ab90db8b575cfa5b8403e75f51733a}

\item 
\hypertarget{a01125_ae0d6aed645cba222ee1769697cc65d1c}{void {\bfseries set\+\_\+n\+\_\+rules} (int \+\_\+n)}\label{a01125_ae0d6aed645cba222ee1769697cc65d1c}

\item 
\hypertarget{a01125_ae115a18ac2920bac8f23c3ca9a9c4ffc}{int {\bfseries n\+\_\+rules} ()}\label{a01125_ae115a18ac2920bac8f23c3ca9a9c4ffc}

\item 
\hypertarget{a01125_a110806972dd8fad0b7188e9b97bdc684}{void {\bfseries set\+\_\+subdiv\+\_\+type} (int \+\_\+n)}\label{a01125_a110806972dd8fad0b7188e9b97bdc684}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01125_a2c200c977b8c61a1ad2ec8e6099ea66c}{Mesh \& {\bfseries mesh\+\_\+}}\label{a01125_a2c200c977b8c61a1ad2ec8e6099ea66c}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01125_a5d199bd4a4621cc3908b1eb25f2187b7}{{\bfseries Rule\+Interface\+T} (const \hyperlink{a01125}{Rule\+Interface\+T} \&)}\label{a01125_a5d199bd4a4621cc3908b1eb25f2187b7}

\item 
\hypertarget{a01125_ab22d43c55d1360c07b7948cc867be2ea}{\hyperlink{a01125}{Rule\+Interface\+T} \& {\bfseries operator=} (const \hyperlink{a01125}{Rule\+Interface\+T} \&)}\label{a01125_ab22d43c55d1360c07b7948cc867be2ea}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01125_ab1af7b08be3e98cfcd17f694d2733273}{\hyperlink{a01125}{Self} $\ast$ {\bfseries prev\+\_\+rule\+\_\+}}\label{a01125_ab1af7b08be3e98cfcd17f694d2733273}

\item 
\hypertarget{a01125_afcfb3705a27871e4ef0f97fb7e75e72e}{\hyperlink{a01125}{Self} $\ast$ {\bfseries subdiv\+\_\+rule\+\_\+}}\label{a01125_afcfb3705a27871e4ef0f97fb7e75e72e}

\item 
\hypertarget{a01125_af1f580e2a9f41577e10249c41debdd25}{int {\bfseries subdiv\+\_\+type\+\_\+}}\label{a01125_af1f580e2a9f41577e10249c41debdd25}

\item 
\hypertarget{a01125_a6a59fd086102f431982d85fece759b79}{int {\bfseries number\+\_\+}}\label{a01125_a6a59fd086102f431982d85fece759b79}

\item 
\hypertarget{a01125_a3cf1c0a5e50e93d02d5a8e8544a5075b}{int {\bfseries n\+\_\+rules\+\_\+}}\label{a01125_a3cf1c0a5e50e93d02d5a8e8544a5075b}

\item 
\hypertarget{a01125_a798ad4f59087f76ffaecc744b47efbbe}{scalar\+\_\+t {\bfseries coeff\+\_\+}}\label{a01125_a798ad4f59087f76ffaecc744b47efbbe}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01125_a7cacb6579bb9d17013cf9f2b0bd3770f}{class {\bfseries Composite\+T$<$ M $>$}}\label{a01125_a7cacb6579bb9d17013cf9f2b0bd3770f}

\end{DoxyCompactItemize}


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

Base class for adaptive composite subdivision rules \begin{DoxySeeAlso}{See also}
class \hyperlink{a00439}{Composite\+T} 
\end{DoxySeeAlso}


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



\subsection{Member Function Documentation}
\hypertarget{a01125_a0b9f68cde6a972bef5662cd032bf5992}{\index{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+Interface\+T@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+Interface\+T}!type@{type}}
\index{type@{type}!Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+Interface\+T@{Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+Interface\+T}}
\subsubsection[{type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename M $>$ virtual const char$\ast$ {\bf Open\+Mesh\+::\+Subdivider\+::\+Adaptive\+::\+Rule\+Interface\+T}$<$ M $>$\+::type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{a01125_a0b9f68cde6a972bef5662cd032bf5992}
Returns the name of the rule. Use define C\+O\+M\+P\+O\+S\+I\+T\+E\+\_\+\+R\+U\+L\+E to overload this function in a derived class. 

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