\hypertarget{a08660}{}\section{Open\+Mesh\+:\+:Iterators\+:\+:Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED$<$ Mesh, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$ Class Template Reference}
\label{a08660}\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D$<$ Mesh, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D$<$ Mesh, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$}}
Inheritance diagram for Open\+Mesh\+:\+:Iterators\+:\+:Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED$<$ Mesh, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.642229cm]{a08660}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08660_a7d51fa1746db602c6ff3e427f4868a44}\label{a08660_a7d51fa1746db602c6ff3e427f4868a44}} 
typedef std\+::ptrdiff\+\_\+t {\bfseries difference\+\_\+type}
\item 
\mbox{\Hypertarget{a08660_a725c5188a87f7c3d0117e2025e9b4d3c}\label{a08660_a725c5188a87f7c3d0117e2025e9b4d3c}} 
typedef Value\+Handle {\bfseries value\+\_\+type}
\item 
\mbox{\Hypertarget{a08660_a64b1c942a7efe4eab873e24a425b53df}\label{a08660_a64b1c942a7efe4eab873e24a425b53df}} 
typedef const value\+\_\+type \& {\bfseries reference}
\item 
\mbox{\Hypertarget{a08660_ac929c55581c6f5347ea13d2842dafc16}\label{a08660_ac929c55581c6f5347ea13d2842dafc16}} 
typedef const value\+\_\+type $\ast$ {\bfseries pointer}
\item 
\mbox{\Hypertarget{a08660_afb96a0b9a3f746ef08c5e9bd9eec99b8}\label{a08660_afb96a0b9a3f746ef08c5e9bd9eec99b8}} 
typedef std\+::bidirectional\+\_\+iterator\+\_\+tag {\bfseries iterator\+\_\+category}
\item 
\mbox{\Hypertarget{a08660_a1b434d679dd476c08cf84c858a356ecb}\label{a08660_a1b434d679dd476c08cf84c858a356ecb}} 
typedef \hyperlink{a08644}{Generic\+Circulator\+BaseT}$<$ \hyperlink{a08764}{Mesh} $>$\+::\hyperlink{a08764}{mesh\+\_\+ptr} {\bfseries mesh\+\_\+ptr}
\item 
\mbox{\Hypertarget{a08660_adbcf34e90e3e118060f2d62ff7d6486e}\label{a08660_adbcf34e90e3e118060f2d62ff7d6486e}} 
typedef \hyperlink{a08644}{Generic\+Circulator\+BaseT}$<$ \hyperlink{a08764}{Mesh} $>$\+::\hyperlink{a08764}{mesh\+\_\+ref} {\bfseries mesh\+\_\+ref}
\item 
\mbox{\Hypertarget{a08660_a090b077466c02537097aa4f3a30f8352}\label{a08660_a090b077466c02537097aa4f3a30f8352}} 
typedef \hyperlink{a08652}{Generic\+Circulator\+\_\+\+Value\+Handle\+Fns\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}$<$ \hyperlink{a08764}{Mesh}, Center\+Entity\+Handle, Value\+Handle $>$ {\bfseries Generic\+Circulator\+\_\+\+Value\+Handle\+Fns}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08660_ae31a9e0052e23aabe6461fcca98191cd}\label{a08660_ae31a9e0052e23aabe6461fcca98191cd}} 
{\bfseries Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} (\hyperlink{a08764}{mesh\+\_\+ref} mesh, Center\+Entity\+Handle start, bool end=false)
\item 
\mbox{\Hypertarget{a08660_ac52d4d8b42bf353c09b804b668c46255}\label{a08660_ac52d4d8b42bf353c09b804b668c46255}} 
{\bfseries Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} (\hyperlink{a08764}{mesh\+\_\+ref} mesh, \hyperlink{a08700}{Halfedge\+Handle} heh, bool end=false)
\item 
\mbox{\Hypertarget{a08660_a2c66598ed8fcc33bc363ee80f7bff2a3}\label{a08660_a2c66598ed8fcc33bc363ee80f7bff2a3}} 
{\bfseries Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} (const \hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \&rhs)
\item 
\mbox{\Hypertarget{a08660_aeebb52ab72da70ee3e72ea0dd96e561f}\label{a08660_aeebb52ab72da70ee3e72ea0dd96e561f}} 
\hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \& {\bfseries operator++} ()
\item 
\mbox{\Hypertarget{a08660_add2b61a3f363f0b4f1eb27bf86ca79fc}\label{a08660_add2b61a3f363f0b4f1eb27bf86ca79fc}} 
\hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \& {\bfseries operator-\/-\/} ()
\item 
\mbox{\Hypertarget{a08660_aad97c1c8dc8f7be08fc8c64860ced51e}\label{a08660_aad97c1c8dc8f7be08fc8c64860ced51e}} 
\hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \hyperlink{a08660_aad97c1c8dc8f7be08fc8c64860ced51e}{operator++} (int)
\begin{DoxyCompactList}\small\item\em Post-\/increment. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08660_a53bae250f455ce894f440fe70aae05d7}\label{a08660_a53bae250f455ce894f440fe70aae05d7}} 
\hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \hyperlink{a08660_a53bae250f455ce894f440fe70aae05d7}{operator-\/-\/} (int)
\begin{DoxyCompactList}\small\item\em Post-\/decrement. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08660_a787e8a0f690832269bfa634221b0faf9}\label{a08660_a787e8a0f690832269bfa634221b0faf9}} 
value\+\_\+type \hyperlink{a08660_a787e8a0f690832269bfa634221b0faf9}{operator$\ast$} () const
\begin{DoxyCompactList}\small\item\em Standard dereferencing operator. \end{DoxyCompactList}\item 
pointer \hyperlink{a08660_aaa8f6469033f9f0d09b001dc68e21aa3}{operator-\/$>$} () const
\begin{DoxyCompactList}\small\item\em Pointer dereferentiation. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08660_a836780185ce5b53122dbf9dac2e36113}\label{a08660_a836780185ce5b53122dbf9dac2e36113}} 
\hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \& {\bfseries operator=} (const \hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \&rhs)
\item 
\mbox{\Hypertarget{a08660_a95d782a62d82038d720116922847bfde}\label{a08660_a95d782a62d82038d720116922847bfde}} 
bool {\bfseries operator==} (const \hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \&rhs) const
\item 
\mbox{\Hypertarget{a08660_a573aa2e3ef1dfa7e28fd960fb285addd}\label{a08660_a573aa2e3ef1dfa7e28fd960fb285addd}} 
bool {\bfseries operator!=} (const \hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \&rhs) const
\item 
\mbox{\Hypertarget{a08660_a8e8b74acdfdcacb8023cb9bda2abbb87}\label{a08660_a8e8b74acdfdcacb8023cb9bda2abbb87}} 
bool {\bfseries is\+\_\+valid} () const
\item 
const \hyperlink{a08700}{Halfedge\+Handle} \& \hyperlink{a08660_a14d8c42633b8a34736e32ddc5d85d9a4}{current\+\_\+halfedge\+\_\+handle} () const
\item 
\hyperlink{a08660_a6259ac1db67ccfe6346b2e532b1a558c}{operator bool} () const
\item 
value\+\_\+type \hyperlink{a08660_a8d1cab2764c47274d0c5a8b80a907c4d}{handle} () const
\begin{DoxyCompactList}\small\item\em Return the handle of the current target. \end{DoxyCompactList}\item 
\hyperlink{a08660_ad1dc471b704520f2ff706da37b37710b}{operator value\+\_\+type} () const
\begin{DoxyCompactList}\small\item\em Cast to the handle of the current target. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08660_a24cdc278e2d4dca57c5fb2c2a953b7b2}\label{a08660_a24cdc278e2d4dca57c5fb2c2a953b7b2}} 
value\+\_\+type {\bfseries pointer\+\_\+deref\+\_\+value}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08660_ae1f15c9a5befc35f7c76d9eb7e4b08fb}\label{a08660_ae1f15c9a5befc35f7c76d9eb7e4b08fb}} 
{\footnotesize template$<$typename S\+T\+R\+E\+AM $>$ }\\S\+T\+R\+E\+AM \& {\bfseries operator$<$$<$} (S\+T\+R\+E\+AM \&s, const \hyperlink{a08660}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED} \&self)
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$class Mesh, class Center\+Entity\+Handle, class Value\+Handle, Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$\newline
class Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D$<$ Mesh, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$}



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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a08660_a14d8c42633b8a34736e32ddc5d85d9a4}\label{a08660_a14d8c42633b8a34736e32ddc5d85d9a4}} 
\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}!current\+\_\+halfedge\+\_\+handle@{current\+\_\+halfedge\+\_\+handle}}
\index{current\+\_\+halfedge\+\_\+handle@{current\+\_\+halfedge\+\_\+handle}!Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}}
\subsubsection{\texorpdfstring{current\+\_\+halfedge\+\_\+handle()}{current\_halfedge\_handle()}}
{\footnotesize\ttfamily template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ \\
const \hyperlink{a08700}{Halfedge\+Handle}\& \hyperlink{a08660}{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}$<$ \hyperlink{a08764}{Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::current\+\_\+halfedge\+\_\+handle (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{a06165__deprecated000003}{Deprecated}]\hyperlink{a08660_a14d8c42633b8a34736e32ddc5d85d9a4}{current\+\_\+halfedge\+\_\+handle()} is an implementation detail and should not be accessed from outside the iterator class. \end{DoxyRefDesc}


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

\mbox{\Hypertarget{a08660_a8d1cab2764c47274d0c5a8b80a907c4d}\label{a08660_a8d1cab2764c47274d0c5a8b80a907c4d}} 
\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}!handle@{handle}}
\index{handle@{handle}!Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}}
\subsubsection{\texorpdfstring{handle()}{handle()}}
{\footnotesize\ttfamily template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ \\
value\+\_\+type \hyperlink{a08660}{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}$<$ \hyperlink{a08764}{Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::handle (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Return the handle of the current target. 

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{a06165__deprecated000005}{Deprecated}]This function clutters your code. Use dereferencing operators -\/$>$ and $\ast$ instead. \end{DoxyRefDesc}


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

\mbox{\Hypertarget{a08660_a6259ac1db67ccfe6346b2e532b1a558c}\label{a08660_a6259ac1db67ccfe6346b2e532b1a558c}} 
\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}!operator bool@{operator bool}}
\index{operator bool@{operator bool}!Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}}
\subsubsection{\texorpdfstring{operator bool()}{operator bool()}}
{\footnotesize\ttfamily template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ \\
\hyperlink{a08660}{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}$<$ \hyperlink{a08764}{Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::operator bool (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{a06165__deprecated000004}{Deprecated}]Do not use this error prone implicit cast. Compare to the end-\/iterator or use is\+\_\+valid() instead. \end{DoxyRefDesc}


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

\mbox{\Hypertarget{a08660_ad1dc471b704520f2ff706da37b37710b}\label{a08660_ad1dc471b704520f2ff706da37b37710b}} 
\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}!operator value\+\_\+type@{operator value\+\_\+type}}
\index{operator value\+\_\+type@{operator value\+\_\+type}!Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}}
\subsubsection{\texorpdfstring{operator value\+\_\+type()}{operator value\_type()}}
{\footnotesize\ttfamily template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ \\
\hyperlink{a08660}{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}$<$ \hyperlink{a08764}{Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::operator value\+\_\+type (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Cast to the handle of the current target. 

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{a06165__deprecated000006}{Deprecated}]Implicit casts of iterators are unsafe. Use dereferencing operators -\/$>$ and $\ast$ instead. \end{DoxyRefDesc}


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

\mbox{\Hypertarget{a08660_aaa8f6469033f9f0d09b001dc68e21aa3}\label{a08660_aaa8f6469033f9f0d09b001dc68e21aa3}} 
\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}}
\subsubsection{\texorpdfstring{operator-\/$>$()}{operator->()}}
{\footnotesize\ttfamily template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ \\
pointer \hyperlink{a08660}{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}$<$ \hyperlink{a08764}{Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::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 518 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}
