\hypertarget{a00625}{\section{Open\+Mesh\+:\+:Iterators\+:\+:Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D$<$ Mesh, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$ Class Template Reference}
\label{a00625}\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\+E\+D$<$ Mesh, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.642229cm]{a00625}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00625_a7d51fa1746db602c6ff3e427f4868a44}{typedef std\+::ptrdiff\+\_\+t {\bfseries difference\+\_\+type}}\label{a00625_a7d51fa1746db602c6ff3e427f4868a44}

\item 
\hypertarget{a00625_a725c5188a87f7c3d0117e2025e9b4d3c}{typedef Value\+Handle {\bfseries value\+\_\+type}}\label{a00625_a725c5188a87f7c3d0117e2025e9b4d3c}

\item 
\hypertarget{a00625_a64b1c942a7efe4eab873e24a425b53df}{typedef const value\+\_\+type \& {\bfseries reference}}\label{a00625_a64b1c942a7efe4eab873e24a425b53df}

\item 
\hypertarget{a00625_ac929c55581c6f5347ea13d2842dafc16}{typedef const value\+\_\+type $\ast$ {\bfseries pointer}}\label{a00625_ac929c55581c6f5347ea13d2842dafc16}

\item 
\hypertarget{a00625_afb96a0b9a3f746ef08c5e9bd9eec99b8}{typedef \\*
std\+::bidirectional\+\_\+iterator\+\_\+tag {\bfseries iterator\+\_\+category}}\label{a00625_afb96a0b9a3f746ef08c5e9bd9eec99b8}

\item 
\hypertarget{a00625_a1b434d679dd476c08cf84c858a356ecb}{typedef \hyperlink{a00623}{Generic\+Circulator\+Base\+T}\\*
$<$ \hyperlink{a01335}{Mesh} $>$\+::\hyperlink{a01335}{mesh\+\_\+ptr} {\bfseries mesh\+\_\+ptr}}\label{a00625_a1b434d679dd476c08cf84c858a356ecb}

\item 
\hypertarget{a00625_adbcf34e90e3e118060f2d62ff7d6486e}{typedef \hyperlink{a00623}{Generic\+Circulator\+Base\+T}\\*
$<$ \hyperlink{a01335}{Mesh} $>$\+::\hyperlink{a01335}{mesh\+\_\+ref} {\bfseries mesh\+\_\+ref}}\label{a00625_adbcf34e90e3e118060f2d62ff7d6486e}

\item 
\hypertarget{a00625_a090b077466c02537097aa4f3a30f8352}{typedef \\*
\hyperlink{a00621}{Generic\+Circulator\+\_\+\+Value\+Handle\+Fns\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}\\*
$<$ \hyperlink{a01335}{Mesh}, Center\+Entity\+Handle, \\*
Value\+Handle $>$ {\bfseries Generic\+Circulator\+\_\+\+Value\+Handle\+Fns}}\label{a00625_a090b077466c02537097aa4f3a30f8352}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00625_ae31a9e0052e23aabe6461fcca98191cd}{{\bfseries Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} (\hyperlink{a01335}{mesh\+\_\+ref} mesh, Center\+Entity\+Handle start, bool end=false)}\label{a00625_ae31a9e0052e23aabe6461fcca98191cd}

\item 
\hypertarget{a00625_ac52d4d8b42bf353c09b804b668c46255}{{\bfseries Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} (\hyperlink{a01335}{mesh\+\_\+ref} mesh, \hyperlink{a00667}{Halfedge\+Handle} heh, bool end=false)}\label{a00625_ac52d4d8b42bf353c09b804b668c46255}

\item 
\hypertarget{a00625_a2c66598ed8fcc33bc363ee80f7bff2a3}{{\bfseries Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} (const \hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \&rhs)}\label{a00625_a2c66598ed8fcc33bc363ee80f7bff2a3}

\item 
\hypertarget{a00625_aeebb52ab72da70ee3e72ea0dd96e561f}{\hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \& {\bfseries operator++} ()}\label{a00625_aeebb52ab72da70ee3e72ea0dd96e561f}

\item 
\hypertarget{a00625_add2b61a3f363f0b4f1eb27bf86ca79fc}{\hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \& {\bfseries operator-\/-\/} ()}\label{a00625_add2b61a3f363f0b4f1eb27bf86ca79fc}

\item 
\hypertarget{a00625_aad97c1c8dc8f7be08fc8c64860ced51e}{\hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \hyperlink{a00625_aad97c1c8dc8f7be08fc8c64860ced51e}{operator++} (int)}\label{a00625_aad97c1c8dc8f7be08fc8c64860ced51e}

\begin{DoxyCompactList}\small\item\em Post-\/increment. \end{DoxyCompactList}\item 
\hypertarget{a00625_a53bae250f455ce894f440fe70aae05d7}{\hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \hyperlink{a00625_a53bae250f455ce894f440fe70aae05d7}{operator-\/-\/} (int)}\label{a00625_a53bae250f455ce894f440fe70aae05d7}

\begin{DoxyCompactList}\small\item\em Post-\/decrement. \end{DoxyCompactList}\item 
\hypertarget{a00625_a7b4b43125315addb9fa613169b893683}{value\+\_\+type \hyperlink{a00625_a7b4b43125315addb9fa613169b893683}{operator$\ast$} () const }\label{a00625_a7b4b43125315addb9fa613169b893683}

\begin{DoxyCompactList}\small\item\em Standard dereferencing operator. \end{DoxyCompactList}\item 
pointer \hyperlink{a00625_a2c8ecec9adea253a3a12445222c27a75}{operator-\/$>$} () const 
\begin{DoxyCompactList}\small\item\em Pointer dereferentiation. \end{DoxyCompactList}\item 
\hypertarget{a00625_a836780185ce5b53122dbf9dac2e36113}{\hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \& {\bfseries operator=} (const \hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \&rhs)}\label{a00625_a836780185ce5b53122dbf9dac2e36113}

\item 
\hypertarget{a00625_af3012a99c8c28ceed2cf24ca197efeeb}{bool {\bfseries operator==} (const \hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \&rhs) const }\label{a00625_af3012a99c8c28ceed2cf24ca197efeeb}

\item 
\hypertarget{a00625_aafc23e04de22a9c41afca361d0153b7f}{bool {\bfseries operator!=} (const \hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \&rhs) const }\label{a00625_aafc23e04de22a9c41afca361d0153b7f}

\item 
\hypertarget{a00625_aac9c8e3af00e17d8cb5e4a99d90a9297}{bool {\bfseries is\+\_\+valid} () const }\label{a00625_aac9c8e3af00e17d8cb5e4a99d90a9297}

\item 
const \hyperlink{a00667}{Halfedge\+Handle} \& \hyperlink{a00625_ad9bf46370365b15e13549f6688b380cd}{current\+\_\+halfedge\+\_\+handle} () const 
\item 
\hyperlink{a00625_a59cfbcbbbb84041ff5e558b3473840f0}{operator bool} () const 
\item 
value\+\_\+type \hyperlink{a00625_a75e82a70b8cc7eac318d31c39f0bad23}{handle} () const 
\begin{DoxyCompactList}\small\item\em Return the handle of the current target. \end{DoxyCompactList}\item 
\hyperlink{a00625_a6766473036dd7810b120f285ec128911}{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 
\hypertarget{a00625_a24cdc278e2d4dca57c5fb2c2a953b7b2}{value\+\_\+type {\bfseries pointer\+\_\+deref\+\_\+value}}\label{a00625_a24cdc278e2d4dca57c5fb2c2a953b7b2}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00625_ae1f15c9a5befc35f7c76d9eb7e4b08fb}{{\footnotesize template$<$typename S\+T\+R\+E\+A\+M $>$ }\\S\+T\+R\+E\+A\+M \& {\bfseries operator$<$$<$} (S\+T\+R\+E\+A\+M \&s, const \hyperlink{a00625}{Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D} \&self)}\label{a00625_ae1f15c9a5befc35f7c76d9eb7e4b08fb}

\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$>$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 428 of file Circulators\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00625_ad9bf46370365b15e13549f6688b380cd}{\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}!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\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}}
\subsubsection[{current\+\_\+halfedge\+\_\+handle}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ const {\bf Halfedge\+Handle}\& {\bf Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}$<$ {\bf Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::current\+\_\+halfedge\+\_\+handle (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00625_ad9bf46370365b15e13549f6688b380cd}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{a03411__deprecated000003}{Deprecated}]\hyperlink{a00625_ad9bf46370365b15e13549f6688b380cd}{current\+\_\+halfedge\+\_\+handle()} is an implementation detail and should not be accessed from outside the iterator class. \end{DoxyRefDesc}


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

\hypertarget{a00625_a75e82a70b8cc7eac318d31c39f0bad23}{\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}!handle@{handle}}
\index{handle@{handle}!Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}}
\subsubsection[{handle}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ value\+\_\+type {\bf Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}$<$ {\bf Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::handle (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00625_a75e82a70b8cc7eac318d31c39f0bad23}


Return the handle of the current target. 

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


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

\hypertarget{a00625_a59cfbcbbbb84041ff5e558b3473840f0}{\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}!operator bool@{operator bool}}
\index{operator bool@{operator bool}!Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}}
\subsubsection[{operator bool}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ {\bf Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}$<$ {\bf Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::operator bool (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00625_a59cfbcbbbb84041ff5e558b3473840f0}
\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{a03411__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 557 of file Circulators\+T.\+hh.

\hypertarget{a00625_a6766473036dd7810b120f285ec128911}{\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}!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\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}}
\subsubsection[{operator value\+\_\+type}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ {\bf Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}$<$ {\bf Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::operator value\+\_\+type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00625_a6766473036dd7810b120f285ec128911}


Cast to the handle of the current target. 

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


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

\hypertarget{a00625_a2c8ecec9adea253a3a12445222c27a75}{\index{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}!operator-\/$>$@{operator-\/$>$}}
\index{operator-\/$>$@{operator-\/$>$}!Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D@{Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}}
\subsubsection[{operator-\/$>$}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh , class Center\+Entity\+Handle , class Value\+Handle , Value\+Handle(\+Generic\+Circulator\+Base\+T$<$ Mesh $>$\+::$\ast$)() const Handle2\+Value$>$ pointer {\bf Open\+Mesh\+::\+Iterators\+::\+Generic\+Circulator\+T\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}$<$ {\bf Mesh}, Center\+Entity\+Handle, Value\+Handle, Handle2\+Value $>$\+::operator-\/$>$ (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00625_a2c8ecec9adea253a3a12445222c27a75}


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 519 of file Circulators\+T.\+hh.



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