\hypertarget{a08576}{}\section{Open\+Mesh\+:\+:Array\+Kernel Class Reference}
\label{a08576}\index{Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}}


{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Mesh/\+Array\+Kernel.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:Array\+Kernel\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{a08576}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{a08584}{Auto\+Status\+SetT}
\begin{DoxyCompactList}\small\item\em \hyperlink{a08584}{Auto\+Status\+SetT}\+: A status set that automatically picks a status bit. \end{DoxyCompactList}\item 
class \hyperlink{a08588}{Ext\+Status\+SetT}
\begin{DoxyCompactList}\small\item\em Ext\+Status\+Set\+: A status set augmented with an array. \end{DoxyCompactList}\item 
class \hyperlink{a08580}{Status\+SetT}
\begin{DoxyCompactList}\small\item\em --- Status\+Set A\+PI --- \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08576_a9bc2f48da54d2ecdf4b6c8a2d782ed04}\label{a08576_a9bc2f48da54d2ecdf4b6c8a2d782ed04}} 
typedef \hyperlink{a08696}{Open\+Mesh\+::\+Vertex\+Handle} {\bfseries Vertex\+Handle}
\item 
\mbox{\Hypertarget{a08576_a266c734d6b553a1b4126849edc031756}\label{a08576_a266c734d6b553a1b4126849edc031756}} 
typedef \hyperlink{a08700}{Open\+Mesh\+::\+Halfedge\+Handle} {\bfseries Halfedge\+Handle}
\item 
\mbox{\Hypertarget{a08576_a148fb77191c02a9192eeba572d90744d}\label{a08576_a148fb77191c02a9192eeba572d90744d}} 
typedef \hyperlink{a08704}{Open\+Mesh\+::\+Edge\+Handle} {\bfseries Edge\+Handle}
\item 
\mbox{\Hypertarget{a08576_a386175349fd011087a2e6f947e9b6767}\label{a08576_a386175349fd011087a2e6f947e9b6767}} 
typedef \hyperlink{a08708}{Open\+Mesh\+::\+Face\+Handle} {\bfseries Face\+Handle}
\item 
\mbox{\Hypertarget{a08576_a7705291fa1615ebb299b94991efc7988}\label{a08576_a7705291fa1615ebb299b94991efc7988}} 
typedef \hyperlink{a08788}{Attributes\+::\+Status\+Info} {\bfseries Status\+Info}
\item 
\mbox{\Hypertarget{a08576_a49a0b52e9626b08ce04be595400ea4a2}\label{a08576_a49a0b52e9626b08ce04be595400ea4a2}} 
typedef \hyperlink{a08876}{V\+Prop\+HandleT}$<$ \hyperlink{a08788}{Status\+Info} $>$ {\bfseries Vertex\+Status\+Property\+Handle}
\item 
\mbox{\Hypertarget{a08576_a41df86769d981cf3e3e39b7b6aa7c93d}\label{a08576_a41df86769d981cf3e3e39b7b6aa7c93d}} 
typedef \hyperlink{a08880}{H\+Prop\+HandleT}$<$ \hyperlink{a08788}{Status\+Info} $>$ {\bfseries Halfedge\+Status\+Property\+Handle}
\item 
\mbox{\Hypertarget{a08576_a8323741b429b03dd14f5c336ad8127bc}\label{a08576_a8323741b429b03dd14f5c336ad8127bc}} 
typedef \hyperlink{a08884}{E\+Prop\+HandleT}$<$ \hyperlink{a08788}{Status\+Info} $>$ {\bfseries Edge\+Status\+Property\+Handle}
\item 
\mbox{\Hypertarget{a08576_a4ebb67c128f343ef4ea876606aa8646d}\label{a08576_a4ebb67c128f343ef4ea876606aa8646d}} 
typedef \hyperlink{a08888}{F\+Prop\+HandleT}$<$ \hyperlink{a08788}{Status\+Info} $>$ {\bfseries Face\+Status\+Property\+Handle}
\item 
\mbox{\Hypertarget{a08576_a69d3c09c4630aa992220301350d3f3d9}\label{a08576_a69d3c09c4630aa992220301350d3f3d9}} 
typedef \hyperlink{a08584}{Auto\+Status\+SetT}$<$ \hyperlink{a08696}{Vertex\+Handle} $>$ {\bfseries Vertex\+Status\+Set}
\item 
\mbox{\Hypertarget{a08576_ad5b5bd612d4671b691e49d43f54d9a9c}\label{a08576_ad5b5bd612d4671b691e49d43f54d9a9c}} 
typedef \hyperlink{a08584}{Auto\+Status\+SetT}$<$ \hyperlink{a08704}{Edge\+Handle} $>$ {\bfseries Edge\+Status\+Set}
\item 
\mbox{\Hypertarget{a08576_a88f122f96e16ad2d683bafc22194b59d}\label{a08576_a88f122f96e16ad2d683bafc22194b59d}} 
typedef \hyperlink{a08584}{Auto\+Status\+SetT}$<$ \hyperlink{a08708}{Face\+Handle} $>$ {\bfseries Face\+Status\+Set}
\item 
\mbox{\Hypertarget{a08576_aa17c5bd69f4cc4351bd86d5ad7f7c209}\label{a08576_aa17c5bd69f4cc4351bd86d5ad7f7c209}} 
typedef \hyperlink{a08584}{Auto\+Status\+SetT}$<$ \hyperlink{a08700}{Halfedge\+Handle} $>$ {\bfseries Halfedge\+Status\+Set}
\item 
\mbox{\Hypertarget{a08576_a28070fdda66a84ac4ec02f526f5f0155}\label{a08576_a28070fdda66a84ac4ec02f526f5f0155}} 
typedef \hyperlink{a08588}{Ext\+Status\+SetT}$<$ \hyperlink{a08708}{Face\+Handle} $>$ {\bfseries Ext\+Face\+Status\+Set}
\item 
\mbox{\Hypertarget{a08576_af7bc38766048b5f6ce2e82f0c642b920}\label{a08576_af7bc38766048b5f6ce2e82f0c642b920}} 
typedef \hyperlink{a08588}{Ext\+Status\+SetT}$<$ \hyperlink{a08696}{Vertex\+Handle} $>$ {\bfseries Ext\+Vertex\+Status\+Set}
\item 
\mbox{\Hypertarget{a08576_a27acbfce8d16d8d9ace0ff09d34a3c34}\label{a08576_a27acbfce8d16d8d9ace0ff09d34a3c34}} 
typedef \hyperlink{a08588}{Ext\+Status\+SetT}$<$ \hyperlink{a08704}{Edge\+Handle} $>$ {\bfseries Ext\+Edge\+Status\+Set}
\item 
\mbox{\Hypertarget{a08576_a8e5ff3859fe42b9986fed3bd15e40934}\label{a08576_a8e5ff3859fe42b9986fed3bd15e40934}} 
typedef \hyperlink{a08588}{Ext\+Status\+SetT}$<$ \hyperlink{a08700}{Halfedge\+Handle} $>$ {\bfseries Ext\+Halfedge\+Status\+Set}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a08576_ab959910ec7df2c8edc7f47878e549066}{assign\+\_\+connectivity} (const \hyperlink{a08576}{Array\+Kernel} \&\+\_\+other)
\item 
\mbox{\Hypertarget{a08576_ae3ff6d8a8e69a060b1ec45a05d166ab0}\label{a08576_ae3ff6d8a8e69a060b1ec45a05d166ab0}} 
\hyperlink{a08696}{Vertex\+Handle} {\bfseries handle} (const Vertex \&\+\_\+v) const
\item 
\mbox{\Hypertarget{a08576_a74e6ce28594eea2624ca4b19f2f83488}\label{a08576_a74e6ce28594eea2624ca4b19f2f83488}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries handle} (const Halfedge \&\+\_\+he) const
\item 
\mbox{\Hypertarget{a08576_afe08ff58f90a544a1c831161450e34c0}\label{a08576_afe08ff58f90a544a1c831161450e34c0}} 
\hyperlink{a08704}{Edge\+Handle} {\bfseries handle} (const Edge \&\+\_\+e) const
\item 
\mbox{\Hypertarget{a08576_a929cd551b3b3633963f81f9018d34ce3}\label{a08576_a929cd551b3b3633963f81f9018d34ce3}} 
\hyperlink{a08708}{Face\+Handle} {\bfseries handle} (const Face \&\+\_\+f) const
\item 
\mbox{\Hypertarget{a08576_a33bdbc70bea8476b3757c0f67f8cc148}\label{a08576_a33bdbc70bea8476b3757c0f67f8cc148}} 
bool \hyperlink{a08576_a33bdbc70bea8476b3757c0f67f8cc148}{is\+\_\+valid\+\_\+handle} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+vh) const
\begin{DoxyCompactList}\small\item\em checks handle validity -\/ useful for debugging \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a579ecd2c6c0cfc361e7155d12ccc8fa8}\label{a08576_a579ecd2c6c0cfc361e7155d12ccc8fa8}} 
bool \hyperlink{a08576_a579ecd2c6c0cfc361e7155d12ccc8fa8}{is\+\_\+valid\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\begin{DoxyCompactList}\small\item\em checks handle validity -\/ useful for debugging \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a96eeded9a1bdc0cc402313cd83015499}\label{a08576_a96eeded9a1bdc0cc402313cd83015499}} 
bool \hyperlink{a08576_a96eeded9a1bdc0cc402313cd83015499}{is\+\_\+valid\+\_\+handle} (\hyperlink{a08704}{Edge\+Handle} \+\_\+eh) const
\begin{DoxyCompactList}\small\item\em checks handle validity -\/ useful for debugging \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a8d53b3bd31967230c2c2f39c58cd1e3b}\label{a08576_a8d53b3bd31967230c2c2f39c58cd1e3b}} 
bool \hyperlink{a08576_a8d53b3bd31967230c2c2f39c58cd1e3b}{is\+\_\+valid\+\_\+handle} (\hyperlink{a08708}{Face\+Handle} \+\_\+fh) const
\begin{DoxyCompactList}\small\item\em checks handle validity -\/ useful for debugging \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a144b2ff4e9164056aef851730c646d59}\label{a08576_a144b2ff4e9164056aef851730c646d59}} 
const Vertex \& {\bfseries vertex} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+vh) const
\item 
\mbox{\Hypertarget{a08576_a4b5bed8b5d401ef3924e5c3071e63c5e}\label{a08576_a4b5bed8b5d401ef3924e5c3071e63c5e}} 
Vertex \& {\bfseries vertex} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+vh)
\item 
\mbox{\Hypertarget{a08576_ae6c76f17019f632fb9b0766d4c00c3a5}\label{a08576_ae6c76f17019f632fb9b0766d4c00c3a5}} 
const Halfedge \& {\bfseries halfedge} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_a946f1b28f1097161f663ff4e30df3b83}\label{a08576_a946f1b28f1097161f663ff4e30df3b83}} 
Halfedge \& {\bfseries halfedge} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh)
\item 
\mbox{\Hypertarget{a08576_a9f20758afda29c86711e4c342b01b1a8}\label{a08576_a9f20758afda29c86711e4c342b01b1a8}} 
const Edge \& {\bfseries edge} (\hyperlink{a08704}{Edge\+Handle} \+\_\+eh) const
\item 
\mbox{\Hypertarget{a08576_aa47640c6cd8b2de20bf9044c3cae6ed4}\label{a08576_aa47640c6cd8b2de20bf9044c3cae6ed4}} 
Edge \& {\bfseries edge} (\hyperlink{a08704}{Edge\+Handle} \+\_\+eh)
\item 
\mbox{\Hypertarget{a08576_a2040c3c3a89ff7d9fd5c63a118b4e5fa}\label{a08576_a2040c3c3a89ff7d9fd5c63a118b4e5fa}} 
const Face \& {\bfseries face} (\hyperlink{a08708}{Face\+Handle} \+\_\+fh) const
\item 
\mbox{\Hypertarget{a08576_a0336816f87de5c7e312b264c0e6a312d}\label{a08576_a0336816f87de5c7e312b264c0e6a312d}} 
Face \& {\bfseries face} (\hyperlink{a08708}{Face\+Handle} \+\_\+fh)
\item 
\mbox{\Hypertarget{a08576_a80425012df21825ea1e3db974a5f365a}\label{a08576_a80425012df21825ea1e3db974a5f365a}} 
\hyperlink{a08696}{Vertex\+Handle} {\bfseries vertex\+\_\+handle} (unsigned int \+\_\+i) const
\item 
\mbox{\Hypertarget{a08576_a0afa19dbeac72163c45f1f9e86589181}\label{a08576_a0afa19dbeac72163c45f1f9e86589181}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries halfedge\+\_\+handle} (unsigned int \+\_\+i) const
\item 
\mbox{\Hypertarget{a08576_a73447ae86fd06daee37d4a4bb12fd22d}\label{a08576_a73447ae86fd06daee37d4a4bb12fd22d}} 
\hyperlink{a08704}{Edge\+Handle} {\bfseries edge\+\_\+handle} (unsigned int \+\_\+i) const
\item 
\mbox{\Hypertarget{a08576_af8429a4b82d1295c18a82c9207c8ab4f}\label{a08576_af8429a4b82d1295c18a82c9207c8ab4f}} 
\hyperlink{a08708}{Face\+Handle} {\bfseries face\+\_\+handle} (unsigned int \+\_\+i) const
\item 
\hyperlink{a08696}{Vertex\+Handle} \hyperlink{a08576_a99d673da244d912ee2054c3bcc7da076}{new\+\_\+vertex} ()
\begin{DoxyCompactList}\small\item\em Add a new vertex. \end{DoxyCompactList}\item 
\hyperlink{a08696}{Vertex\+Handle} \hyperlink{a08576_acb1ef093727e221485a42bee55cea6f0}{new\+\_\+vertex\+\_\+dirty} ()
\item 
\mbox{\Hypertarget{a08576_a3e832f55b9560e6849823d720c89d7de}\label{a08576_a3e832f55b9560e6849823d720c89d7de}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries new\+\_\+edge} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+start\+\_\+vh, \hyperlink{a08696}{Vertex\+Handle} \+\_\+end\+\_\+vh)
\item 
\mbox{\Hypertarget{a08576_a1dfa5c3558172090c1352a75e1bf50f8}\label{a08576_a1dfa5c3558172090c1352a75e1bf50f8}} 
\hyperlink{a08708}{Face\+Handle} {\bfseries new\+\_\+face} ()
\item 
\mbox{\Hypertarget{a08576_ac808dd7998f77d675e8d1c41bbe36120}\label{a08576_ac808dd7998f77d675e8d1c41bbe36120}} 
\hyperlink{a08708}{Face\+Handle} {\bfseries new\+\_\+face} (const Face \&\+\_\+f)
\item 
\mbox{\Hypertarget{a08576_a6e5721c525b76ac951242310518f4c77}\label{a08576_a6e5721c525b76ac951242310518f4c77}} 
void {\bfseries resize} (size\+\_\+t \+\_\+n\+\_\+vertices, size\+\_\+t \+\_\+n\+\_\+edges, size\+\_\+t \+\_\+n\+\_\+faces)
\item 
\mbox{\Hypertarget{a08576_a806121fdcdbcc6842d6c433a715bd72b}\label{a08576_a806121fdcdbcc6842d6c433a715bd72b}} 
void {\bfseries reserve} (size\+\_\+t \+\_\+n\+\_\+vertices, size\+\_\+t \+\_\+n\+\_\+edges, size\+\_\+t \+\_\+n\+\_\+faces)
\item 
void \hyperlink{a08576_aba7fd4df59227f974b44111ac45e835f}{garbage\+\_\+collection} (bool \+\_\+v=true, bool \+\_\+e=true, bool \+\_\+f=true)
\begin{DoxyCompactList}\small\item\em garbage collection \end{DoxyCompactList}\item 
{\footnotesize template$<$typename std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+V\+Handle\+Pointer , typename std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+H\+Handle\+Pointer , typename std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+F\+Handle\+Pointer $>$ }\\void \hyperlink{a08576_aa050099ff46a17b4f38594eba0aefce2}{garbage\+\_\+collection} (std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+V\+Handle\+Pointer \&vh\+\_\+to\+\_\+update, std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+H\+Handle\+Pointer \&hh\+\_\+to\+\_\+update, std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+F\+Handle\+Pointer \&fh\+\_\+to\+\_\+update, bool \+\_\+v=true, bool \+\_\+e=true, bool \+\_\+f=true)
\begin{DoxyCompactList}\small\item\em garbage collection with handle tracking \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a0fb3a7b10b5382a0aaa88225917e6a89}\label{a08576_a0fb3a7b10b5382a0aaa88225917e6a89}} 
void \hyperlink{a08576_a0fb3a7b10b5382a0aaa88225917e6a89}{clear} ()
\begin{DoxyCompactList}\small\item\em Does the same as \hyperlink{a08576_a04957ea762a7b0ff4fc3faac13c20fa4}{clean()} and in addition erases all properties. \end{DoxyCompactList}\item 
void \hyperlink{a08576_a04957ea762a7b0ff4fc3faac13c20fa4}{clean} ()
\begin{DoxyCompactList}\small\item\em Remove all vertices, edges and faces and deallocates their memory. \end{DoxyCompactList}\item 
void \hyperlink{a08576_aeb0af6fdeb2a51da1219cc1ddb84f201}{clean\+\_\+keep\+\_\+reservation} ()
\begin{DoxyCompactList}\small\item\em Remove all vertices, edges and faces but keep memory allocated. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a60f293ac94532aee27abfba11c71b64e}\label{a08576_a60f293ac94532aee27abfba11c71b64e}} 
size\+\_\+t {\bfseries n\+\_\+vertices} () const
\item 
\mbox{\Hypertarget{a08576_ae506435dba01d0febd1896fde5b57c57}\label{a08576_ae506435dba01d0febd1896fde5b57c57}} 
size\+\_\+t {\bfseries n\+\_\+halfedges} () const
\item 
\mbox{\Hypertarget{a08576_aed57a0a173e638add28f72b78f6f8aff}\label{a08576_aed57a0a173e638add28f72b78f6f8aff}} 
size\+\_\+t {\bfseries n\+\_\+edges} () const
\item 
\mbox{\Hypertarget{a08576_aba3f801c3c4f3249c2e7db200c36143b}\label{a08576_aba3f801c3c4f3249c2e7db200c36143b}} 
size\+\_\+t {\bfseries n\+\_\+faces} () const
\item 
\mbox{\Hypertarget{a08576_adfb88fe24ec6eb64a54be263996b29b9}\label{a08576_adfb88fe24ec6eb64a54be263996b29b9}} 
bool {\bfseries vertices\+\_\+empty} () const
\item 
\mbox{\Hypertarget{a08576_a90e1d864401ffc81a2e09ca6e6bbbd52}\label{a08576_a90e1d864401ffc81a2e09ca6e6bbbd52}} 
bool {\bfseries halfedges\+\_\+empty} () const
\item 
\mbox{\Hypertarget{a08576_aecc67ee7e4fc98f2d43b19ecbf77c79d}\label{a08576_aecc67ee7e4fc98f2d43b19ecbf77c79d}} 
bool {\bfseries edges\+\_\+empty} () const
\item 
\mbox{\Hypertarget{a08576_ae0aa51c9accb50052e3bba181ce324eb}\label{a08576_ae0aa51c9accb50052e3bba181ce324eb}} 
bool {\bfseries faces\+\_\+empty} () const
\item 
\mbox{\Hypertarget{a08576_ac4689bb93078e599b8620a07cd437bfd}\label{a08576_ac4689bb93078e599b8620a07cd437bfd}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries halfedge\+\_\+handle} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+vh) const
\item 
\mbox{\Hypertarget{a08576_a0e1eae9518ff0310ab45b0fb4e99eef5}\label{a08576_a0e1eae9518ff0310ab45b0fb4e99eef5}} 
void {\bfseries set\+\_\+halfedge\+\_\+handle} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+vh, \hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh)
\item 
\mbox{\Hypertarget{a08576_ad076cccbc287819318b7818ae08f5331}\label{a08576_ad076cccbc287819318b7818ae08f5331}} 
bool {\bfseries is\+\_\+isolated} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+vh) const
\item 
\mbox{\Hypertarget{a08576_a43a4ba73fa2c861dee301776fc815863}\label{a08576_a43a4ba73fa2c861dee301776fc815863}} 
void {\bfseries set\+\_\+isolated} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+vh)
\item 
\mbox{\Hypertarget{a08576_ac36c929d5b596940f4ea82d8fd7ff926}\label{a08576_ac36c929d5b596940f4ea82d8fd7ff926}} 
unsigned int {\bfseries delete\+\_\+isolated\+\_\+vertices} ()
\item 
\mbox{\Hypertarget{a08576_a95494d92a06fb37f66fece13a110b236}\label{a08576_a95494d92a06fb37f66fece13a110b236}} 
\hyperlink{a08696}{Vertex\+Handle} {\bfseries to\+\_\+vertex\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_a5f28696c6402d757863400943012cfe6}\label{a08576_a5f28696c6402d757863400943012cfe6}} 
\hyperlink{a08696}{Vertex\+Handle} {\bfseries from\+\_\+vertex\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_a5fef35887528945e97a28589e147a312}\label{a08576_a5fef35887528945e97a28589e147a312}} 
void {\bfseries set\+\_\+vertex\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh, \hyperlink{a08696}{Vertex\+Handle} \+\_\+vh)
\item 
\mbox{\Hypertarget{a08576_a321fa06f41f4133b22ce6c5801ff02ea}\label{a08576_a321fa06f41f4133b22ce6c5801ff02ea}} 
\hyperlink{a08708}{Face\+Handle} {\bfseries face\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_ad30eb979f25b7b6dcc6ce334431abedc}\label{a08576_ad30eb979f25b7b6dcc6ce334431abedc}} 
void {\bfseries set\+\_\+face\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh, \hyperlink{a08708}{Face\+Handle} \+\_\+fh)
\item 
\mbox{\Hypertarget{a08576_ac99891ef0a2127b00518efb4ee4ec207}\label{a08576_ac99891ef0a2127b00518efb4ee4ec207}} 
void {\bfseries set\+\_\+boundary} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh)
\item 
\mbox{\Hypertarget{a08576_a95751cac0d1de0b8ca0cecf72be9f073}\label{a08576_a95751cac0d1de0b8ca0cecf72be9f073}} 
bool \hyperlink{a08576_a95751cac0d1de0b8ca0cecf72be9f073}{is\+\_\+boundary} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\begin{DoxyCompactList}\small\item\em Is halfedge \+\_\+heh a boundary halfedge (is its face handle invalid) ? \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a05b2f083d32ff76d0d0d746782986200}\label{a08576_a05b2f083d32ff76d0d0d746782986200}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries next\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_a6f0f5878b3bfaacf5ee862e158e15360}\label{a08576_a6f0f5878b3bfaacf5ee862e158e15360}} 
void {\bfseries set\+\_\+next\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh, \hyperlink{a08700}{Halfedge\+Handle} \+\_\+nheh)
\item 
\mbox{\Hypertarget{a08576_ac9cf42f9b6e2e1096971e3a3ab3b33c0}\label{a08576_ac9cf42f9b6e2e1096971e3a3ab3b33c0}} 
void {\bfseries set\+\_\+prev\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh, \hyperlink{a08700}{Halfedge\+Handle} \+\_\+pheh)
\item 
\mbox{\Hypertarget{a08576_ad7db5e0b0b75797633a511867b3cc64e}\label{a08576_ad7db5e0b0b75797633a511867b3cc64e}} 
void {\bfseries set\+\_\+prev\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh, \hyperlink{a08700}{Halfedge\+Handle} \+\_\+pheh, Gen\+Prog\+::\+True\+Type)
\item 
\mbox{\Hypertarget{a08576_ae52f228647ca02f5f75309c4f87060ca}\label{a08576_ae52f228647ca02f5f75309c4f87060ca}} 
void {\bfseries set\+\_\+prev\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle}, \hyperlink{a08700}{Halfedge\+Handle}, Gen\+Prog\+::\+False\+Type)
\item 
\mbox{\Hypertarget{a08576_a53ea5d2ed02a40d90ebf0a3cfb6ca888}\label{a08576_a53ea5d2ed02a40d90ebf0a3cfb6ca888}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries prev\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_abce3a9b50d8bed92df00472734da92b2}\label{a08576_abce3a9b50d8bed92df00472734da92b2}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries prev\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh, Gen\+Prog\+::\+True\+Type) const
\item 
\mbox{\Hypertarget{a08576_a7cab02bcf9c1536f7f58d8137ed530f8}\label{a08576_a7cab02bcf9c1536f7f58d8137ed530f8}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries prev\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh, Gen\+Prog\+::\+False\+Type) const
\item 
\mbox{\Hypertarget{a08576_ad601f00bb80dc8616a6f5c6b2cda738d}\label{a08576_ad601f00bb80dc8616a6f5c6b2cda738d}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries opposite\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_a3946adb7433b1a4f2be26e1839b982a6}\label{a08576_a3946adb7433b1a4f2be26e1839b982a6}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries ccw\+\_\+rotated\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_a7e30cf89eb4e0f410390810a7578cdf7}\label{a08576_a7e30cf89eb4e0f410390810a7578cdf7}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries cw\+\_\+rotated\+\_\+halfedge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_a9f60e7586a2a1c0e1b0f273ed61e34fd}\label{a08576_a9f60e7586a2a1c0e1b0f273ed61e34fd}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries halfedge\+\_\+handle} (\hyperlink{a08704}{Edge\+Handle} \+\_\+eh, unsigned int \+\_\+i) const
\item 
\mbox{\Hypertarget{a08576_ac8ba30cadc63d5c6c3ea84bfe971ca1b}\label{a08576_ac8ba30cadc63d5c6c3ea84bfe971ca1b}} 
\hyperlink{a08704}{Edge\+Handle} {\bfseries edge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh) const
\item 
\mbox{\Hypertarget{a08576_a3a447585af8fe0772e73f1eb75221ae6}\label{a08576_a3a447585af8fe0772e73f1eb75221ae6}} 
\hyperlink{a08700}{Halfedge\+Handle} {\bfseries halfedge\+\_\+handle} (\hyperlink{a08708}{Face\+Handle} \+\_\+fh) const
\item 
\mbox{\Hypertarget{a08576_ac52fc3fe604e0ddf3bd87a6bc8b2e692}\label{a08576_ac52fc3fe604e0ddf3bd87a6bc8b2e692}} 
void {\bfseries set\+\_\+halfedge\+\_\+handle} (\hyperlink{a08708}{Face\+Handle} \+\_\+fh, \hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh)
\item 
\mbox{\Hypertarget{a08576_a8898075831dccdbc4a2dd72472f0e8e3}\label{a08576_a8898075831dccdbc4a2dd72472f0e8e3}} 
const \hyperlink{a08788}{Status\+Info} \& \hyperlink{a08576_a8898075831dccdbc4a2dd72472f0e8e3}{status} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+vh) const
\begin{DoxyCompactList}\small\item\em Status Query A\+PI. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a290a818c93859ec1359bfc350694de38}\label{a08576_a290a818c93859ec1359bfc350694de38}} 
\hyperlink{a08788}{Status\+Info} \& {\bfseries status} (\hyperlink{a08696}{Vertex\+Handle} \+\_\+vh)
\item 
void \hyperlink{a08576_a41832642ebf9160c2499f2b4d04a45ae}{reset\+\_\+status} ()
\item 
\mbox{\Hypertarget{a08576_a88fcdc3ff917401d23ac4aa7ae8509ff}\label{a08576_a88fcdc3ff917401d23ac4aa7ae8509ff}} 
const \hyperlink{a08788}{Status\+Info} \& {\bfseries status} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+hh) const
\item 
\mbox{\Hypertarget{a08576_a4a262d64157623b87fbc6942d16a9ddf}\label{a08576_a4a262d64157623b87fbc6942d16a9ddf}} 
\hyperlink{a08788}{Status\+Info} \& {\bfseries status} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+hh)
\item 
\mbox{\Hypertarget{a08576_a5668d1af13f1fdcf69f922a595d82c2a}\label{a08576_a5668d1af13f1fdcf69f922a595d82c2a}} 
const \hyperlink{a08788}{Status\+Info} \& {\bfseries status} (\hyperlink{a08704}{Edge\+Handle} \+\_\+eh) const
\item 
\mbox{\Hypertarget{a08576_a8de3c3290743fa4cc0cf28e084a83768}\label{a08576_a8de3c3290743fa4cc0cf28e084a83768}} 
\hyperlink{a08788}{Status\+Info} \& {\bfseries status} (\hyperlink{a08704}{Edge\+Handle} \+\_\+eh)
\item 
\mbox{\Hypertarget{a08576_a4269b26354601a09cdee1ffa9320f741}\label{a08576_a4269b26354601a09cdee1ffa9320f741}} 
const \hyperlink{a08788}{Status\+Info} \& {\bfseries status} (\hyperlink{a08708}{Face\+Handle} \+\_\+fh) const
\item 
\mbox{\Hypertarget{a08576_a36c1c7ed8a663c9eb593ffafbc9a7bb5}\label{a08576_a36c1c7ed8a663c9eb593ffafbc9a7bb5}} 
\hyperlink{a08788}{Status\+Info} \& {\bfseries status} (\hyperlink{a08708}{Face\+Handle} \+\_\+fh)
\item 
\mbox{\Hypertarget{a08576_ae1f326d6fa56aed7574f7ca656e43fa7}\label{a08576_ae1f326d6fa56aed7574f7ca656e43fa7}} 
bool {\bfseries has\+\_\+vertex\+\_\+status} () const
\item 
\mbox{\Hypertarget{a08576_a3a237218fdfc2a45481c02bac8b63f7f}\label{a08576_a3a237218fdfc2a45481c02bac8b63f7f}} 
bool {\bfseries has\+\_\+halfedge\+\_\+status} () const
\item 
\mbox{\Hypertarget{a08576_a4c3abb4f43067a0fe154e145652b82cc}\label{a08576_a4c3abb4f43067a0fe154e145652b82cc}} 
bool {\bfseries has\+\_\+edge\+\_\+status} () const
\item 
\mbox{\Hypertarget{a08576_a2a919804fe80df831e6480a4b8639f30}\label{a08576_a2a919804fe80df831e6480a4b8639f30}} 
bool {\bfseries has\+\_\+face\+\_\+status} () const
\item 
\mbox{\Hypertarget{a08576_a7a5f28716439af1e4f5d262c7ab6d8df}\label{a08576_a7a5f28716439af1e4f5d262c7ab6d8df}} 
\hyperlink{a08876}{Vertex\+Status\+Property\+Handle} {\bfseries vertex\+\_\+status\+\_\+pph} () const
\item 
\mbox{\Hypertarget{a08576_a585e32191ada089b4b18cd1ce8c91a4e}\label{a08576_a585e32191ada089b4b18cd1ce8c91a4e}} 
\hyperlink{a08880}{Halfedge\+Status\+Property\+Handle} {\bfseries halfedge\+\_\+status\+\_\+pph} () const
\item 
\mbox{\Hypertarget{a08576_a3f3172ef1321c1bcf9789eb04835d6d6}\label{a08576_a3f3172ef1321c1bcf9789eb04835d6d6}} 
\hyperlink{a08884}{Edge\+Status\+Property\+Handle} {\bfseries edge\+\_\+status\+\_\+pph} () const
\item 
\mbox{\Hypertarget{a08576_a869db43569d688142b7686d79b38804b}\label{a08576_a869db43569d688142b7686d79b38804b}} 
\hyperlink{a08888}{Face\+Status\+Property\+Handle} {\bfseries face\+\_\+status\+\_\+pph} () const
\item 
\mbox{\Hypertarget{a08576_a073532765322d7746166141a6c9e89c5}\label{a08576_a073532765322d7746166141a6c9e89c5}} 
\hyperlink{a08876}{Vertex\+Status\+Property\+Handle} \hyperlink{a08576_a073532765322d7746166141a6c9e89c5}{status\+\_\+pph} (\hyperlink{a08696}{Vertex\+Handle}) const
\begin{DoxyCompactList}\small\item\em status property by handle \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_ae51de0523306c3a8ee17a5453e0ad87d}\label{a08576_ae51de0523306c3a8ee17a5453e0ad87d}} 
\hyperlink{a08880}{Halfedge\+Status\+Property\+Handle} {\bfseries status\+\_\+pph} (\hyperlink{a08700}{Halfedge\+Handle}) const
\item 
\mbox{\Hypertarget{a08576_ae5a7006193c814c104eacc6e95391122}\label{a08576_ae5a7006193c814c104eacc6e95391122}} 
\hyperlink{a08884}{Edge\+Status\+Property\+Handle} {\bfseries status\+\_\+pph} (\hyperlink{a08704}{Edge\+Handle}) const
\item 
\mbox{\Hypertarget{a08576_a5137e852153b173e32a3b35dc1f3374d}\label{a08576_a5137e852153b173e32a3b35dc1f3374d}} 
\hyperlink{a08888}{Face\+Status\+Property\+Handle} {\bfseries status\+\_\+pph} (\hyperlink{a08708}{Face\+Handle}) const
\item 
\mbox{\Hypertarget{a08576_a569d3345fd5d231de3758ff70815a134}\label{a08576_a569d3345fd5d231de3758ff70815a134}} 
void \hyperlink{a08576_a569d3345fd5d231de3758ff70815a134}{request\+\_\+vertex\+\_\+status} ()
\begin{DoxyCompactList}\small\item\em Status Request A\+PI. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a2e342a208d94295b7fa56dbc45f75832}\label{a08576_a2e342a208d94295b7fa56dbc45f75832}} 
void {\bfseries request\+\_\+halfedge\+\_\+status} ()
\item 
\mbox{\Hypertarget{a08576_ab72b11e4fe4093f575c44a89f7311b9a}\label{a08576_ab72b11e4fe4093f575c44a89f7311b9a}} 
void {\bfseries request\+\_\+edge\+\_\+status} ()
\item 
\mbox{\Hypertarget{a08576_a0f3fda415188e994a991b6fa3cfd1103}\label{a08576_a0f3fda415188e994a991b6fa3cfd1103}} 
void {\bfseries request\+\_\+face\+\_\+status} ()
\item 
\mbox{\Hypertarget{a08576_a4f167e471b5758aeaafd5954fb87aae8}\label{a08576_a4f167e471b5758aeaafd5954fb87aae8}} 
void \hyperlink{a08576_a4f167e471b5758aeaafd5954fb87aae8}{release\+\_\+vertex\+\_\+status} ()
\begin{DoxyCompactList}\small\item\em Status Release A\+PI. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_aebf215247408e3ca9ff81f59e9883f75}\label{a08576_aebf215247408e3ca9ff81f59e9883f75}} 
void {\bfseries release\+\_\+halfedge\+\_\+status} ()
\item 
\mbox{\Hypertarget{a08576_ad7fe54c43e225092fafd39867b12d421}\label{a08576_ad7fe54c43e225092fafd39867b12d421}} 
void {\bfseries release\+\_\+edge\+\_\+status} ()
\item 
\mbox{\Hypertarget{a08576_a981d78499bdcdb45aee75d6cf7ebc458}\label{a08576_a981d78499bdcdb45aee75d6cf7ebc458}} 
void {\bfseries release\+\_\+face\+\_\+status} ()
\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08576_a6848df1d18ab6b85690e3704d2818aea}\label{a08576_a6848df1d18ab6b85690e3704d2818aea}} 
static \hyperlink{a08700}{Halfedge\+Handle} {\bfseries s\+\_\+halfedge\+\_\+handle} (\hyperlink{a08704}{Edge\+Handle} \+\_\+eh, unsigned int \+\_\+i)
\item 
\mbox{\Hypertarget{a08576_a1d4db7236ad2db0c35da35bd243c89ff}\label{a08576_a1d4db7236ad2db0c35da35bd243c89ff}} 
static \hyperlink{a08704}{Edge\+Handle} {\bfseries s\+\_\+edge\+\_\+handle} (\hyperlink{a08700}{Halfedge\+Handle} \+\_\+heh)
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08576_a0fd9821990e6fc013f3edbc16052072d}\label{a08576_a0fd9821990e6fc013f3edbc16052072d}} 
\hyperlink{a08876}{Vertex\+Status\+Property\+Handle} {\bfseries vertex\+\_\+status\+\_\+}
\item 
\mbox{\Hypertarget{a08576_a5eec86dc22da75915ecdd3d570b84a73}\label{a08576_a5eec86dc22da75915ecdd3d570b84a73}} 
\hyperlink{a08880}{Halfedge\+Status\+Property\+Handle} {\bfseries halfedge\+\_\+status\+\_\+}
\item 
\mbox{\Hypertarget{a08576_a699d13eda84954f191d1c7a1fe082a0e}\label{a08576_a699d13eda84954f191d1c7a1fe082a0e}} 
\hyperlink{a08884}{Edge\+Status\+Property\+Handle} {\bfseries edge\+\_\+status\+\_\+}
\item 
\mbox{\Hypertarget{a08576_add86bebd120b2222f091d0e88da77909}\label{a08576_add86bebd120b2222f091d0e88da77909}} 
\hyperlink{a08888}{Face\+Status\+Property\+Handle} {\bfseries face\+\_\+status\+\_\+}
\item 
\mbox{\Hypertarget{a08576_aa2db1eb698d5d68b419fc6ff0bd34256}\label{a08576_aa2db1eb698d5d68b419fc6ff0bd34256}} 
unsigned int {\bfseries refcount\+\_\+vstatus\+\_\+}
\item 
\mbox{\Hypertarget{a08576_a4606c26ecc12cbd0b33a5b187266340e}\label{a08576_a4606c26ecc12cbd0b33a5b187266340e}} 
unsigned int {\bfseries refcount\+\_\+hstatus\+\_\+}
\item 
\mbox{\Hypertarget{a08576_ad7d55b97ecb3f8495ab6100ab3119df9}\label{a08576_ad7d55b97ecb3f8495ab6100ab3119df9}} 
unsigned int {\bfseries refcount\+\_\+estatus\+\_\+}
\item 
\mbox{\Hypertarget{a08576_a89d270c0c2d0914fb88175b30997a1a0}\label{a08576_a89d270c0c2d0914fb88175b30997a1a0}} 
unsigned int {\bfseries refcount\+\_\+fstatus\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08576_a6917b1498cd4c31827068e82fbb21af0}\label{a08576_a6917b1498cd4c31827068e82fbb21af0}} 
typedef std\+::vector$<$ Vertex $>$ {\bfseries Vertex\+Container}
\item 
\mbox{\Hypertarget{a08576_a74ac2ce1c0294b9aa0923bfdbf800a61}\label{a08576_a74ac2ce1c0294b9aa0923bfdbf800a61}} 
typedef std\+::vector$<$ Edge $>$ {\bfseries Edge\+Container}
\item 
\mbox{\Hypertarget{a08576_a205441c70cdc839afacfae9f8401c018}\label{a08576_a205441c70cdc839afacfae9f8401c018}} 
typedef std\+::vector$<$ Face $>$ {\bfseries Face\+Container}
\item 
\mbox{\Hypertarget{a08576_a9951cb1b3d33ef8aca056258c5fc8eea}\label{a08576_a9951cb1b3d33ef8aca056258c5fc8eea}} 
typedef Vertex\+Container\+::iterator {\bfseries Kernel\+Vertex\+Iter}
\item 
\mbox{\Hypertarget{a08576_ab5d171c7d13a4b661bcdcfd18becc4e3}\label{a08576_ab5d171c7d13a4b661bcdcfd18becc4e3}} 
typedef Vertex\+Container\+::const\+\_\+iterator {\bfseries Kernel\+Const\+Vertex\+Iter}
\item 
\mbox{\Hypertarget{a08576_a5d9435d72f07ccbf084ee946eb17adc0}\label{a08576_a5d9435d72f07ccbf084ee946eb17adc0}} 
typedef Edge\+Container\+::iterator {\bfseries Kernel\+Edge\+Iter}
\item 
\mbox{\Hypertarget{a08576_a02301acdf95a0656f9f8067e1800ba76}\label{a08576_a02301acdf95a0656f9f8067e1800ba76}} 
typedef Edge\+Container\+::const\+\_\+iterator {\bfseries Kernel\+Const\+Edge\+Iter}
\item 
\mbox{\Hypertarget{a08576_a3f8e2f53d5dc2e4d7c1fd48a8d5fb6cc}\label{a08576_a3f8e2f53d5dc2e4d7c1fd48a8d5fb6cc}} 
typedef Face\+Container\+::iterator {\bfseries Kernel\+Face\+Iter}
\item 
\mbox{\Hypertarget{a08576_a5be3e95c43d862e658de930f9b5a4ebe}\label{a08576_a5be3e95c43d862e658de930f9b5a4ebe}} 
typedef Face\+Container\+::const\+\_\+iterator {\bfseries Kernel\+Const\+Face\+Iter}
\item 
\mbox{\Hypertarget{a08576_a48d79e6c5f8021bb38cee50a1f398f4d}\label{a08576_a48d79e6c5f8021bb38cee50a1f398f4d}} 
typedef std\+::vector$<$ unsigned int $>$ {\bfseries Bit\+Mask\+Container}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08576_a36d791bffc32ad3deaf022bfdeafeffb}\label{a08576_a36d791bffc32ad3deaf022bfdeafeffb}} 
Kernel\+Vertex\+Iter {\bfseries vertices\+\_\+begin} ()
\item 
\mbox{\Hypertarget{a08576_a33fb9ea79d2e6851b5ddf54d8df3f8c2}\label{a08576_a33fb9ea79d2e6851b5ddf54d8df3f8c2}} 
Kernel\+Const\+Vertex\+Iter {\bfseries vertices\+\_\+begin} () const
\item 
\mbox{\Hypertarget{a08576_a0b05320918c0d232ba6245668ceac5ec}\label{a08576_a0b05320918c0d232ba6245668ceac5ec}} 
Kernel\+Vertex\+Iter {\bfseries vertices\+\_\+end} ()
\item 
\mbox{\Hypertarget{a08576_a6d42ffc59cf571c38c863dda36ef5f7a}\label{a08576_a6d42ffc59cf571c38c863dda36ef5f7a}} 
Kernel\+Const\+Vertex\+Iter {\bfseries vertices\+\_\+end} () const
\item 
\mbox{\Hypertarget{a08576_ad2de0c47feaeea617eeb47816fe31960}\label{a08576_ad2de0c47feaeea617eeb47816fe31960}} 
Kernel\+Edge\+Iter {\bfseries edges\+\_\+begin} ()
\item 
\mbox{\Hypertarget{a08576_a7bcd83f925ecde5cc54c489b4d9c27fc}\label{a08576_a7bcd83f925ecde5cc54c489b4d9c27fc}} 
Kernel\+Const\+Edge\+Iter {\bfseries edges\+\_\+begin} () const
\item 
\mbox{\Hypertarget{a08576_a98c86c1347b7e7bf865abf22302e7959}\label{a08576_a98c86c1347b7e7bf865abf22302e7959}} 
Kernel\+Edge\+Iter {\bfseries edges\+\_\+end} ()
\item 
\mbox{\Hypertarget{a08576_acef571bacac423365eb6fc2493a7e4d2}\label{a08576_acef571bacac423365eb6fc2493a7e4d2}} 
Kernel\+Const\+Edge\+Iter {\bfseries edges\+\_\+end} () const
\item 
\mbox{\Hypertarget{a08576_a0d25c2dc41d29537a8c7491753ae577d}\label{a08576_a0d25c2dc41d29537a8c7491753ae577d}} 
Kernel\+Face\+Iter {\bfseries faces\+\_\+begin} ()
\item 
\mbox{\Hypertarget{a08576_ab9f957297e38592ce2c23a35014ef5ca}\label{a08576_ab9f957297e38592ce2c23a35014ef5ca}} 
Kernel\+Const\+Face\+Iter {\bfseries faces\+\_\+begin} () const
\item 
\mbox{\Hypertarget{a08576_af2f155a945d71e42dcee3fee0ce22112}\label{a08576_af2f155a945d71e42dcee3fee0ce22112}} 
Kernel\+Face\+Iter {\bfseries faces\+\_\+end} ()
\item 
\mbox{\Hypertarget{a08576_adac68b72ce8919d20f4b6640e0a6c80e}\label{a08576_adac68b72ce8919d20f4b6640e0a6c80e}} 
Kernel\+Const\+Face\+Iter {\bfseries faces\+\_\+end} () const
\item 
\mbox{\Hypertarget{a08576_a85028fb8780e723bf4a3687cc4508c48}\label{a08576_a85028fb8780e723bf4a3687cc4508c48}} 
Bit\+Mask\+Container \& \hyperlink{a08576_a85028fb8780e723bf4a3687cc4508c48}{bit\+\_\+masks} (\hyperlink{a08696}{Vertex\+Handle})
\begin{DoxyCompactList}\small\item\em bit mask container by handle \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08576_a0ba42eb1b3698b55dd96655e81a5ef36}\label{a08576_a0ba42eb1b3698b55dd96655e81a5ef36}} 
Bit\+Mask\+Container \& {\bfseries bit\+\_\+masks} (\hyperlink{a08704}{Edge\+Handle})
\item 
\mbox{\Hypertarget{a08576_ac9a7322060317e4d9e0f52ed676ef05f}\label{a08576_ac9a7322060317e4d9e0f52ed676ef05f}} 
Bit\+Mask\+Container \& {\bfseries bit\+\_\+masks} (\hyperlink{a08708}{Face\+Handle})
\item 
\mbox{\Hypertarget{a08576_a6b914ede65320f6574886a2fc2cbe0e9}\label{a08576_a6b914ede65320f6574886a2fc2cbe0e9}} 
Bit\+Mask\+Container \& {\bfseries bit\+\_\+masks} (\hyperlink{a08700}{Halfedge\+Handle})
\item 
\mbox{\Hypertarget{a08576_aee5e9ba5770a41b82b7c73eb70cf9f40}\label{a08576_aee5e9ba5770a41b82b7c73eb70cf9f40}} 
{\footnotesize template$<$class Handle $>$ }\\unsigned int {\bfseries pop\+\_\+bit\+\_\+mask} (Handle \+\_\+hnd)
\item 
\mbox{\Hypertarget{a08576_a4619e2d171b989050f5b0b828cdc567c}\label{a08576_a4619e2d171b989050f5b0b828cdc567c}} 
{\footnotesize template$<$class Handle $>$ }\\void {\bfseries push\+\_\+bit\+\_\+mask} (Handle \+\_\+hnd, unsigned int \+\_\+bit\+\_\+mask)
\item 
\mbox{\Hypertarget{a08576_a6a020becb0cc12ab9b1fae285cd0cf92}\label{a08576_a6a020becb0cc12ab9b1fae285cd0cf92}} 
void {\bfseries init\+\_\+bit\+\_\+masks} (Bit\+Mask\+Container \&\+\_\+bmc)
\item 
\mbox{\Hypertarget{a08576_a1202223b8a21d86b0e2441351265d107}\label{a08576_a1202223b8a21d86b0e2441351265d107}} 
void {\bfseries init\+\_\+bit\+\_\+masks} ()
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08576_ab5e6e8a1d700993de87844091774f44d}\label{a08576_ab5e6e8a1d700993de87844091774f44d}} 
Vertex\+Container {\bfseries vertices\+\_\+}
\item 
\mbox{\Hypertarget{a08576_a766d45d60b3885e8294e8e16f32c698f}\label{a08576_a766d45d60b3885e8294e8e16f32c698f}} 
Edge\+Container {\bfseries edges\+\_\+}
\item 
\mbox{\Hypertarget{a08576_a02f7043d89c559ca37351dd1e07f2572}\label{a08576_a02f7043d89c559ca37351dd1e07f2572}} 
Face\+Container {\bfseries faces\+\_\+}
\item 
\mbox{\Hypertarget{a08576_a8037d812fe503812c1bf82607ff4b886}\label{a08576_a8037d812fe503812c1bf82607ff4b886}} 
Bit\+Mask\+Container {\bfseries halfedge\+\_\+bit\+\_\+masks\+\_\+}
\item 
\mbox{\Hypertarget{a08576_a1597673f062d56ff94f629da8f4609fb}\label{a08576_a1597673f062d56ff94f629da8f4609fb}} 
Bit\+Mask\+Container {\bfseries edge\+\_\+bit\+\_\+masks\+\_\+}
\item 
\mbox{\Hypertarget{a08576_a9b98d01a8e6499f70331817ec02a0f1b}\label{a08576_a9b98d01a8e6499f70331817ec02a0f1b}} 
Bit\+Mask\+Container {\bfseries vertex\+\_\+bit\+\_\+masks\+\_\+}
\item 
\mbox{\Hypertarget{a08576_aa91fe57e91d064a3aa8873c4956be20a}\label{a08576_aa91fe57e91d064a3aa8873c4956be20a}} 
Bit\+Mask\+Container {\bfseries face\+\_\+bit\+\_\+masks\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08576_a477e33a391ef17be0ee2f0094d2e22d9}\label{a08576_a477e33a391ef17be0ee2f0094d2e22d9}} 
class {\bfseries Status\+Set\+T$<$ Vertex\+Handle $>$}
\item 
\mbox{\Hypertarget{a08576_a8e28a0de831c3658c68a6e50e8435c4b}\label{a08576_a8e28a0de831c3658c68a6e50e8435c4b}} 
class {\bfseries Status\+Set\+T$<$ Edge\+Handle $>$}
\item 
\mbox{\Hypertarget{a08576_a2e264db47f828e7d233e5320499995ad}\label{a08576_a2e264db47f828e7d233e5320499995ad}} 
class {\bfseries Status\+Set\+T$<$ Face\+Handle $>$}
\item 
\mbox{\Hypertarget{a08576_ae64f42a424ae49c851b9860a54e4192c}\label{a08576_ae64f42a424ae49c851b9860a54e4192c}} 
class {\bfseries Status\+Set\+T$<$ Halfedge\+Handle $>$}
\item 
\mbox{\Hypertarget{a08576_a203fe50177457c5d7fcb9e88d2ab0016}\label{a08576_a203fe50177457c5d7fcb9e88d2ab0016}} 
class {\bfseries Auto\+Status\+Set\+T$<$ Vertex\+Handle $>$}
\item 
\mbox{\Hypertarget{a08576_a9c2aae0f0de5b31d59a269ee60a651ec}\label{a08576_a9c2aae0f0de5b31d59a269ee60a651ec}} 
class {\bfseries Auto\+Status\+Set\+T$<$ Edge\+Handle $>$}
\item 
\mbox{\Hypertarget{a08576_a223df861d73b3caf9232aa67bf414610}\label{a08576_a223df861d73b3caf9232aa67bf414610}} 
class {\bfseries Auto\+Status\+Set\+T$<$ Face\+Handle $>$}
\item 
\mbox{\Hypertarget{a08576_af7131b18dbb67ff31d36ac732ca2037b}\label{a08576_af7131b18dbb67ff31d36ac732ca2037b}} 
class {\bfseries Auto\+Status\+Set\+T$<$ Halfedge\+Handle $>$}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Mesh kernel using arrays for mesh item storage.

This mesh kernel uses the std\+::vector as container to store the mesh items. Therefore all handle types are internally represented by integers. To get the index from a handle use the handle\textquotesingle{}s {\ttfamily idx()} method.

\begin{DoxyNote}{Note}
For a description of the minimal kernel interface see Open\+Mesh\+::\+Mesh\+::\+Base\+Kernel. 

You do not have to use this class directly, use the predefined mesh-\/kernel combinations in \hyperlink{a06170}{Predefined Mesh Types}. 
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{a08324}{Open\+Mesh\+::\+Concepts\+::\+KernelT}, \hyperlink{mesh_type}{Specifying your My\+Mesh} 
\end{DoxySeeAlso}


Definition at line 87 of file Array\+Kernel.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a08576_ab959910ec7df2c8edc7f47878e549066}\label{a08576_ab959910ec7df2c8edc7f47878e549066}} 
\index{Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}!assign\+\_\+connectivity@{assign\+\_\+connectivity}}
\index{assign\+\_\+connectivity@{assign\+\_\+connectivity}!Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}}
\subsubsection{\texorpdfstring{assign\+\_\+connectivity()}{assign\_connectivity()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Array\+Kernel\+::assign\+\_\+connectivity (\begin{DoxyParamCaption}\item[{const \hyperlink{a08576}{Array\+Kernel} \&}]{\+\_\+other }\end{DoxyParamCaption})}

\hyperlink{a08576}{Array\+Kernel} uses the default copy constructor and assignment operator, which means that the connectivity and all properties are copied, including reference counters, allocated bit status masks, etc.. In contrast assign\+\_\+connectivity copies only the connectivity, i.\+e. vertices, edges, faces and their status fields. N\+O\+TE\+: The geometry (the points property) is N\+OT copied. Poly/\+Tri\+Connectivity override(and hide) that function to provide connectivity consistence. 

Definition at line 71 of file Array\+Kernel.\+cc.

\mbox{\Hypertarget{a08576_a04957ea762a7b0ff4fc3faac13c20fa4}\label{a08576_a04957ea762a7b0ff4fc3faac13c20fa4}} 
\index{Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}!clean@{clean}}
\index{clean@{clean}!Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}}
\subsubsection{\texorpdfstring{clean()}{clean()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Array\+Kernel\+::clean (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Remove all vertices, edges and faces and deallocates their memory. 

In contrast to \hyperlink{a08576_a0fb3a7b10b5382a0aaa88225917e6a89}{clear()} this method does neither erases the properties nor clears the property vectors. Depending on how you add any new entities to the mesh after calling this method, your properties will be initialized with old values.

\begin{DoxySeeAlso}{See also}
\hyperlink{a08576_aeb0af6fdeb2a51da1219cc1ddb84f201}{clean\+\_\+keep\+\_\+reservation()} 
\end{DoxySeeAlso}


Definition at line 184 of file Array\+Kernel.\+cc.

\mbox{\Hypertarget{a08576_aeb0af6fdeb2a51da1219cc1ddb84f201}\label{a08576_aeb0af6fdeb2a51da1219cc1ddb84f201}} 
\index{Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}!clean\+\_\+keep\+\_\+reservation@{clean\+\_\+keep\+\_\+reservation}}
\index{clean\+\_\+keep\+\_\+reservation@{clean\+\_\+keep\+\_\+reservation}!Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}}
\subsubsection{\texorpdfstring{clean\+\_\+keep\+\_\+reservation()}{clean\_keep\_reservation()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Array\+Kernel\+::clean\+\_\+keep\+\_\+reservation (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



Remove all vertices, edges and faces but keep memory allocated. 

This method behaves like \hyperlink{a08576_a04957ea762a7b0ff4fc3faac13c20fa4}{clean()} (also regarding the properties) but leaves the memory used for vertex, edge and face storage allocated. This leads to no reduction in memory consumption but allows for faster performance when rebuilding the mesh. 

Definition at line 174 of file Array\+Kernel.\+cc.

\mbox{\Hypertarget{a08576_aba7fd4df59227f974b44111ac45e835f}\label{a08576_aba7fd4df59227f974b44111ac45e835f}} 
\index{Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}!garbage\+\_\+collection@{garbage\+\_\+collection}}
\index{garbage\+\_\+collection@{garbage\+\_\+collection}!Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}}
\subsubsection{\texorpdfstring{garbage\+\_\+collection()}{garbage\_collection()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Array\+Kernel\+::garbage\+\_\+collection (\begin{DoxyParamCaption}\item[{bool}]{\+\_\+v = {\ttfamily true},  }\item[{bool}]{\+\_\+e = {\ttfamily true},  }\item[{bool}]{\+\_\+f = {\ttfamily true} }\end{DoxyParamCaption})}



garbage collection 

Usually if you delete primitives in \hyperlink{a06210}{Open\+Mesh}, they are only flagged as deleted. Only when you call garbage collection, they will be actually removed.

\begin{DoxyNote}{Note}
Garbage collection invalidates all handles. If you need to keep track of a set of handles, you can pass them to the second garbage collection function, which will update a vector of handles. See also \hyperlink{a14891_deletedElements}{Deleted Elements}.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+v} & Remove deleted vertices? \\
\hline
{\em \+\_\+e} & Remove deleted edges? \\
\hline
{\em \+\_\+f} & Remove deleted faces? \\
\hline
\end{DoxyParams}


Definition at line 166 of file Array\+Kernel.\+cc.

\mbox{\Hypertarget{a08576_aa050099ff46a17b4f38594eba0aefce2}\label{a08576_aa050099ff46a17b4f38594eba0aefce2}} 
\index{Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}!garbage\+\_\+collection@{garbage\+\_\+collection}}
\index{garbage\+\_\+collection@{garbage\+\_\+collection}!Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}}
\subsubsection{\texorpdfstring{garbage\+\_\+collection()}{garbage\_collection()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+V\+Handle\+Pointer , typename std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+H\+Handle\+Pointer , typename std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+F\+Handle\+Pointer $>$ \\
void Open\+Mesh\+::\+Array\+Kernel\+::garbage\+\_\+collection (\begin{DoxyParamCaption}\item[{std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+V\+Handle\+Pointer \&}]{vh\+\_\+to\+\_\+update,  }\item[{std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+H\+Handle\+Pointer \&}]{hh\+\_\+to\+\_\+update,  }\item[{std\+\_\+\+A\+P\+I\+\_\+\+Container\+\_\+\+F\+Handle\+Pointer \&}]{fh\+\_\+to\+\_\+update,  }\item[{bool}]{\+\_\+v = {\ttfamily true},  }\item[{bool}]{\+\_\+e = {\ttfamily true},  }\item[{bool}]{\+\_\+f = {\ttfamily true} }\end{DoxyParamCaption})}



garbage collection with handle tracking 

Usually if you delete primitives in \hyperlink{a06210}{Open\+Mesh}, they are only flagged as deleted. Only when you call garbage collection, they will be actually removed.

\begin{DoxyNote}{Note}
Garbage collection invalidates all handles. If you need to keep track of a set of handles, you can pass them to this function. The handles that the given pointers point to are updated in place. See also \hyperlink{a14891_deletedElements}{Deleted Elements}.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em vh\+\_\+to\+\_\+update} & Pointers to vertex handles that should get updated \\
\hline
{\em hh\+\_\+to\+\_\+update} & Pointers to halfedge handles that should get updated \\
\hline
{\em fh\+\_\+to\+\_\+update} & Pointers to face handles that should get updated \\
\hline
{\em \+\_\+v} & Remove deleted vertices? \\
\hline
{\em \+\_\+e} & Remove deleted edges? \\
\hline
{\em \+\_\+f} & Remove deleted faces? \\
\hline
\end{DoxyParams}


Definition at line 58 of file Array\+Kernel\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a08576_a99d673da244d912ee2054c3bcc7da076}\label{a08576_a99d673da244d912ee2054c3bcc7da076}} 
\index{Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}!new\+\_\+vertex@{new\+\_\+vertex}}
\index{new\+\_\+vertex@{new\+\_\+vertex}!Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}}
\subsubsection{\texorpdfstring{new\+\_\+vertex()}{new\_vertex()}}
{\footnotesize\ttfamily \hyperlink{a08696}{Vertex\+Handle} Open\+Mesh\+::\+Array\+Kernel\+::new\+\_\+vertex (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Add a new vertex. 

If you are rebuilding a mesh that you previously erased using \hyperlink{a08576_a04957ea762a7b0ff4fc3faac13c20fa4}{clean()} or \hyperlink{a08576_aeb0af6fdeb2a51da1219cc1ddb84f201}{clean\+\_\+keep\+\_\+reservation()} you probably want to use \hyperlink{a08576_acb1ef093727e221485a42bee55cea6f0}{new\+\_\+vertex\+\_\+dirty()} instead.

\begin{DoxySeeAlso}{See also}
\hyperlink{a08576_acb1ef093727e221485a42bee55cea6f0}{new\+\_\+vertex\+\_\+dirty()} 
\end{DoxySeeAlso}


Definition at line 216 of file Array\+Kernel.\+hh.

\mbox{\Hypertarget{a08576_acb1ef093727e221485a42bee55cea6f0}\label{a08576_acb1ef093727e221485a42bee55cea6f0}} 
\index{Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}!new\+\_\+vertex\+\_\+dirty@{new\+\_\+vertex\+\_\+dirty}}
\index{new\+\_\+vertex\+\_\+dirty@{new\+\_\+vertex\+\_\+dirty}!Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}}
\subsubsection{\texorpdfstring{new\+\_\+vertex\+\_\+dirty()}{new\_vertex\_dirty()}}
{\footnotesize\ttfamily \hyperlink{a08696}{Vertex\+Handle} Open\+Mesh\+::\+Array\+Kernel\+::new\+\_\+vertex\+\_\+dirty (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Same as \hyperlink{a08576_a99d673da244d912ee2054c3bcc7da076}{new\+\_\+vertex()} but uses \hyperlink{a08896_a44baed10be148cd4371f4592a8f70dd2}{Property\+Container\+::resize\+\_\+if\+\_\+smaller()} to resize the vertex property container.

If you are rebuilding a mesh that you erased with \hyperlink{a08576_a04957ea762a7b0ff4fc3faac13c20fa4}{clean()} or \hyperlink{a08576_aeb0af6fdeb2a51da1219cc1ddb84f201}{clean\+\_\+keep\+\_\+reservation()} using this method instead of \hyperlink{a08576_a99d673da244d912ee2054c3bcc7da076}{new\+\_\+vertex()} saves reallocation and reinitialization of property memory.

\begin{DoxySeeAlso}{See also}
\hyperlink{a08576_a99d673da244d912ee2054c3bcc7da076}{new\+\_\+vertex()} 
\end{DoxySeeAlso}


Definition at line 234 of file Array\+Kernel.\+hh.

\mbox{\Hypertarget{a08576_a41832642ebf9160c2499f2b4d04a45ae}\label{a08576_a41832642ebf9160c2499f2b4d04a45ae}} 
\index{Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}!reset\+\_\+status@{reset\+\_\+status}}
\index{reset\+\_\+status@{reset\+\_\+status}!Open\+Mesh\+::\+Array\+Kernel@{Open\+Mesh\+::\+Array\+Kernel}}
\subsubsection{\texorpdfstring{reset\+\_\+status()}{reset\_status()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Array\+Kernel\+::reset\+\_\+status (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Reinitializes the status of all vertices using the Status\+Info default constructor, i.\+e. all flags will be set to false. 

Definition at line 511 of file Array\+Kernel.\+hh.



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