\hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{}\section{Open\+Mesh\+:\+:Iterators\+:\+:Generic\+CirculatorT$<$ Generic\+Circulator\+T\+\_\+\+TraitsT, CW $>$ Class Template Reference}
\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T$<$ Generic\+Circulator\+T\+\_\+\+Traits\+T, C\+W $>$@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T$<$ Generic\+Circulator\+T\+\_\+\+Traits\+T, C\+W $>$}}
Inheritance diagram for Open\+Mesh\+:\+:Iterators\+:\+:Generic\+CirculatorT$<$ Generic\+Circulator\+T\+\_\+\+TraitsT, CW $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a60377ba4fc65acf638d4c61aafcef965}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a60377ba4fc65acf638d4c61aafcef965}} 
using {\bfseries Mesh} = typename Generic\+Circulator\+T\+\_\+\+Traits\+T\+::\+Mesh
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a0c438746f9747ec82b895874c2312215}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a0c438746f9747ec82b895874c2312215}} 
using {\bfseries value\+\_\+type} = typename Generic\+Circulator\+T\+\_\+\+Traits\+T\+::\+Value\+Handle
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a900cbc966936b8ed34f8bb72550468ea}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a900cbc966936b8ed34f8bb72550468ea}} 
using {\bfseries Center\+Entity\+Handle} = typename Generic\+Circulator\+T\+\_\+\+Traits\+T\+::\+Center\+Entity\+Handle
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aa083737db7fe176d56141cc65ac1763b}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aa083737db7fe176d56141cc65ac1763b}} 
using {\bfseries smart\+\_\+value\+\_\+type} = decltype(\hyperlink{namespaceOpenMesh_a01823bd95e3ef1afee35b1abc97c754f}{make\+\_\+smart}(std\+::declval$<$ value\+\_\+type $>$(), std\+::declval$<$ Mesh $>$()))
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aabb928d6cefc3e271b107125822152b7}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aabb928d6cefc3e271b107125822152b7}} 
typedef std\+::ptrdiff\+\_\+t {\bfseries difference\+\_\+type}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a50a79bd7470b7e87e4f8661ee97f131c}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a50a79bd7470b7e87e4f8661ee97f131c}} 
typedef const value\+\_\+type \& {\bfseries reference}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a84142cbe6baa47d384a4e42906933d4f}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a84142cbe6baa47d384a4e42906933d4f}} 
typedef const smart\+\_\+value\+\_\+type $\ast$ {\bfseries pointer}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a021e76614ad6285208f7558c7d82506e}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a021e76614ad6285208f7558c7d82506e}} 
typedef std\+::bidirectional\+\_\+iterator\+\_\+tag {\bfseries iterator\+\_\+category}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_afa88c860c1cc722a2a478233f20821e8}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_afa88c860c1cc722a2a478233f20821e8}} 
typedef \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorBaseT}{Generic\+Circulator\+BaseT}$<$ Mesh $>$\+::\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{mesh\+\_\+ptr} {\bfseries mesh\+\_\+ptr}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a2ae7dc61ac6a00512b8a3e4bb5a643e7}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a2ae7dc61ac6a00512b8a3e4bb5a643e7}} 
typedef \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorBaseT}{Generic\+Circulator\+BaseT}$<$ Mesh $>$\+::\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{mesh\+\_\+ref} {\bfseries mesh\+\_\+ref}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_ab484e6095d71efa9d0883cd45c77b849}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_ab484e6095d71efa9d0883cd45c77b849}} 
typedef \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculator__ValueHandleFnsT}{Generic\+Circulator\+\_\+\+Value\+Handle\+FnsT}$<$ Mesh, Center\+Entity\+Handle, value\+\_\+type, CW $>$ {\bfseries Generic\+Circulator\+\_\+\+Value\+Handle\+Fns}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a8d61c6e3b51b0a5d33e24aac467a3f49}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a8d61c6e3b51b0a5d33e24aac467a3f49}} 
{\bfseries Generic\+CirculatorT} (\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{mesh\+\_\+ref} mesh, Center\+Entity\+Handle start, bool end=false)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a2d57937980a1b4c0f8e8016cca38dea6}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a2d57937980a1b4c0f8e8016cca38dea6}} 
{\bfseries Generic\+CirculatorT} (\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{mesh\+\_\+ref} mesh, \hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} heh, bool end=false)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aa12efe8860557b1b2180b95e299e465f}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aa12efe8860557b1b2180b95e299e465f}} 
{\bfseries Generic\+CirculatorT} (const \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \&rhs)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a750b5e39e2160a000e3c465a5106aa3f}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a750b5e39e2160a000e3c465a5106aa3f}} 
{\bfseries Generic\+CirculatorT} (const \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT}$<$ Generic\+Circulator\+T\+\_\+\+TraitsT,!CW $>$ \&rhs)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_adda7520399ff54a27dc62519a1fe6a68}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_adda7520399ff54a27dc62519a1fe6a68}} 
\hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \& {\bfseries operator++} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_ab0ad89fdd4fea3b2fe6559930921f528}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_ab0ad89fdd4fea3b2fe6559930921f528}} 
\hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \& {\bfseries operator-\/-\/} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a2e640cb0eeb881969718b4cd0f71ccd2}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a2e640cb0eeb881969718b4cd0f71ccd2}} 
\hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a2e640cb0eeb881969718b4cd0f71ccd2}{operator++} (int)
\begin{DoxyCompactList}\small\item\em Post-\/increment. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a3bc4f4661e011362b6d34be7c73f9d45}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a3bc4f4661e011362b6d34be7c73f9d45}} 
\hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a3bc4f4661e011362b6d34be7c73f9d45}{operator-\/-\/} (int)
\begin{DoxyCompactList}\small\item\em Post-\/decrement. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a1078a4b71752d9b179ad257f3dffbf40}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a1078a4b71752d9b179ad257f3dffbf40}} 
smart\+\_\+value\+\_\+type \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a1078a4b71752d9b179ad257f3dffbf40}{operator$\ast$} () const
\begin{DoxyCompactList}\small\item\em Standard dereferencing operator. \end{DoxyCompactList}\item 
pointer \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a9d06d55a48b1d234ef6534db64db216e}{operator-\/$>$} () const
\begin{DoxyCompactList}\small\item\em Pointer dereferentiation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_af0715889a5bb495a2c768aa06b4a8415}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_af0715889a5bb495a2c768aa06b4a8415}} 
\hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \& {\bfseries operator=} (const \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \&rhs)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a2ff9adaecbc86a49d20945c8722358e2}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a2ff9adaecbc86a49d20945c8722358e2}} 
bool {\bfseries operator==} (const \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \&rhs) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_af703b8bab6bd4273b07aa6b1532e2cdb}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_af703b8bab6bd4273b07aa6b1532e2cdb}} 
bool {\bfseries operator!=} (const \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \&rhs) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a08b09e9857f1f52f86690ad904d40688}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a08b09e9857f1f52f86690ad904d40688}} 
bool {\bfseries is\+\_\+valid} () const
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aeee9d51eca4536b5973398b4858fc2d0}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aeee9d51eca4536b5973398b4858fc2d0}} 
smart\+\_\+value\+\_\+type {\bfseries pointer\+\_\+deref\+\_\+value}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aa4d9085f3ff3063f2895014b2aa55338}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aa4d9085f3ff3063f2895014b2aa55338}} 
class {\bfseries Generic\+Circulator\+T$<$ Generic\+Circulator\+T\+\_\+\+Traits\+T,!\+C\+W $>$}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aaf6d473ce417d27153091ec7c55730ab}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_aaf6d473ce417d27153091ec7c55730ab}} 
{\footnotesize template$<$typename S\+T\+R\+E\+AM $>$ }\\S\+T\+R\+E\+AM \& {\bfseries operator$<$$<$} (S\+T\+R\+E\+AM \&s, const \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Generic\+CirculatorT} \&self)
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Generic\+Circulator\+T\+\_\+\+TraitsT, bool CW = true$>$\newline
class Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T$<$ Generic\+Circulator\+T\+\_\+\+Traits\+T, C\+W $>$}



Definition at line 254 of file Circulators\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a9d06d55a48b1d234ef6534db64db216e}\label{classOpenMesh_1_1Iterators_1_1GenericCirculatorT_a9d06d55a48b1d234ef6534db64db216e}} 
\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+CirculatorT@{Open\+Mesh\+::\+Iterators\+::\+Generic\+CirculatorT}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!Open\+Mesh\+::\+Iterators\+::\+Generic\+CirculatorT@{Open\+Mesh\+::\+Iterators\+::\+Generic\+CirculatorT}}
\subsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}}
{\footnotesize\ttfamily template$<$typename Generic\+Circulator\+T\+\_\+\+TraitsT, bool CW = true$>$ \\
pointer \hyperlink{classOpenMesh_1_1Iterators_1_1GenericCirculatorT}{Open\+Mesh\+::\+Iterators\+::\+Generic\+CirculatorT}$<$ Generic\+Circulator\+T\+\_\+\+TraitsT, CW $>$\+::operator-\/$>$ (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Pointer dereferentiation. 

This returns a pointer which points to a handle that loses its validity once this dereferentiation is invoked again. Thus, do not store the result of this operation. 

Definition at line 336 of file Circulators\+T.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Mesh/Circulators\+T.\+hh\end{DoxyCompactItemize}
