\hypertarget{a01314}{\section{Open\+Volume\+Mesh\+:\+:Topology\+Kernel Class Reference}
\label{a01314}\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
}
Inheritance diagram for Open\+Volume\+Mesh\+:\+:Topology\+Kernel\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.666667cm]{a01314}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{a00392}{Cell\+Corrector}
\item 
class \hyperlink{a00519}{Edge\+Corrector}
\item 
class \hyperlink{a00553}{Face\+Corrector}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_ab9ef531b549f6b6271468a7a1d5cf091}{typedef \hyperlink{a00930}{Open\+Volume\+Mesh\+Edge} {\bfseries Edge}}\label{a01314_ab9ef531b549f6b6271468a7a1d5cf091}

\item 
\hypertarget{a01314_a9104ddf393b3522c2808b42d7ad8ebe5}{typedef \hyperlink{a00931}{Open\+Volume\+Mesh\+Face} {\bfseries Face}}\label{a01314_a9104ddf393b3522c2808b42d7ad8ebe5}

\item 
\hypertarget{a01314_a6eade3fcac5654a3f1639782ba882f72}{typedef \hyperlink{a00929}{Open\+Volume\+Mesh\+Cell} {\bfseries Cell}}\label{a01314_a6eade3fcac5654a3f1639782ba882f72}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_a41f34ebf3fd712db5febe0de0b70e966}{\hyperlink{a01429}{Vertex\+O\+Half\+Edge\+Iter} {\bfseries voh\+\_\+iter} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a41f34ebf3fd712db5febe0de0b70e966}

\item 
\hypertarget{a01314_a0f0b2bf5f38c69c9aa4b5ae2d792ece5}{std\+::pair$<$ \hyperlink{a01429}{Vertex\+O\+Half\+Edge\+Iter}, \\*
\hyperlink{a01429}{Vertex\+O\+Half\+Edge\+Iter} $>$ {\bfseries outgoing\+\_\+halfedges} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a0f0b2bf5f38c69c9aa4b5ae2d792ece5}

\item 
\hypertarget{a01314_a82e6a586179712a61eab78eeddd10801}{\hyperlink{a00666}{Half\+Edge\+Half\+Face\+Iter} {\bfseries hehf\+\_\+iter} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a82e6a586179712a61eab78eeddd10801}

\item 
\hypertarget{a01314_a0e9b8627edfb1ffee8fcbda97c79ff0b}{std\+::pair\\*
$<$ \hyperlink{a00666}{Half\+Edge\+Half\+Face\+Iter}, \\*
\hyperlink{a00666}{Half\+Edge\+Half\+Face\+Iter} $>$ {\bfseries halfedge\+\_\+halffaces} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a0e9b8627edfb1ffee8fcbda97c79ff0b}

\item 
\hypertarget{a01314_a7d3817e4e28d07c2ddf55196448f677c}{\hyperlink{a01416}{Vertex\+Cell\+Iter} {\bfseries vc\+\_\+iter} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a7d3817e4e28d07c2ddf55196448f677c}

\item 
\hypertarget{a01314_a521031db87c96ba23082278af7ca6d28}{std\+::pair$<$ \hyperlink{a01416}{Vertex\+Cell\+Iter}, \\*
\hyperlink{a01416}{Vertex\+Cell\+Iter} $>$ {\bfseries vertex\+\_\+cells} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1)}\label{a01314_a521031db87c96ba23082278af7ca6d28}

\item 
\hypertarget{a01314_a04cadc86b7d9745b15437cb394f47b74}{\hyperlink{a00665}{Half\+Edge\+Cell\+Iter} {\bfseries hec\+\_\+iter} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a04cadc86b7d9745b15437cb394f47b74}

\item 
\hypertarget{a01314_a1e403edd427067be8d992cccfe492932}{std\+::pair$<$ \hyperlink{a00665}{Half\+Edge\+Cell\+Iter}, \\*
\hyperlink{a00665}{Half\+Edge\+Cell\+Iter} $>$ {\bfseries halfedge\+\_\+cells} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1)}\label{a01314_a1e403edd427067be8d992cccfe492932}

\item 
\hypertarget{a01314_ae91f74e1f4a051d664938703341d53ec}{\hyperlink{a00399}{Cell\+Vertex\+Iter} {\bfseries cv\+\_\+iter} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_ae91f74e1f4a051d664938703341d53ec}

\item 
\hypertarget{a01314_a436f77bd7a5b2127b19ac5a3518dfabf}{std\+::pair$<$ \hyperlink{a00399}{Cell\+Vertex\+Iter}, \\*
\hyperlink{a00399}{Cell\+Vertex\+Iter} $>$ {\bfseries cell\+\_\+vertices} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a436f77bd7a5b2127b19ac5a3518dfabf}

\item 
\hypertarget{a01314_ad7669e85c2238668e8c60636d795dc2c}{\hyperlink{a00391}{Cell\+Cell\+Iter} {\bfseries cc\+\_\+iter} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_ad7669e85c2238668e8c60636d795dc2c}

\item 
\hypertarget{a01314_a862595f189ed53ea92a6308dfc300d19}{std\+::pair$<$ \hyperlink{a00391}{Cell\+Cell\+Iter}, \\*
\hyperlink{a00391}{Cell\+Cell\+Iter} $>$ {\bfseries cell\+\_\+cells} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a862595f189ed53ea92a6308dfc300d19}

\item 
\hypertarget{a01314_a0acefb7202d9baee4b027814374dbbd0}{\hyperlink{a00680}{Half\+Face\+Vertex\+Iter} {\bfseries hfv\+\_\+iter} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a0acefb7202d9baee4b027814374dbbd0}

\item 
\hypertarget{a01314_ac61aabc4fc3a44b2ba1d87dbfb07578e}{std\+::pair$<$ \hyperlink{a00680}{Half\+Face\+Vertex\+Iter}, \\*
\hyperlink{a00680}{Half\+Face\+Vertex\+Iter} $>$ {\bfseries halfface\+\_\+vertices} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_ac61aabc4fc3a44b2ba1d87dbfb07578e}

\item 
\hypertarget{a01314_a1e10d180908bc3506ae1cb6109f1d618}{\hyperlink{a00364}{Boundary\+Half\+Face\+Half\+Face\+Iter} {\bfseries bhfhf\+\_\+iter} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+ref\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_a1e10d180908bc3506ae1cb6109f1d618}

\item 
\hypertarget{a01314_aab465e893b218af767e518a057a009f4}{std\+::pair\\*
$<$ \hyperlink{a00364}{Boundary\+Half\+Face\+Half\+Face\+Iter}, \\*
\hyperlink{a00364}{Boundary\+Half\+Face\+Half\+Face\+Iter} $>$ {\bfseries boundary\+\_\+halfface\+\_\+halffaces} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+h, int \+\_\+max\+\_\+laps=1) const }\label{a01314_aab465e893b218af767e518a057a009f4}

\item 
\hypertarget{a01314_abb043b1d4a11ebfccc10c159f3fc4f33}{\hyperlink{a00363}{Boundary\+Face\+Iter} {\bfseries bf\+\_\+iter} () const }\label{a01314_abb043b1d4a11ebfccc10c159f3fc4f33}

\item 
\hypertarget{a01314_a8417a73026334d8d602c50c2082b6416}{\hyperlink{a01427}{Vertex\+Iter} {\bfseries v\+\_\+iter} () const }\label{a01314_a8417a73026334d8d602c50c2082b6416}

\item 
\hypertarget{a01314_a976c6d08d31204089764ceecc4462c70}{\hyperlink{a01427}{Vertex\+Iter} {\bfseries vertices\+\_\+begin} () const }\label{a01314_a976c6d08d31204089764ceecc4462c70}

\item 
\hypertarget{a01314_a603a20a5059698134b310613276d965b}{\hyperlink{a01427}{Vertex\+Iter} {\bfseries vertices\+\_\+end} () const }\label{a01314_a603a20a5059698134b310613276d965b}

\item 
\hypertarget{a01314_a65932db1a2c0cd4767e013edbb2ecee0}{std\+::pair$<$ \hyperlink{a01427}{Vertex\+Iter}, \hyperlink{a01427}{Vertex\+Iter} $>$ {\bfseries vertices} () const }\label{a01314_a65932db1a2c0cd4767e013edbb2ecee0}

\item 
\hypertarget{a01314_a9fbef9943ec8423b91ab3169d63bb329}{\hyperlink{a00523}{Edge\+Iter} {\bfseries e\+\_\+iter} () const }\label{a01314_a9fbef9943ec8423b91ab3169d63bb329}

\item 
\hypertarget{a01314_a9d9244c253ab49f8212cbac87ee25fcc}{\hyperlink{a00523}{Edge\+Iter} {\bfseries edges\+\_\+begin} () const }\label{a01314_a9d9244c253ab49f8212cbac87ee25fcc}

\item 
\hypertarget{a01314_a84975fc60d24f92f14b7e14ca32738b7}{\hyperlink{a00523}{Edge\+Iter} {\bfseries edges\+\_\+end} () const }\label{a01314_a84975fc60d24f92f14b7e14ca32738b7}

\item 
\hypertarget{a01314_a7a05e2db5a8f8dd690cfad7ef6a481ab}{std\+::pair$<$ \hyperlink{a00523}{Edge\+Iter}, \hyperlink{a00523}{Edge\+Iter} $>$ {\bfseries edges} () const }\label{a01314_a7a05e2db5a8f8dd690cfad7ef6a481ab}

\item 
\hypertarget{a01314_a731a00cf9caf9d4f6b6836814eeacde4}{\hyperlink{a00670}{Half\+Edge\+Iter} {\bfseries he\+\_\+iter} () const }\label{a01314_a731a00cf9caf9d4f6b6836814eeacde4}

\item 
\hypertarget{a01314_a8f9b26cbb1b0bbcf802e686106b97fa9}{\hyperlink{a00670}{Half\+Edge\+Iter} {\bfseries halfedges\+\_\+begin} () const }\label{a01314_a8f9b26cbb1b0bbcf802e686106b97fa9}

\item 
\hypertarget{a01314_a9b1ea1cf7c0520311a0a673e74b23187}{\hyperlink{a00670}{Half\+Edge\+Iter} {\bfseries halfedges\+\_\+end} () const }\label{a01314_a9b1ea1cf7c0520311a0a673e74b23187}

\item 
\hypertarget{a01314_aae4c6a15fb98f761feb04be3445a887f}{std\+::pair$<$ \hyperlink{a00670}{Half\+Edge\+Iter}, \\*
\hyperlink{a00670}{Half\+Edge\+Iter} $>$ {\bfseries halfedges} () const }\label{a01314_aae4c6a15fb98f761feb04be3445a887f}

\item 
\hypertarget{a01314_aca650b104ec7e14b6f1710538b3586b2}{\hyperlink{a00557}{Face\+Iter} {\bfseries f\+\_\+iter} () const }\label{a01314_aca650b104ec7e14b6f1710538b3586b2}

\item 
\hypertarget{a01314_a15efe8aa37dc9c36c5764c5304d17203}{\hyperlink{a00557}{Face\+Iter} {\bfseries faces\+\_\+begin} () const }\label{a01314_a15efe8aa37dc9c36c5764c5304d17203}

\item 
\hypertarget{a01314_ad17300a64b932fd28ed18fdb234d641a}{\hyperlink{a00557}{Face\+Iter} {\bfseries faces\+\_\+end} () const }\label{a01314_ad17300a64b932fd28ed18fdb234d641a}

\item 
\hypertarget{a01314_abae3947362f5d9dbb7aed053fe924d98}{std\+::pair$<$ \hyperlink{a00557}{Face\+Iter}, \hyperlink{a00557}{Face\+Iter} $>$ {\bfseries faces} () const }\label{a01314_abae3947362f5d9dbb7aed053fe924d98}

\item 
\hypertarget{a01314_a5d69cdb79feef20e07d1194c4ca34d81}{\hyperlink{a00676}{Half\+Face\+Iter} {\bfseries hf\+\_\+iter} () const }\label{a01314_a5d69cdb79feef20e07d1194c4ca34d81}

\item 
\hypertarget{a01314_a0f729386c96dfd4c75f316a1d23428f5}{\hyperlink{a00676}{Half\+Face\+Iter} {\bfseries halffaces\+\_\+begin} () const }\label{a01314_a0f729386c96dfd4c75f316a1d23428f5}

\item 
\hypertarget{a01314_aa92927b84e4bd019742b177ec88e3614}{\hyperlink{a00676}{Half\+Face\+Iter} {\bfseries halffaces\+\_\+end} () const }\label{a01314_aa92927b84e4bd019742b177ec88e3614}

\item 
\hypertarget{a01314_a842431e67aae60f3cee991e3aff914fe}{std\+::pair$<$ \hyperlink{a00676}{Half\+Face\+Iter}, \\*
\hyperlink{a00676}{Half\+Face\+Iter} $>$ {\bfseries halffaces} () const }\label{a01314_a842431e67aae60f3cee991e3aff914fe}

\item 
\hypertarget{a01314_a9aaf21c3c2ae626341c555fb27b59952}{\hyperlink{a00394}{Cell\+Iter} {\bfseries c\+\_\+iter} () const }\label{a01314_a9aaf21c3c2ae626341c555fb27b59952}

\item 
\hypertarget{a01314_ae342088bec1e08fa28458bd71ed5ac83}{\hyperlink{a00394}{Cell\+Iter} {\bfseries cells\+\_\+begin} () const }\label{a01314_ae342088bec1e08fa28458bd71ed5ac83}

\item 
\hypertarget{a01314_ace76ac2dfa31d46da2287d868fac043b}{\hyperlink{a00394}{Cell\+Iter} {\bfseries cells\+\_\+end} () const }\label{a01314_ace76ac2dfa31d46da2287d868fac043b}

\item 
\hypertarget{a01314_a3cae66eee8bacfdf9280fb1b09374302}{std\+::pair$<$ \hyperlink{a00394}{Cell\+Iter}, \hyperlink{a00394}{Cell\+Iter} $>$ {\bfseries cells} () const }\label{a01314_a3cae66eee8bacfdf9280fb1b09374302}

\item 
\hypertarget{a01314_ad809d4e7d877d61777f1e7e1aacdbaf7}{virtual size\+\_\+t \hyperlink{a01314_ad809d4e7d877d61777f1e7e1aacdbaf7}{n\+\_\+vertices} () const }\label{a01314_ad809d4e7d877d61777f1e7e1aacdbaf7}

\begin{DoxyCompactList}\small\item\em Get number of vertices in mesh. \end{DoxyCompactList}\item 
\hypertarget{a01314_a842a116727b193a7dc06f6d6b47846d9}{virtual size\+\_\+t \hyperlink{a01314_a842a116727b193a7dc06f6d6b47846d9}{n\+\_\+edges} () const }\label{a01314_a842a116727b193a7dc06f6d6b47846d9}

\begin{DoxyCompactList}\small\item\em Get number of edges in mesh. \end{DoxyCompactList}\item 
\hypertarget{a01314_a671be5e3e2fcea8a2d274deaf2b18b6e}{virtual size\+\_\+t \hyperlink{a01314_a671be5e3e2fcea8a2d274deaf2b18b6e}{n\+\_\+halfedges} () const }\label{a01314_a671be5e3e2fcea8a2d274deaf2b18b6e}

\begin{DoxyCompactList}\small\item\em Get number of halfedges in mesh. \end{DoxyCompactList}\item 
\hypertarget{a01314_a6c7928ddeea76e1bfd5c151c8bf94ddd}{virtual size\+\_\+t \hyperlink{a01314_a6c7928ddeea76e1bfd5c151c8bf94ddd}{n\+\_\+faces} () const }\label{a01314_a6c7928ddeea76e1bfd5c151c8bf94ddd}

\begin{DoxyCompactList}\small\item\em Get number of faces in mesh. \end{DoxyCompactList}\item 
\hypertarget{a01314_a64de9309871f0583895f07f17f066a1a}{virtual size\+\_\+t \hyperlink{a01314_a64de9309871f0583895f07f17f066a1a}{n\+\_\+halffaces} () const }\label{a01314_a64de9309871f0583895f07f17f066a1a}

\begin{DoxyCompactList}\small\item\em Get number of halffaces in mesh. \end{DoxyCompactList}\item 
\hypertarget{a01314_a1b98c24b8bbbde6442d66522b05af93b}{virtual size\+\_\+t \hyperlink{a01314_a1b98c24b8bbbde6442d66522b05af93b}{n\+\_\+cells} () const }\label{a01314_a1b98c24b8bbbde6442d66522b05af93b}

\begin{DoxyCompactList}\small\item\em Get number of cells in mesh. \end{DoxyCompactList}\item 
\hypertarget{a01314_a8b8628b2afe4733a56caed7169b048b0}{int {\bfseries genus} () const }\label{a01314_a8b8628b2afe4733a56caed7169b048b0}

\item 
\hypertarget{a01314_ab83e69afa9df42ed53c793068bdd7444}{virtual \hyperlink{a01425}{Vertex\+Handle} \hyperlink{a01314_ab83e69afa9df42ed53c793068bdd7444}{add\+\_\+vertex} ()}\label{a01314_ab83e69afa9df42ed53c793068bdd7444}

\begin{DoxyCompactList}\small\item\em Add abstract vertex. \end{DoxyCompactList}\item 
\hypertarget{a01314_a0444dd03b5c8f13beee04e85ca8654c0}{virtual \hyperlink{a00522}{Edge\+Handle} \hyperlink{a01314_a0444dd03b5c8f13beee04e85ca8654c0}{add\+\_\+edge} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+from\+Vertex, const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+to\+Handle, bool \+\_\+allow\+Duplicates=false)}\label{a01314_a0444dd03b5c8f13beee04e85ca8654c0}

\begin{DoxyCompactList}\small\item\em Add edge. \end{DoxyCompactList}\item 
virtual \hyperlink{a00556}{Face\+Handle} \hyperlink{a01314_a0d39e76cff8a318046e640b3887a6845}{add\+\_\+face} (const std\+::vector$<$ \hyperlink{a00669}{Half\+Edge\+Handle} $>$ \&\+\_\+halfedges, bool \+\_\+topology\+Check=false)
\begin{DoxyCompactList}\small\item\em Add face via incident edges. \end{DoxyCompactList}\item 
virtual \hyperlink{a00556}{Face\+Handle} \hyperlink{a01314_a12dfd3700d0fb4c0374865c0e55bbef4}{add\+\_\+face} (const std\+::vector$<$ \hyperlink{a01425}{Vertex\+Handle} $>$ \&\+\_\+vertices)
\begin{DoxyCompactList}\small\item\em Add face via incident vertices. \end{DoxyCompactList}\item 
virtual \hyperlink{a00393}{Cell\+Handle} \hyperlink{a01314_a6eccac4ed7e00021b946a46aff011ff4}{add\+\_\+cell} (const std\+::vector$<$ \hyperlink{a00675}{Half\+Face\+Handle} $>$ \&\+\_\+halffaces, bool \+\_\+topology\+Check=false)
\begin{DoxyCompactList}\small\item\em Add cell via incident halffaces. \end{DoxyCompactList}\item 
\hypertarget{a01314_a3bd8e3dfe3525025333e8a903efa03ba}{void \hyperlink{a01314_a3bd8e3dfe3525025333e8a903efa03ba}{set\+\_\+edge} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+eh, const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+from\+Vertex, const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+to\+Vertex)}\label{a01314_a3bd8e3dfe3525025333e8a903efa03ba}

\begin{DoxyCompactList}\small\item\em Set the vertices of an edge. \end{DoxyCompactList}\item 
\hypertarget{a01314_aa2f7082c78c4dffe222d4deaf809c022}{void \hyperlink{a01314_aa2f7082c78c4dffe222d4deaf809c022}{set\+\_\+face} (const \hyperlink{a00556}{Face\+Handle} \&\+\_\+fh, const std\+::vector$<$ \hyperlink{a00669}{Half\+Edge\+Handle} $>$ \&\+\_\+hes)}\label{a01314_aa2f7082c78c4dffe222d4deaf809c022}

\begin{DoxyCompactList}\small\item\em Set the half-\/edges of a face. \end{DoxyCompactList}\item 
\hypertarget{a01314_a9442cbd13519de47ef0864b0382d24d4}{void \hyperlink{a01314_a9442cbd13519de47ef0864b0382d24d4}{set\+\_\+cell} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+ch, const std\+::vector$<$ \hyperlink{a00675}{Half\+Face\+Handle} $>$ \&\+\_\+hfs)}\label{a01314_a9442cbd13519de47ef0864b0382d24d4}

\begin{DoxyCompactList}\small\item\em Set the half-\/faces of a cell. \end{DoxyCompactList}\item 
\hypertarget{a01314_ad0e4f7ef78149cf70ab2810ba4d2d190}{const \hyperlink{a00930}{Edge} \& \hyperlink{a01314_ad0e4f7ef78149cf70ab2810ba4d2d190}{edge} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+edge\+Handle) const }\label{a01314_ad0e4f7ef78149cf70ab2810ba4d2d190}

\begin{DoxyCompactList}\small\item\em Get edge with handle \+\_\+edge\+Handle. \end{DoxyCompactList}\item 
\hypertarget{a01314_a2be7d44ab8f092fbfbc0868178432737}{const \hyperlink{a00931}{Face} \& \hyperlink{a01314_a2be7d44ab8f092fbfbc0868178432737}{face} (const \hyperlink{a00556}{Face\+Handle} \&\+\_\+face\+Handle) const }\label{a01314_a2be7d44ab8f092fbfbc0868178432737}

\begin{DoxyCompactList}\small\item\em Get face with handle \+\_\+face\+Handle. \end{DoxyCompactList}\item 
\hypertarget{a01314_ab0702b1a86bbb02873ba1f9961377469}{const \hyperlink{a00929}{Cell} \& \hyperlink{a01314_ab0702b1a86bbb02873ba1f9961377469}{cell} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+cell\+Handle) const }\label{a01314_ab0702b1a86bbb02873ba1f9961377469}

\begin{DoxyCompactList}\small\item\em Get cell with handle \+\_\+cell\+Handle. \end{DoxyCompactList}\item 
\hypertarget{a01314_a0f369a8c67eaa94e9e478ef3ebe357fa}{\hyperlink{a00930}{Edge} \& \hyperlink{a01314_a0f369a8c67eaa94e9e478ef3ebe357fa}{edge} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+edge\+Handle)}\label{a01314_a0f369a8c67eaa94e9e478ef3ebe357fa}

\begin{DoxyCompactList}\small\item\em Get edge with handle \+\_\+edge\+Handle. \end{DoxyCompactList}\item 
\hypertarget{a01314_a1787882199b94fa916bad53b6eaa3a2a}{\hyperlink{a00931}{Face} \& \hyperlink{a01314_a1787882199b94fa916bad53b6eaa3a2a}{face} (const \hyperlink{a00556}{Face\+Handle} \&\+\_\+face\+Handle)}\label{a01314_a1787882199b94fa916bad53b6eaa3a2a}

\begin{DoxyCompactList}\small\item\em Get face with handle \+\_\+face\+Handle. \end{DoxyCompactList}\item 
\hypertarget{a01314_ab87ce93f9f960f28f1378842ca999b6c}{\hyperlink{a00929}{Cell} \& \hyperlink{a01314_ab87ce93f9f960f28f1378842ca999b6c}{cell} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+cell\+Handle)}\label{a01314_ab87ce93f9f960f28f1378842ca999b6c}

\begin{DoxyCompactList}\small\item\em Get cell with handle \+\_\+cell\+Handle. \end{DoxyCompactList}\item 
\hyperlink{a00930}{Edge} \hyperlink{a01314_a7351e524263f6be816f6935d7180d999}{halfedge} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+half\+Edge\+Handle) const 
\begin{DoxyCompactList}\small\item\em Get edge that corresponds to halfedge with handle \+\_\+half\+Edge\+Handle. \end{DoxyCompactList}\item 
\hypertarget{a01314_a7d24e7ba552ca9c2c4f848d9dd1a5852}{\hyperlink{a00931}{Face} \hyperlink{a01314_a7d24e7ba552ca9c2c4f848d9dd1a5852}{halfface} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+half\+Face\+Handle) const }\label{a01314_a7d24e7ba552ca9c2c4f848d9dd1a5852}

\begin{DoxyCompactList}\small\item\em Get face that corresponds to halfface with handle \+\_\+half\+Face\+Handle. \end{DoxyCompactList}\item 
\hypertarget{a01314_aefe9451d9531ddf8c7ebd6f61d395d88}{\hyperlink{a00930}{Edge} \hyperlink{a01314_aefe9451d9531ddf8c7ebd6f61d395d88}{opposite\+\_\+halfedge} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+half\+Edge\+Handle) const }\label{a01314_aefe9451d9531ddf8c7ebd6f61d395d88}

\begin{DoxyCompactList}\small\item\em Get opposite halfedge that corresponds to halfedge with handle \+\_\+half\+Edge\+Handle. \end{DoxyCompactList}\item 
\hypertarget{a01314_ae69595a60ecac555e06597c5547fb5d9}{\hyperlink{a00931}{Face} \hyperlink{a01314_ae69595a60ecac555e06597c5547fb5d9}{opposite\+\_\+halfface} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+half\+Face\+Handle) const }\label{a01314_ae69595a60ecac555e06597c5547fb5d9}

\begin{DoxyCompactList}\small\item\em Get opposite halfface that corresponds to halfface with handle \+\_\+half\+Face\+Handle. \end{DoxyCompactList}\item 
\hypertarget{a01314_a3b1896f767ade1cf2ef05dc8dc5702fc}{\hyperlink{a00669}{Half\+Edge\+Handle} \hyperlink{a01314_a3b1896f767ade1cf2ef05dc8dc5702fc}{halfedge} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+vh1, const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+vh2) const }\label{a01314_a3b1896f767ade1cf2ef05dc8dc5702fc}

\begin{DoxyCompactList}\small\item\em Get halfedge from vertex \+\_\+vh1 to \+\_\+vh2. \end{DoxyCompactList}\item 
\hyperlink{a00675}{Half\+Face\+Handle} \hyperlink{a01314_ace8fe334e525a3716e0efbb1ca005055}{halfface} (const std\+::vector$<$ \hyperlink{a01425}{Vertex\+Handle} $>$ \&\+\_\+vs) const 
\item 
\hyperlink{a00675}{Half\+Face\+Handle} \hyperlink{a01314_ad59b185dd12814b5e64e4149bdfe9901}{halfface\+\_\+extensive} (const std\+::vector$<$ \hyperlink{a01425}{Vertex\+Handle} $>$ \&\+\_\+vs) const 
\item 
\hyperlink{a00675}{Half\+Face\+Handle} \hyperlink{a01314_a0a0e0909e850989b26aea003cb6829ed}{halfface} (const std\+::vector$<$ \hyperlink{a00669}{Half\+Edge\+Handle} $>$ \&\+\_\+hes) const 
\item 
\hypertarget{a01314_a35c0d5863f7655163c30ac05a36269e0}{\hyperlink{a00669}{Half\+Edge\+Handle} \hyperlink{a01314_a35c0d5863f7655163c30ac05a36269e0}{next\+\_\+halfedge\+\_\+in\+\_\+halfface} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+heh, const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+hfh) const }\label{a01314_a35c0d5863f7655163c30ac05a36269e0}

\begin{DoxyCompactList}\small\item\em Get next halfedge within a halfface. \end{DoxyCompactList}\item 
\hypertarget{a01314_a29715900f831a4d6c19f0bfc11aab9a0}{\hyperlink{a00669}{Half\+Edge\+Handle} \hyperlink{a01314_a29715900f831a4d6c19f0bfc11aab9a0}{prev\+\_\+halfedge\+\_\+in\+\_\+halfface} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+heh, const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+hfh) const }\label{a01314_a29715900f831a4d6c19f0bfc11aab9a0}

\begin{DoxyCompactList}\small\item\em Get previous halfedge within a halfface. \end{DoxyCompactList}\item 
\hypertarget{a01314_a28a8ac1f1282d040e251791960200c4a}{size\+\_\+t \hyperlink{a01314_a28a8ac1f1282d040e251791960200c4a}{valence} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+vh) const }\label{a01314_a28a8ac1f1282d040e251791960200c4a}

\begin{DoxyCompactList}\small\item\em Get valence of vertex (number of incident edges) \end{DoxyCompactList}\item 
\hypertarget{a01314_ad72685baca1e86dabc622d68fd77bb94}{size\+\_\+t \hyperlink{a01314_ad72685baca1e86dabc622d68fd77bb94}{valence} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+eh) const }\label{a01314_ad72685baca1e86dabc622d68fd77bb94}

\begin{DoxyCompactList}\small\item\em Get valence of edge (number of incident faces) \end{DoxyCompactList}\item 
\hypertarget{a01314_a71d5de8f4072ad729f57adbdf611bdf7}{size\+\_\+t \hyperlink{a01314_a71d5de8f4072ad729f57adbdf611bdf7}{valence} (const \hyperlink{a00556}{Face\+Handle} \&\+\_\+fh) const }\label{a01314_a71d5de8f4072ad729f57adbdf611bdf7}

\begin{DoxyCompactList}\small\item\em Get valence of face (number of incident edges) \end{DoxyCompactList}\item 
\hypertarget{a01314_a351b5bd7bc84cf470882d56ed152eb6a}{size\+\_\+t \hyperlink{a01314_a351b5bd7bc84cf470882d56ed152eb6a}{valence} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+ch) const }\label{a01314_a351b5bd7bc84cf470882d56ed152eb6a}

\begin{DoxyCompactList}\small\item\em Get valence of cell (number of incident faces) \end{DoxyCompactList}\item 
virtual \hyperlink{a01427}{Vertex\+Iter} \hyperlink{a01314_a117a36421d62a0843df19ca22102201c}{delete\+\_\+vertex} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+h)
\begin{DoxyCompactList}\small\item\em Delete vertex from mesh. \end{DoxyCompactList}\item 
virtual \hyperlink{a00523}{Edge\+Iter} \hyperlink{a01314_acc204262a97f8523d5593f2683bf6311}{delete\+\_\+edge} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+h)
\begin{DoxyCompactList}\small\item\em Delete edge from mesh. \end{DoxyCompactList}\item 
virtual \hyperlink{a00557}{Face\+Iter} \hyperlink{a01314_a4dd3198241a447db22676a79c3aa5037}{delete\+\_\+face} (const \hyperlink{a00556}{Face\+Handle} \&\+\_\+h)
\begin{DoxyCompactList}\small\item\em Delete face from mesh. \end{DoxyCompactList}\item 
virtual \hyperlink{a00394}{Cell\+Iter} \hyperlink{a01314_a306d87e0fa6638195fce51786b3dfd50}{delete\+\_\+cell} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+h)
\begin{DoxyCompactList}\small\item\em Delete cell from mesh. \end{DoxyCompactList}\item 
\hypertarget{a01314_afdbad979e2a1b5ed8654ace7a9bdd86d}{virtual void \hyperlink{a01314_afdbad979e2a1b5ed8654ace7a9bdd86d}{collect\+\_\+garbage} ()}\label{a01314_afdbad979e2a1b5ed8654ace7a9bdd86d}

\begin{DoxyCompactList}\small\item\em Delete all entities that are marked as deleted. \end{DoxyCompactList}\item 
\hypertarget{a01314_af3f079aa012fe6ea79ca12282a6edf8d}{virtual bool {\bfseries is\+\_\+deleted} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+h) const }\label{a01314_af3f079aa012fe6ea79ca12282a6edf8d}

\item 
\hypertarget{a01314_a3df0abe0092ea9c613595138f255174e}{virtual bool {\bfseries is\+\_\+deleted} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+h) const }\label{a01314_a3df0abe0092ea9c613595138f255174e}

\item 
\hypertarget{a01314_a52357861a01be3039cf7455e0a78e14d}{virtual bool {\bfseries is\+\_\+deleted} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+h) const }\label{a01314_a52357861a01be3039cf7455e0a78e14d}

\item 
\hypertarget{a01314_a78a94ca75a433277ae00a30ea5264822}{virtual bool {\bfseries is\+\_\+deleted} (const \hyperlink{a00556}{Face\+Handle} \&\+\_\+h) const }\label{a01314_a78a94ca75a433277ae00a30ea5264822}

\item 
\hypertarget{a01314_a487f5863bba55223a47e8f9a2ebe4a40}{virtual bool {\bfseries is\+\_\+deleted} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+h) const }\label{a01314_a487f5863bba55223a47e8f9a2ebe4a40}

\item 
\hypertarget{a01314_a1d75d8725e9128058228f093a7ad37a5}{virtual bool {\bfseries is\+\_\+deleted} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+h) const }\label{a01314_a1d75d8725e9128058228f093a7ad37a5}

\item 
\hyperlink{a00394}{Cell\+Iter} \hyperlink{a01314_a81b96e4f2500dd606b5e488e8712d22a}{delete\+\_\+cell\+\_\+range} (const \hyperlink{a00394}{Cell\+Iter} \&\+\_\+first, const \hyperlink{a00394}{Cell\+Iter} \&\+\_\+last)
\begin{DoxyCompactList}\small\item\em Delete range of cells. \end{DoxyCompactList}\item 
\hypertarget{a01314_aa12dca4e8c32f513aca40cce9419e0d3}{virtual void \hyperlink{a01314_aa12dca4e8c32f513aca40cce9419e0d3}{clear} (bool \+\_\+clear\+Props=true)}\label{a01314_aa12dca4e8c32f513aca40cce9419e0d3}

\begin{DoxyCompactList}\small\item\em Clear whole mesh. \end{DoxyCompactList}\item 
\hypertarget{a01314_a20620da2bbe66d4f358a7247454cbc97}{void {\bfseries enable\+\_\+bottom\+\_\+up\+\_\+incidences} (bool \+\_\+enable=true)}\label{a01314_a20620da2bbe66d4f358a7247454cbc97}

\item 
\hypertarget{a01314_a5918ba6a3400f28421a35dd316ba11da}{void {\bfseries enable\+\_\+vertex\+\_\+bottom\+\_\+up\+\_\+incidences} (bool \+\_\+enable=true)}\label{a01314_a5918ba6a3400f28421a35dd316ba11da}

\item 
\hypertarget{a01314_a3d5bdfda2519ba8a0a2959421589689a}{void {\bfseries enable\+\_\+edge\+\_\+bottom\+\_\+up\+\_\+incidences} (bool \+\_\+enable=true)}\label{a01314_a3d5bdfda2519ba8a0a2959421589689a}

\item 
\hypertarget{a01314_ac0b6fd1cd8a2950f296d783e228a720a}{void {\bfseries enable\+\_\+face\+\_\+bottom\+\_\+up\+\_\+incidences} (bool \+\_\+enable=true)}\label{a01314_ac0b6fd1cd8a2950f296d783e228a720a}

\item 
\hypertarget{a01314_a6290514cdef985a854b5f8f2abf69bdf}{bool {\bfseries has\+\_\+full\+\_\+bottom\+\_\+up\+\_\+incidences} () const }\label{a01314_a6290514cdef985a854b5f8f2abf69bdf}

\item 
\hypertarget{a01314_aa1a31f69afce8b67dab8e1d02772285f}{bool {\bfseries has\+\_\+vertex\+\_\+bottom\+\_\+up\+\_\+incidences} () const }\label{a01314_aa1a31f69afce8b67dab8e1d02772285f}

\item 
\hypertarget{a01314_a06b8e2ee27ede935bc8486c3a9208436}{bool {\bfseries has\+\_\+edge\+\_\+bottom\+\_\+up\+\_\+incidences} () const }\label{a01314_a06b8e2ee27ede935bc8486c3a9208436}

\item 
\hypertarget{a01314_a31b524c94f4d7d49bbbbb78d8acd6ab5}{bool {\bfseries has\+\_\+face\+\_\+bottom\+\_\+up\+\_\+incidences} () const }\label{a01314_a31b524c94f4d7d49bbbbb78d8acd6ab5}

\item 
\hypertarget{a01314_a25d23595c6f8a60e7a07399ac648ded7}{void {\bfseries enable\+\_\+deferred\+\_\+deletion} (bool \+\_\+enable=true)}\label{a01314_a25d23595c6f8a60e7a07399ac648ded7}

\item 
\hypertarget{a01314_a93842240c3f759359f495eb6a634a5da}{bool {\bfseries deferred\+\_\+deletion\+\_\+enabled} () const }\label{a01314_a93842240c3f759359f495eb6a634a5da}

\item 
\hypertarget{a01314_a9ec874a191c5523398f436ea03c5820d}{void {\bfseries enable\+\_\+fast\+\_\+deletion} (bool \+\_\+enable=true)}\label{a01314_a9ec874a191c5523398f436ea03c5820d}

\item 
\hypertarget{a01314_ad7394cc9a2e7332ad7be4a72d660fcd4}{bool {\bfseries fast\+\_\+deletion\+\_\+enabled} () const }\label{a01314_ad7394cc9a2e7332ad7be4a72d660fcd4}

\item 
\hyperlink{a00675}{Half\+Face\+Handle} \hyperlink{a01314_a971af9cc14880ac9429ebb5948512ef2}{adjacent\+\_\+halfface\+\_\+in\+\_\+cell} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+half\+Face\+Handle, const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+half\+Edge\+Handle) const 
\begin{DoxyCompactList}\small\item\em Get halfface that is adjacent (w.\+r.\+t. a common halfedge) within the same cell. \end{DoxyCompactList}\item 
\hypertarget{a01314_a69532728333527626e1d9a7b7d2947b3}{\hyperlink{a00393}{Cell\+Handle} \hyperlink{a01314_a69532728333527626e1d9a7b7d2947b3}{incident\+\_\+cell} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+half\+Face\+Handle) const }\label{a01314_a69532728333527626e1d9a7b7d2947b3}

\begin{DoxyCompactList}\small\item\em Get cell that is incident to the given halfface. \end{DoxyCompactList}\item 
\hypertarget{a01314_a06290969382d1ddbb076ca3e929d28c8}{bool {\bfseries is\+\_\+boundary} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+half\+Face\+Handle) const }\label{a01314_a06290969382d1ddbb076ca3e929d28c8}

\item 
\hypertarget{a01314_ae325aa20bf4ac8867c27761974d2cb1a}{bool {\bfseries is\+\_\+boundary} (const \hyperlink{a00556}{Face\+Handle} \&\+\_\+face\+Handle) const }\label{a01314_ae325aa20bf4ac8867c27761974d2cb1a}

\item 
\hypertarget{a01314_a989c68ae16ddfe751feaf1489e6c3b06}{bool {\bfseries is\+\_\+boundary} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+edge\+Handle) const }\label{a01314_a989c68ae16ddfe751feaf1489e6c3b06}

\item 
\hypertarget{a01314_a72fb4038b18e09533c16248786bc30c2}{bool {\bfseries is\+\_\+boundary} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+halfedge\+Handle) const }\label{a01314_a72fb4038b18e09533c16248786bc30c2}

\item 
\hypertarget{a01314_aeeb98056843eecb8b642c7cf24cd9614}{bool {\bfseries is\+\_\+boundary} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+vertex\+Handle) const }\label{a01314_aeeb98056843eecb8b642c7cf24cd9614}

\item 
\hypertarget{a01314_a396f9d11cc7df50b668bd3616e7fdd9f}{size\+\_\+t {\bfseries n\+\_\+vertices\+\_\+in\+\_\+cell} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+ch) const }\label{a01314_a396f9d11cc7df50b668bd3616e7fdd9f}

\item 
\hypertarget{a01314_a85b66a2e3adb5a90d551e09d87f4ecc5}{\hyperlink{a00930}{Edge} {\bfseries opposite\+\_\+halfedge} (const \hyperlink{a00930}{Edge} \&\+\_\+edge) const }\label{a01314_a85b66a2e3adb5a90d551e09d87f4ecc5}

\item 
\hypertarget{a01314_a0891453a59d8d0a2174c53a0bc45342e}{\hyperlink{a00931}{Face} {\bfseries opposite\+\_\+halfface} (const \hyperlink{a00931}{Face} \&\+\_\+face) const }\label{a01314_a0891453a59d8d0a2174c53a0bc45342e}

\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_aa273019d3894191776cd2cccca181b6d}{static \hyperlink{a00669}{Half\+Edge\+Handle} \hyperlink{a01314_aa273019d3894191776cd2cccca181b6d}{halfedge\+\_\+handle} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+h, const unsigned char \+\_\+sub\+Idx)}\label{a01314_aa273019d3894191776cd2cccca181b6d}

\begin{DoxyCompactList}\small\item\em Conversion function. \end{DoxyCompactList}\item 
\hypertarget{a01314_afd5f4900f7cda7e992be90ac57d667d7}{static \hyperlink{a00675}{Half\+Face\+Handle} \hyperlink{a01314_afd5f4900f7cda7e992be90ac57d667d7}{halfface\+\_\+handle} (const \hyperlink{a00556}{Face\+Handle} \&\+\_\+h, const unsigned char \+\_\+sub\+Idx)}\label{a01314_afd5f4900f7cda7e992be90ac57d667d7}

\begin{DoxyCompactList}\small\item\em Conversion function. \end{DoxyCompactList}\item 
\hypertarget{a01314_a147bf3c413a752512f0443ac65085257}{static \hyperlink{a00522}{Edge\+Handle} \hyperlink{a01314_a147bf3c413a752512f0443ac65085257}{edge\+\_\+handle} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+h)}\label{a01314_a147bf3c413a752512f0443ac65085257}

\begin{DoxyCompactList}\small\item\em Handle conversion. \end{DoxyCompactList}\item 
\hypertarget{a01314_a068b9daa412243a5fd1a3e38b5f3f27b}{static \hyperlink{a00556}{Face\+Handle} {\bfseries face\+\_\+handle} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+h)}\label{a01314_a068b9daa412243a5fd1a3e38b5f3f27b}

\item 
\hypertarget{a01314_a758c21a9d80a1b69ce7cc7421f1f61fe}{static \hyperlink{a00669}{Half\+Edge\+Handle} {\bfseries opposite\+\_\+halfedge\+\_\+handle} (const \hyperlink{a00669}{Half\+Edge\+Handle} \&\+\_\+h)}\label{a01314_a758c21a9d80a1b69ce7cc7421f1f61fe}

\item 
\hypertarget{a01314_a9da6da9c5d5bcae40eb58db7cc453e0c}{static \hyperlink{a00675}{Half\+Face\+Handle} {\bfseries opposite\+\_\+halfface\+\_\+handle} (const \hyperlink{a00675}{Half\+Face\+Handle} \&\+\_\+h)}\label{a01314_a9da6da9c5d5bcae40eb58db7cc453e0c}

\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_a66b5ed833a76cb6ab7141fac81829eb5}{static const \hyperlink{a01425}{Vertex\+Handle} {\bfseries Invalid\+Vertex\+Handle} = \hyperlink{a01425}{Vertex\+Handle}(-\/1)}\label{a01314_a66b5ed833a76cb6ab7141fac81829eb5}

\item 
\hypertarget{a01314_ae2d44d3b6fd7688fa7e1b3627c787cde}{static const \hyperlink{a00522}{Edge\+Handle} {\bfseries Invalid\+Edge\+Handle} = \hyperlink{a00522}{Edge\+Handle}(-\/1)}\label{a01314_ae2d44d3b6fd7688fa7e1b3627c787cde}

\item 
\hypertarget{a01314_aef0a6822bdd2cf829bb9bc94d4d9047e}{static const \hyperlink{a00556}{Face\+Handle} {\bfseries Invalid\+Face\+Handle} = \hyperlink{a00556}{Face\+Handle}(-\/1)}\label{a01314_aef0a6822bdd2cf829bb9bc94d4d9047e}

\item 
\hypertarget{a01314_aff59640a267ade91e12bc73d25d30a57}{static const \hyperlink{a00393}{Cell\+Handle} {\bfseries Invalid\+Cell\+Handle} = \hyperlink{a00393}{Cell\+Handle}(-\/1)}\label{a01314_aff59640a267ade91e12bc73d25d30a57}

\item 
\hypertarget{a01314_ae498f5c2a3231888f4b8e5f749b72c33}{static const \hyperlink{a00669}{Half\+Edge\+Handle} {\bfseries Invalid\+Half\+Edge\+Handle} = \hyperlink{a00669}{Half\+Edge\+Handle}(-\/1)}\label{a01314_ae498f5c2a3231888f4b8e5f749b72c33}

\item 
\hypertarget{a01314_afe5b55119435342aa4cee48f8b36b8a1}{static const \hyperlink{a00675}{Half\+Face\+Handle} {\bfseries Invalid\+Half\+Face\+Handle} = \hyperlink{a00675}{Half\+Face\+Handle}(-\/1)}\label{a01314_afe5b55119435342aa4cee48f8b36b8a1}

\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_a4c86e827354d2f65a8baf5c601bd31b7}{virtual void {\bfseries swap\+\_\+cells} (\hyperlink{a00393}{Cell\+Handle} \+\_\+h1, \hyperlink{a00393}{Cell\+Handle} \+\_\+h2)}\label{a01314_a4c86e827354d2f65a8baf5c601bd31b7}

\item 
\hypertarget{a01314_a46ac07f0bfb312ab32a5efcc0f0b647f}{virtual void {\bfseries swap\+\_\+faces} (\hyperlink{a00556}{Face\+Handle} \+\_\+h1, \hyperlink{a00556}{Face\+Handle} \+\_\+h2)}\label{a01314_a46ac07f0bfb312ab32a5efcc0f0b647f}

\item 
\hypertarget{a01314_ac366f4d9433cf8050d303ef365a5011a}{virtual void {\bfseries swap\+\_\+edges} (\hyperlink{a00522}{Edge\+Handle} \+\_\+h1, \hyperlink{a00522}{Edge\+Handle} \+\_\+h2)}\label{a01314_ac366f4d9433cf8050d303ef365a5011a}

\item 
\hypertarget{a01314_acc09c3c9af6f5449b55403d3dbffda21}{virtual void {\bfseries swap\+\_\+vertices} (\hyperlink{a01425}{Vertex\+Handle} \+\_\+h1, \hyperlink{a01425}{Vertex\+Handle} \+\_\+h2)}\label{a01314_acc09c3c9af6f5449b55403d3dbffda21}

\item 
\hypertarget{a01314_ad6c322d288d448e58fdd7cc27a7aa917}{virtual void {\bfseries delete\+\_\+multiple\+\_\+vertices} (const std\+::vector$<$ bool $>$ \&\+\_\+tag)}\label{a01314_ad6c322d288d448e58fdd7cc27a7aa917}

\item 
\hypertarget{a01314_a2b225cbc6a08ab2921655adb3c8c72f2}{virtual void {\bfseries delete\+\_\+multiple\+\_\+edges} (const std\+::vector$<$ bool $>$ \&\+\_\+tag)}\label{a01314_a2b225cbc6a08ab2921655adb3c8c72f2}

\item 
\hypertarget{a01314_ad31ecb8e67405cf400026744d94902a5}{virtual void {\bfseries delete\+\_\+multiple\+\_\+faces} (const std\+::vector$<$ bool $>$ \&\+\_\+tag)}\label{a01314_ad31ecb8e67405cf400026744d94902a5}

\item 
\hypertarget{a01314_a5f90191ca81c006964e400d513c8405a}{virtual void {\bfseries delete\+\_\+multiple\+\_\+cells} (const std\+::vector$<$ bool $>$ \&\+\_\+tag)}\label{a01314_a5f90191ca81c006964e400d513c8405a}

\item 
\hypertarget{a01314_a90c811109fca461d43ea2252761495d8}{void {\bfseries compute\+\_\+vertex\+\_\+bottom\+\_\+up\+\_\+incidences} ()}\label{a01314_a90c811109fca461d43ea2252761495d8}

\item 
\hypertarget{a01314_aa2a661607e309c413879939dbf86b068}{void {\bfseries compute\+\_\+edge\+\_\+bottom\+\_\+up\+\_\+incidences} ()}\label{a01314_aa2a661607e309c413879939dbf86b068}

\item 
\hypertarget{a01314_a5afb2c10b709516d9d9bead5f7253719}{void {\bfseries compute\+\_\+face\+\_\+bottom\+\_\+up\+\_\+incidences} ()}\label{a01314_a5afb2c10b709516d9d9bead5f7253719}

\item 
\hypertarget{a01314_a14aaa981a56c1528129f171d026f28d7}{void {\bfseries reorder\+\_\+incident\+\_\+halffaces} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+eh)}\label{a01314_a14aaa981a56c1528129f171d026f28d7}

\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_ad8aa2e51977d976bf8844aa5cd14af23}{{\footnotesize template$<$class Circulator $>$ }\\static Circulator {\bfseries make\+\_\+end\+\_\+circulator} (const Circulator \&\+\_\+circ)}\label{a01314_ad8aa2e51977d976bf8844aa5cd14af23}

\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_a95ea5009e05fb49ccb317b4a40eebd73}{std\+::vector$<$ std\+::vector\\*
$<$ \hyperlink{a00669}{Half\+Edge\+Handle} $>$ $>$ {\bfseries outgoing\+\_\+hes\+\_\+per\+\_\+vertex\+\_\+}}\label{a01314_a95ea5009e05fb49ccb317b4a40eebd73}

\item 
\hypertarget{a01314_ac9f9839340f921c7ecca462487f598cb}{std\+::vector$<$ std\+::vector\\*
$<$ \hyperlink{a00675}{Half\+Face\+Handle} $>$ $>$ {\bfseries incident\+\_\+hfs\+\_\+per\+\_\+he\+\_\+}}\label{a01314_ac9f9839340f921c7ecca462487f598cb}

\item 
\hypertarget{a01314_a91578837b1cb1de0231bfc90bd4f9206}{std\+::vector$<$ \hyperlink{a00393}{Cell\+Handle} $>$ {\bfseries incident\+\_\+cell\+\_\+per\+\_\+hf\+\_\+}}\label{a01314_a91578837b1cb1de0231bfc90bd4f9206}

\item 
\hypertarget{a01314_a646592c2c4ac5175a6e55a8d13bc283a}{std\+::vector$<$ \hyperlink{a00930}{Edge} $>$ {\bfseries edges\+\_\+}}\label{a01314_a646592c2c4ac5175a6e55a8d13bc283a}

\item 
\hypertarget{a01314_a93d9440e85d2bd526cfe7122b0aa621f}{std\+::vector$<$ \hyperlink{a00931}{Face} $>$ {\bfseries faces\+\_\+}}\label{a01314_a93d9440e85d2bd526cfe7122b0aa621f}

\item 
\hypertarget{a01314_a7476c86cea3c7ba2e871b882699bb6e6}{std\+::vector$<$ \hyperlink{a00929}{Cell} $>$ {\bfseries cells\+\_\+}}\label{a01314_a7476c86cea3c7ba2e871b882699bb6e6}

\item 
\hypertarget{a01314_a7c2be327ce071f899d389a72d66ca381}{std\+::vector$<$ bool $>$ {\bfseries vertex\+\_\+deleted\+\_\+}}\label{a01314_a7c2be327ce071f899d389a72d66ca381}

\item 
\hypertarget{a01314_ab2920794ac43dd2fffd84d6805df99e9}{std\+::vector$<$ bool $>$ {\bfseries edge\+\_\+deleted\+\_\+}}\label{a01314_ab2920794ac43dd2fffd84d6805df99e9}

\item 
\hypertarget{a01314_af4e14af52129c1a6f18f94ebd6903c50}{std\+::vector$<$ bool $>$ {\bfseries face\+\_\+deleted\+\_\+}}\label{a01314_af4e14af52129c1a6f18f94ebd6903c50}

\item 
\hypertarget{a01314_a933dd8d2b52e68d99f9a861b8ebbb2d3}{std\+::vector$<$ bool $>$ {\bfseries cell\+\_\+deleted\+\_\+}}\label{a01314_a933dd8d2b52e68d99f9a861b8ebbb2d3}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_a985d623d527636ad5251a2ee82e8da00}{{\footnotesize template$<$class Container\+T $>$ }\\void {\bfseries get\+\_\+incident\+\_\+edges} (const Container\+T \&\+\_\+vs, std\+::set$<$ \hyperlink{a00522}{Edge\+Handle} $>$ \&\+\_\+es) const }\label{a01314_a985d623d527636ad5251a2ee82e8da00}

\item 
\hypertarget{a01314_aaa6341f32fd30afe276541cd74f28b70}{{\footnotesize template$<$class Container\+T $>$ }\\void {\bfseries get\+\_\+incident\+\_\+faces} (const Container\+T \&\+\_\+es, std\+::set$<$ \hyperlink{a00556}{Face\+Handle} $>$ \&\+\_\+fs) const }\label{a01314_aaa6341f32fd30afe276541cd74f28b70}

\item 
\hypertarget{a01314_adc2e5ca73e6a2d64f1c4d110367236dc}{{\footnotesize template$<$class Container\+T $>$ }\\void {\bfseries get\+\_\+incident\+\_\+cells} (const Container\+T \&\+\_\+fs, std\+::set$<$ \hyperlink{a00393}{Cell\+Handle} $>$ \&\+\_\+cs) const }\label{a01314_adc2e5ca73e6a2d64f1c4d110367236dc}

\item 
\hyperlink{a01427}{Vertex\+Iter} \hyperlink{a01314_a045700b5d46f2685e13ecaa51fdd0709}{delete\+\_\+vertex\+\_\+core} (const \hyperlink{a01425}{Vertex\+Handle} \&\+\_\+h)
\begin{DoxyCompactList}\small\item\em Delete vertex from mesh. \end{DoxyCompactList}\item 
\hyperlink{a00523}{Edge\+Iter} \hyperlink{a01314_a302d0b905b3ea3f7ed17dc2e549757b1}{delete\+\_\+edge\+\_\+core} (const \hyperlink{a00522}{Edge\+Handle} \&\+\_\+h)
\begin{DoxyCompactList}\small\item\em Delete edge from mesh. \end{DoxyCompactList}\item 
\hyperlink{a00557}{Face\+Iter} \hyperlink{a01314_a109ad1c8c2680321774d1703c3167c58}{delete\+\_\+face\+\_\+core} (const \hyperlink{a00556}{Face\+Handle} \&\+\_\+h)
\begin{DoxyCompactList}\small\item\em Delete face from mesh. \end{DoxyCompactList}\item 
\hyperlink{a00394}{Cell\+Iter} \hyperlink{a01314_adfa680c6b8c1c795dd653ccddeaa093e}{delete\+\_\+cell\+\_\+core} (const \hyperlink{a00393}{Cell\+Handle} \&\+\_\+h)
\begin{DoxyCompactList}\small\item\em Delete cell from mesh. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_a5bb8c8cb8d4655df1525a31d6c848509}{size\+\_\+t {\bfseries n\+\_\+vertices\+\_\+}}\label{a01314_a5bb8c8cb8d4655df1525a31d6c848509}

\item 
\hypertarget{a01314_a824dd55bfa306eba43bd4dc054be3cd6}{bool {\bfseries v\+\_\+bottom\+\_\+up\+\_\+}}\label{a01314_a824dd55bfa306eba43bd4dc054be3cd6}

\item 
\hypertarget{a01314_a4de37a29b72f8cca727ae9283f7ee71f}{bool {\bfseries e\+\_\+bottom\+\_\+up\+\_\+}}\label{a01314_a4de37a29b72f8cca727ae9283f7ee71f}

\item 
\hypertarget{a01314_a6c7147ca0f79b7c785c6909f1fe7ff41}{bool {\bfseries f\+\_\+bottom\+\_\+up\+\_\+}}\label{a01314_a6c7147ca0f79b7c785c6909f1fe7ff41}

\item 
\hypertarget{a01314_ab69530e3f48a83b74bc0fde84fd65787}{bool {\bfseries deferred\+\_\+deletion}}\label{a01314_ab69530e3f48a83b74bc0fde84fd65787}

\item 
\hypertarget{a01314_a0f3f79a86d31a92064adc525c48d2147}{bool {\bfseries fast\+\_\+deletion}}\label{a01314_a0f3f79a86d31a92064adc525c48d2147}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a01314_aff2e7a8de8e053b567828d7f7d9d9e2d}{class {\bfseries Status\+Attrib}}\label{a01314_aff2e7a8de8e053b567828d7f7d9d9e2d}

\item 
\hypertarget{a01314_af339b9befdfedfeb679b538db20d74d9}{class {\bfseries Vertex\+O\+Half\+Edge\+Iter}}\label{a01314_af339b9befdfedfeb679b538db20d74d9}

\item 
\hypertarget{a01314_aaf037e67191e2cc7458f53e2f09a2688}{class {\bfseries Half\+Edge\+Half\+Face\+Iter}}\label{a01314_aaf037e67191e2cc7458f53e2f09a2688}

\item 
\hypertarget{a01314_ab06ebc9320827da841dc69293dc1fd8b}{class {\bfseries Vertex\+Cell\+Iter}}\label{a01314_ab06ebc9320827da841dc69293dc1fd8b}

\item 
\hypertarget{a01314_ab881bf952294ccd92a37e5d3519e2a7e}{class {\bfseries Half\+Edge\+Cell\+Iter}}\label{a01314_ab881bf952294ccd92a37e5d3519e2a7e}

\item 
\hypertarget{a01314_ac29565019de47f008c261dc7d092ad32}{class {\bfseries Cell\+Vertex\+Iter}}\label{a01314_ac29565019de47f008c261dc7d092ad32}

\item 
\hypertarget{a01314_ac924065e52feae04fb993b21c90955e6}{class {\bfseries Cell\+Cell\+Iter}}\label{a01314_ac924065e52feae04fb993b21c90955e6}

\item 
\hypertarget{a01314_aaa937a4f51561f0a5f4abbfe6b7571ad}{class {\bfseries Half\+Face\+Vertex\+Iter}}\label{a01314_aaa937a4f51561f0a5f4abbfe6b7571ad}

\item 
\hypertarget{a01314_a4f138f0fb782db292e7ad3485aff5c1e}{class {\bfseries Boundary\+Half\+Face\+Half\+Face\+Iter}}\label{a01314_a4f138f0fb782db292e7ad3485aff5c1e}

\item 
\hypertarget{a01314_aace2fceeddb2d3e4027ddd67384c384b}{class {\bfseries Boundary\+Face\+Iter}}\label{a01314_aace2fceeddb2d3e4027ddd67384c384b}

\item 
\hypertarget{a01314_afcd0eec072787ca4d6b421d16072d103}{class {\bfseries Vertex\+Iter}}\label{a01314_afcd0eec072787ca4d6b421d16072d103}

\item 
\hypertarget{a01314_a816ec85e3e235f14ab6a8f238da301ad}{class {\bfseries Edge\+Iter}}\label{a01314_a816ec85e3e235f14ab6a8f238da301ad}

\item 
\hypertarget{a01314_ac0eda92cf90223e289fec55c7759d592}{class {\bfseries Half\+Edge\+Iter}}\label{a01314_ac0eda92cf90223e289fec55c7759d592}

\item 
\hypertarget{a01314_a48df3fb737dcca5ea81b1aa90f6c231b}{class {\bfseries Face\+Iter}}\label{a01314_a48df3fb737dcca5ea81b1aa90f6c231b}

\item 
\hypertarget{a01314_accc5514e4f3365a083ee4fab87123620}{class {\bfseries Half\+Face\+Iter}}\label{a01314_accc5514e4f3365a083ee4fab87123620}

\item 
\hypertarget{a01314_a4c79ae0bbf8c632766cab98c74c0f218}{class {\bfseries Cell\+Iter}}\label{a01314_a4c79ae0bbf8c632766cab98c74c0f218}

\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 57 of file Topology\+Kernel.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a01314_a6eccac4ed7e00021b946a46aff011ff4}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!add\+\_\+cell@{add\+\_\+cell}}
\index{add\+\_\+cell@{add\+\_\+cell}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{add\+\_\+cell}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Cell\+Handle} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::add\+\_\+cell (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ {\bf Half\+Face\+Handle} $>$ \&}]{\+\_\+halffaces, }
\item[{bool}]{\+\_\+topology\+Check = {\ttfamily false}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a01314_a6eccac4ed7e00021b946a46aff011ff4}


Add cell via incident halffaces. 

Add cell via incident halffaces

\begin{DoxyReturn}{Returns}
Handle of the new cell, Invalid\+Cell\+Handle if {\itshape \+\_\+topology\+Check} is {\itshape true} and {\itshape \+\_\+halffaces} are not connected.
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
If \+\_\+halffaces are not connected and {\itshape \+\_\+topology\+Check} is {\itshape false}, the behavior is undefined. 
\end{DoxyWarning}


Reimplemented in \hyperlink{a00698_ad4591572bf3c6526052e1b81b0db60d9}{Open\+Volume\+Mesh\+::\+Hexahedral\+Mesh\+Topology\+Kernel}, and \hyperlink{a01273_ab0aab7dd51d3f90795b84a04d441e144}{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}.



Definition at line 377 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a0d39e76cff8a318046e640b3887a6845}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{add\+\_\+face}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Face\+Handle} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::add\+\_\+face (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ {\bf Half\+Edge\+Handle} $>$ \&}]{\+\_\+halfedges, }
\item[{bool}]{\+\_\+topology\+Check = {\ttfamily false}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a01314_a0d39e76cff8a318046e640b3887a6845}


Add face via incident edges. 

Add face via incident edges

\begin{DoxyReturn}{Returns}
Handle of the new face, Invalid\+Face\+Handle if {\itshape \+\_\+halfedges} are not connected and {\itshape \+\_\+topology\+Check} is {\itshape true}.
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
If \+\_\+halfedges are not connected and {\itshape \+\_\+topology\+Check} is {\itshape false}, the behavior is undefined. 
\end{DoxyWarning}


Reimplemented in \hyperlink{a00698_a24812b87dd16229d6e4543a3ec97cf6f}{Open\+Volume\+Mesh\+::\+Hexahedral\+Mesh\+Topology\+Kernel}, and \hyperlink{a01273_a192007449542133c70f3bfe4e18bd194}{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}.



Definition at line 161 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a12dfd3700d0fb4c0374865c0e55bbef4}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{add\+\_\+face}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Face\+Handle} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::add\+\_\+face (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ {\bf Vertex\+Handle} $>$ \&}]{\+\_\+vertices}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a01314_a12dfd3700d0fb4c0374865c0e55bbef4}


Add face via incident vertices. 

Add face via incident vertices Define the \+\_\+vertices in counter-\/clockwise order (from the \char`\"{}outside\char`\"{}) 

Reimplemented in \hyperlink{a00698_aa3abb32b64daa7a4b834304c082e6c1d}{Open\+Volume\+Mesh\+::\+Hexahedral\+Mesh\+Topology\+Kernel}, and \hyperlink{a01273_abe082c791405bc29e47282a6de3b7096}{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}.



Definition at line 250 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a971af9cc14880ac9429ebb5948512ef2}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!adjacent\+\_\+halfface\+\_\+in\+\_\+cell@{adjacent\+\_\+halfface\+\_\+in\+\_\+cell}}
\index{adjacent\+\_\+halfface\+\_\+in\+\_\+cell@{adjacent\+\_\+halfface\+\_\+in\+\_\+cell}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{adjacent\+\_\+halfface\+\_\+in\+\_\+cell}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Half\+Face\+Handle} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::adjacent\+\_\+halfface\+\_\+in\+\_\+cell (
\begin{DoxyParamCaption}
\item[{const {\bf Half\+Face\+Handle} \&}]{\+\_\+half\+Face\+Handle, }
\item[{const {\bf Half\+Edge\+Handle} \&}]{\+\_\+half\+Edge\+Handle}
\end{DoxyParamCaption}
) const}}\label{a01314_a971af9cc14880ac9429ebb5948512ef2}


Get halfface that is adjacent (w.\+r.\+t. a common halfedge) within the same cell. 

\begin{DoxyReturn}{Returns}
Handle of the adjacent half-\/face if {\itshape \+\_\+half\+Face\+Handle} is not at a boundary, {\itshape Invalid\+Half\+Face\+Handle} otherwise.
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
The mesh must have face bottom-\/up incidences. 
\end{DoxyWarning}


Definition at line 2259 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a306d87e0fa6638195fce51786b3dfd50}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!delete\+\_\+cell@{delete\+\_\+cell}}
\index{delete\+\_\+cell@{delete\+\_\+cell}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{delete\+\_\+cell}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Cell\+Iter} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::delete\+\_\+cell (
\begin{DoxyParamCaption}
\item[{const {\bf Cell\+Handle} \&}]{\+\_\+h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a01314_a306d87e0fa6638195fce51786b3dfd50}


Delete cell from mesh. 

Since there's no higher dimensional incident entity to a cell, we can safely delete it from the mesh.


\begin{DoxyParams}{Parameters}
{\em \+\_\+h} & The handle to the cell to be deleted \\
\hline
\end{DoxyParams}


Definition at line 711 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_adfa680c6b8c1c795dd653ccddeaa093e}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!delete\+\_\+cell\+\_\+core@{delete\+\_\+cell\+\_\+core}}
\index{delete\+\_\+cell\+\_\+core@{delete\+\_\+cell\+\_\+core}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{delete\+\_\+cell\+\_\+core}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Cell\+Iter} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::delete\+\_\+cell\+\_\+core (
\begin{DoxyParamCaption}
\item[{const {\bf Cell\+Handle} \&}]{\+\_\+h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01314_adfa680c6b8c1c795dd653ccddeaa093e}


Delete cell from mesh. 

After performing this operation, all cells following cell \+\_\+h in the array will be accessible through their old handle decreased by one. These steps are performed\+:

1) Delete links in B\+U\+: H\+F -\/$>$ C 2) Decrease all entries $>$ c in B\+U\+: H\+F -\/$>$ C 3) Delete cell from storage array 4) Delete property item


\begin{DoxyParams}{Parameters}
{\em \+\_\+h} & A cell handle \\
\hline
\end{DoxyParams}


Definition at line 1362 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a81b96e4f2500dd606b5e488e8712d22a}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!delete\+\_\+cell\+\_\+range@{delete\+\_\+cell\+\_\+range}}
\index{delete\+\_\+cell\+\_\+range@{delete\+\_\+cell\+\_\+range}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{delete\+\_\+cell\+\_\+range}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Cell\+Iter} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::delete\+\_\+cell\+\_\+range (
\begin{DoxyParamCaption}
\item[{const {\bf Cell\+Iter} \&}]{\+\_\+first, }
\item[{const {\bf Cell\+Iter} \&}]{\+\_\+last}
\end{DoxyParamCaption}
)}}\label{a01314_a81b96e4f2500dd606b5e488e8712d22a}


Delete range of cells. 

Deletes all cells in range \mbox{[}\+\_\+first, \+\_\+last\mbox{]}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+first} & Iterator to first cell that is to be deleted \\
\hline
{\em \+\_\+last} & Iterator to last cell that is to be deleted \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An iterator to the first cell after the deleted range 
\end{DoxyReturn}


Definition at line 1952 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_acc204262a97f8523d5593f2683bf6311}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!delete\+\_\+edge@{delete\+\_\+edge}}
\index{delete\+\_\+edge@{delete\+\_\+edge}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{delete\+\_\+edge}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Edge\+Iter} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::delete\+\_\+edge (
\begin{DoxyParamCaption}
\item[{const {\bf Edge\+Handle} \&}]{\+\_\+h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a01314_acc204262a97f8523d5593f2683bf6311}


Delete edge from mesh. 

Get all incident higher-\/dimensional entities and delete the complete subtree of the mesh incident to edge {\itshape h. In this function all incident entities are gathered and deleted using the delete}$\ast$\+\_\+core functions that do the actual deletion including the update of the bottom-\/up incidences, etc.


\begin{DoxyParams}{Parameters}
{\em \+\_\+h} & The handle to the edge to be deleted \\
\hline
\end{DoxyParams}


Definition at line 641 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a302d0b905b3ea3f7ed17dc2e549757b1}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!delete\+\_\+edge\+\_\+core@{delete\+\_\+edge\+\_\+core}}
\index{delete\+\_\+edge\+\_\+core@{delete\+\_\+edge\+\_\+core}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{delete\+\_\+edge\+\_\+core}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Edge\+Iter} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::delete\+\_\+edge\+\_\+core (
\begin{DoxyParamCaption}
\item[{const {\bf Edge\+Handle} \&}]{\+\_\+h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01314_a302d0b905b3ea3f7ed17dc2e549757b1}


Delete edge from mesh. 

After performing this operation, all edges following edge \+\_\+h in the array will be accessible through their old handle decreased by one. This function directly fixes the edge links in all faces. These steps are performed\+:

1) Delete bottom-\/up links from incident vertices 2) Decrease all half-\/edge handles $>$ \+\_\+h in incident faces 3) Delete entry in bottom-\/up list\+: H\+E -\/$>$ H\+F 4) Decrease all half-\/edge handles $>$ 2$\ast$\+\_\+h.idx() in vertex bottom-\/up list 5) Delete edge itself 6) Delete property entry


\begin{DoxyParams}{Parameters}
{\em \+\_\+h} & An edge's handle \\
\hline
\end{DoxyParams}


Definition at line 1011 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a4dd3198241a447db22676a79c3aa5037}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!delete\+\_\+face@{delete\+\_\+face}}
\index{delete\+\_\+face@{delete\+\_\+face}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{delete\+\_\+face}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Face\+Iter} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::delete\+\_\+face (
\begin{DoxyParamCaption}
\item[{const {\bf Face\+Handle} \&}]{\+\_\+h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a01314_a4dd3198241a447db22676a79c3aa5037}


Delete face from mesh. 

Get all incident higher-\/dimensional entities and delete the complete subtree of the mesh incident to face {\itshape h. In this function all incident entities are gathered and deleted using the delete}$\ast$\+\_\+core functions that do the actual deletion including the update of the bottom-\/up incidences, etc.


\begin{DoxyParams}{Parameters}
{\em \+\_\+h} & The handle to the face to be deleted \\
\hline
\end{DoxyParams}


Definition at line 682 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a109ad1c8c2680321774d1703c3167c58}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!delete\+\_\+face\+\_\+core@{delete\+\_\+face\+\_\+core}}
\index{delete\+\_\+face\+\_\+core@{delete\+\_\+face\+\_\+core}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{delete\+\_\+face\+\_\+core}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Face\+Iter} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::delete\+\_\+face\+\_\+core (
\begin{DoxyParamCaption}
\item[{const {\bf Face\+Handle} \&}]{\+\_\+h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01314_a109ad1c8c2680321774d1703c3167c58}


Delete face from mesh. 

After performing this operation, all faces following face \+\_\+h in the array will be accessible through their old handle decreased by one. This function directly fixes the face links in all cells. These steps are performed\+:

1) Delete bottom-\/up links from incident edges 2) Decrease all half-\/face handles $>$ \+\_\+h in incident cells 3) Delete entry in bottom-\/up list\+: H\+F -\/$>$ C 4) Decrease all half-\/face handles $>$ 2$\ast$\+\_\+h.idx() in half-\/edge bottom-\/up list 5) Delete face itself 6) Delete property entry


\begin{DoxyParams}{Parameters}
{\em \+\_\+h} & An face's handle \\
\hline
\end{DoxyParams}


Definition at line 1194 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a117a36421d62a0843df19ca22102201c}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!delete\+\_\+vertex@{delete\+\_\+vertex}}
\index{delete\+\_\+vertex@{delete\+\_\+vertex}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{delete\+\_\+vertex}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vertex\+Iter} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::delete\+\_\+vertex (
\begin{DoxyParamCaption}
\item[{const {\bf Vertex\+Handle} \&}]{\+\_\+h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a01314_a117a36421d62a0843df19ca22102201c}


Delete vertex from mesh. 

Get all incident higher-\/dimensional entities and delete the complete subtree of the mesh incident to vertex {\itshape h. In this function all incident entities are gathered and deleted using the delete}$\ast$\+\_\+core functions that do the actual deletion including the update of the bottom-\/up incidences, etc.


\begin{DoxyParams}{Parameters}
{\em \+\_\+h} & The handle to the vertex to be deleted \\
\hline
\end{DoxyParams}


Definition at line 591 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a045700b5d46f2685e13ecaa51fdd0709}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!delete\+\_\+vertex\+\_\+core@{delete\+\_\+vertex\+\_\+core}}
\index{delete\+\_\+vertex\+\_\+core@{delete\+\_\+vertex\+\_\+core}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{delete\+\_\+vertex\+\_\+core}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vertex\+Iter} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::delete\+\_\+vertex\+\_\+core (
\begin{DoxyParamCaption}
\item[{const {\bf Vertex\+Handle} \&}]{\+\_\+h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a01314_a045700b5d46f2685e13ecaa51fdd0709}


Delete vertex from mesh. 

After performing this operation, all vertices following vertex \+\_\+h in the array will be accessible through their old handle decreased by one. This function directly fixes the vertex links in all edges. These steps are performed\+:

1) Decrease all vertex handles $>$ \+\_\+h in incident edges 2) Delete entry in bottom-\/up list\+: V -\/$>$ H\+E 3) Delete vertex itself (not necessary here since a vertex is only represented by a number) 4) Delete property entry


\begin{DoxyParams}{Parameters}
{\em \+\_\+h} & A vertex's handle \\
\hline
\end{DoxyParams}


Definition at line 907 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a7351e524263f6be816f6935d7180d999}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!halfedge@{halfedge}}
\index{halfedge@{halfedge}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{halfedge}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Open\+Volume\+Mesh\+Edge} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::halfedge (
\begin{DoxyParamCaption}
\item[{const {\bf Half\+Edge\+Handle} \&}]{\+\_\+half\+Edge\+Handle}
\end{DoxyParamCaption}
) const}}\label{a01314_a7351e524263f6be816f6935d7180d999}


Get edge that corresponds to halfedge with handle \+\_\+half\+Edge\+Handle. 

Otherwise return the opposite halfedge via opposite() 

Definition at line 2047 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_ace8fe334e525a3716e0efbb1ca005055}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!halfface@{halfface}}
\index{halfface@{halfface}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{halfface}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Half\+Face\+Handle} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::halfface (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ {\bf Vertex\+Handle} $>$ \&}]{\+\_\+vs}
\end{DoxyParamCaption}
) const}}\label{a01314_ace8fe334e525a3716e0efbb1ca005055}
Get half-\/face from list of incident vertices (in connected order)

\begin{DoxyNote}{Note}
Only the first three vertices are checked 
\end{DoxyNote}


Definition at line 2130 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_a0a0e0909e850989b26aea003cb6829ed}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!halfface@{halfface}}
\index{halfface@{halfface}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{halfface}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Half\+Face\+Handle} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::halfface (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ {\bf Half\+Edge\+Handle} $>$ \&}]{\+\_\+hes}
\end{DoxyParamCaption}
) const}}\label{a01314_a0a0e0909e850989b26aea003cb6829ed}
Get half-\/face from list of incident half-\/edges

\begin{DoxyNote}{Note}
Only the first two half-\/edges are checked 
\end{DoxyNote}


Definition at line 2197 of file Topology\+Kernel.\+cc.

\hypertarget{a01314_ad59b185dd12814b5e64e4149bdfe9901}{\index{Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}!halfface\+\_\+extensive@{halfface\+\_\+extensive}}
\index{halfface\+\_\+extensive@{halfface\+\_\+extensive}!Open\+Volume\+Mesh\+::\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Topology\+Kernel}}
\subsubsection[{halfface\+\_\+extensive}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Half\+Face\+Handle} Open\+Volume\+Mesh\+::\+Topology\+Kernel\+::halfface\+\_\+extensive (
\begin{DoxyParamCaption}
\item[{const std\+::vector$<$ {\bf Vertex\+Handle} $>$ \&}]{\+\_\+vs}
\end{DoxyParamCaption}
) const}}\label{a01314_ad59b185dd12814b5e64e4149bdfe9901}
Get half-\/face from list of incident vertices (in connected order)

\begin{DoxyNote}{Note}
All vertices are checked 
\end{DoxyNote}


Definition at line 2150 of file Topology\+Kernel.\+cc.



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