\hypertarget{a11720}{}\section{Open\+Volume\+Mesh\+:\+:Tetrahedral\+Mesh\+Topology\+Kernel Class Reference}
\label{a11720}\index{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}}


A data structure based on Polyhedral\+Mesh with specializations for tetrahedra.  




{\ttfamily \#include $<$Type-\/\+Open\+Volume\+Mesh/libs/\+Open\+Volume\+Mesh/src/\+Open\+Volume\+Mesh/\+Mesh/\+Tetrahedral\+Mesh\+Topology\+Kernel.\+hh$>$}

Inheritance diagram for Open\+Volume\+Mesh\+:\+:Tetrahedral\+Mesh\+Topology\+Kernel\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{a11720}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11720_aa3891f08b6be685ffbeab906b9b3a608}\label{a11720_aa3891f08b6be685ffbeab906b9b3a608}} 
typedef class Tet\+Vertex\+Iter {\bfseries Tet\+Vertex\+Iter}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual \hyperlink{a11608}{Face\+Handle} \hyperlink{a11720_a192007449542133c70f3bfe4e18bd194}{add\+\_\+face} (const std\+::vector$<$ \hyperlink{a11608}{Half\+Edge\+Handle} $>$ \&\+\_\+halfedges, bool \+\_\+topology\+Check=false)
\begin{DoxyCompactList}\small\item\em Add face via incident edges. \end{DoxyCompactList}\item 
virtual \hyperlink{a11608}{Face\+Handle} \hyperlink{a11720_abe082c791405bc29e47282a6de3b7096}{add\+\_\+face} (const std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ \&\+\_\+vertices)
\begin{DoxyCompactList}\small\item\em Add face via incident vertices. \end{DoxyCompactList}\item 
virtual \hyperlink{a11608}{Cell\+Handle} \hyperlink{a11720_ab0aab7dd51d3f90795b84a04d441e144}{add\+\_\+cell} (const std\+::vector$<$ \hyperlink{a11608}{Half\+Face\+Handle} $>$ \&\+\_\+halffaces, bool \+\_\+topology\+Check=false)
\begin{DoxyCompactList}\small\item\em Add cell via incident halffaces. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a11720_a333505ac22d8d2b43e049979b664ec40}\label{a11720_a333505ac22d8d2b43e049979b664ec40}} 
\hyperlink{a11608}{Cell\+Handle} {\bfseries add\+\_\+cell} (const std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ \&\+\_\+vertices, bool \+\_\+topology\+Check=false)
\item 
\mbox{\Hypertarget{a11720_acdd5888f750d8de58bb6480472cda59b}\label{a11720_acdd5888f750d8de58bb6480472cda59b}} 
\hyperlink{a11608}{Cell\+Handle} {\bfseries add\+\_\+cell} (\hyperlink{a11608}{Vertex\+Handle} \+\_\+vh0, \hyperlink{a11608}{Vertex\+Handle} \+\_\+vh1, \hyperlink{a11608}{Vertex\+Handle} \+\_\+vh2, \hyperlink{a11608}{Vertex\+Handle} \+\_\+vh3, bool \+\_\+topology\+Check=false)
\item 
\mbox{\Hypertarget{a11720_a7bc62eece3d597d4e9e568d92d95465f}\label{a11720_a7bc62eece3d597d4e9e568d92d95465f}} 
\hyperlink{a11608}{Half\+Face\+Handle} {\bfseries add\+\_\+halfface} (const std\+::vector$<$ \hyperlink{a11608}{Half\+Edge\+Handle} $>$ \&\+\_\+halfedges, bool \+\_\+topology\+Check=false)
\item 
\mbox{\Hypertarget{a11720_a6497ecf80f3d7cd8878005772bfed7b4}\label{a11720_a6497ecf80f3d7cd8878005772bfed7b4}} 
\hyperlink{a11608}{Half\+Face\+Handle} {\bfseries add\+\_\+halfface} (\hyperlink{a11608}{Vertex\+Handle} \+\_\+vh0, \hyperlink{a11608}{Vertex\+Handle} \+\_\+vh1, \hyperlink{a11608}{Vertex\+Handle} \+\_\+vh2, bool \+\_\+topology\+Check=false)
\item 
\mbox{\Hypertarget{a11720_ad46db7207715af73809c87b976a4d39f}\label{a11720_ad46db7207715af73809c87b976a4d39f}} 
\hyperlink{a11608}{Half\+Edge\+Handle} {\bfseries add\+\_\+halfedge} (const \hyperlink{a11608}{Vertex\+Handle} \&\+\_\+from\+Vertex, const \hyperlink{a11608}{Vertex\+Handle} \&\+\_\+to\+Vertex)
\item 
\mbox{\Hypertarget{a11720_a28953fa4eee95f325d625983c7acec41}\label{a11720_a28953fa4eee95f325d625983c7acec41}} 
std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ {\bfseries get\+\_\+cell\+\_\+vertices} (\hyperlink{a11608}{Cell\+Handle} ch) const
\item 
\mbox{\Hypertarget{a11720_ac5cbbafc9ba44bc5127a40a35250f92e}\label{a11720_ac5cbbafc9ba44bc5127a40a35250f92e}} 
std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ {\bfseries get\+\_\+cell\+\_\+vertices} (\hyperlink{a11608}{Cell\+Handle} ch, \hyperlink{a11608}{Vertex\+Handle} vh) const
\item 
\mbox{\Hypertarget{a11720_a873a561c94d3eb7f290ff087216861ea}\label{a11720_a873a561c94d3eb7f290ff087216861ea}} 
std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ {\bfseries get\+\_\+cell\+\_\+vertices} (\hyperlink{a11608}{Half\+Face\+Handle} hfh) const
\item 
\mbox{\Hypertarget{a11720_a9e995088c68cef17f3151268e4050c76}\label{a11720_a9e995088c68cef17f3151268e4050c76}} 
std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ {\bfseries get\+\_\+cell\+\_\+vertices} (\hyperlink{a11608}{Half\+Face\+Handle} hfh, \hyperlink{a11608}{Half\+Edge\+Handle} heh) const
\item 
\mbox{\Hypertarget{a11720_add9722d54fbb643f1a7f8100a12b352c}\label{a11720_add9722d54fbb643f1a7f8100a12b352c}} 
std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ {\bfseries get\+\_\+halfface\+\_\+vertices} (\hyperlink{a11608}{Half\+Face\+Handle} hfh) const
\item 
\mbox{\Hypertarget{a11720_a27bc72ca17c6e2025e622b523920305e}\label{a11720_a27bc72ca17c6e2025e622b523920305e}} 
std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ {\bfseries get\+\_\+halfface\+\_\+vertices} (\hyperlink{a11608}{Half\+Face\+Handle} hfh, \hyperlink{a11608}{Vertex\+Handle} vh) const
\item 
\mbox{\Hypertarget{a11720_a9a119bccae03d047c5e66fb252ca4fbe}\label{a11720_a9a119bccae03d047c5e66fb252ca4fbe}} 
std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ {\bfseries get\+\_\+halfface\+\_\+vertices} (\hyperlink{a11608}{Half\+Face\+Handle} hfh, \hyperlink{a11608}{Half\+Edge\+Handle} heh) const
\item 
\mbox{\Hypertarget{a11720_aa2deb9f3232e051868ef61f389c400fc}\label{a11720_aa2deb9f3232e051868ef61f389c400fc}} 
\hyperlink{a11608}{Vertex\+Handle} {\bfseries collapse\+\_\+edge} (\hyperlink{a11608}{Half\+Edge\+Handle} \+\_\+heh)
\item 
\mbox{\Hypertarget{a11720_a717c074b9ee586e29c54a3f0b580458e}\label{a11720_a717c074b9ee586e29c54a3f0b580458e}} 
Tet\+Vertex\+Iter {\bfseries tv\+\_\+iter} (const \hyperlink{a11608}{Cell\+Handle} \&\+\_\+ref\+\_\+h, int \+\_\+max\+\_\+laps=1) const
\item 
\mbox{\Hypertarget{a11720_a001e8873f712d16e4b0bb7e503696215}\label{a11720_a001e8873f712d16e4b0bb7e503696215}} 
std\+::pair$<$ Tet\+Vertex\+Iter, Tet\+Vertex\+Iter $>$ {\bfseries tet\+\_\+vertices} (const \hyperlink{a11608}{Cell\+Handle} \&\+\_\+ref\+\_\+h, int \+\_\+max\+\_\+laps=1) const
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11720_aa4eb109f4a87137a2377c7b26a9112fa}\label{a11720_aa4eb109f4a87137a2377c7b26a9112fa}} 
void {\bfseries split\+\_\+edge} (\hyperlink{a11608}{Half\+Edge\+Handle} \+\_\+heh, \hyperlink{a11608}{Vertex\+Handle} \+\_\+vh)
\item 
\mbox{\Hypertarget{a11720_a2c000c4efcb46b26bc47db6c64194e10}\label{a11720_a2c000c4efcb46b26bc47db6c64194e10}} 
void {\bfseries split\+\_\+face} (\hyperlink{a11608}{Face\+Handle} \+\_\+fh, \hyperlink{a11608}{Vertex\+Handle} \+\_\+vh)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11720_ae84da3e7d42b81d0c4662063211de5b9}\label{a11720_ae84da3e7d42b81d0c4662063211de5b9}} 
{\footnotesize template$<$typename Prop\+Iterator , typename Handle $>$ }\\void {\bfseries swap\+Property\+Elements} (Prop\+Iterator begin, Prop\+Iterator end, Handle source, Handle destination)
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a11720_aa61180a7bce307cdfa247c7af52caa4b}\label{a11720_aa61180a7bce307cdfa247c7af52caa4b}} 
class {\bfseries Tet\+Vertex\+Iter}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
A data structure based on Polyhedral\+Mesh with specializations for tetrahedra. 

Definition at line 63 of file Tetrahedral\+Mesh\+Topology\+Kernel.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a11720_ab0aab7dd51d3f90795b84a04d441e144}\label{a11720_ab0aab7dd51d3f90795b84a04d441e144}} 
\index{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}!add\+\_\+cell@{add\+\_\+cell}}
\index{add\+\_\+cell@{add\+\_\+cell}!Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}}
\subsubsection{\texorpdfstring{add\+\_\+cell()}{add\_cell()}}
{\footnotesize\ttfamily \hyperlink{a11608}{Cell\+Handle} Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel\+::add\+\_\+cell (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \hyperlink{a11608}{Half\+Face\+Handle} $>$ \&}]{\+\_\+halffaces,  }\item[{bool}]{\+\_\+topology\+Check = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



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 from \hyperlink{a11652_a6eccac4ed7e00021b946a46aff011ff4}{Open\+Volume\+Mesh\+::\+Topology\+Kernel}.



Definition at line 98 of file Tetrahedral\+Mesh\+Topology\+Kernel.\+cc.

\mbox{\Hypertarget{a11720_a192007449542133c70f3bfe4e18bd194}\label{a11720_a192007449542133c70f3bfe4e18bd194}} 
\index{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}}
\subsubsection{\texorpdfstring{add\+\_\+face()}{add\_face()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \hyperlink{a11608}{Face\+Handle} Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel\+::add\+\_\+face (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \hyperlink{a11608}{Half\+Edge\+Handle} $>$ \&}]{\+\_\+halfedges,  }\item[{bool}]{\+\_\+topology\+Check = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



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 from \hyperlink{a11652_a0d39e76cff8a318046e640b3887a6845}{Open\+Volume\+Mesh\+::\+Topology\+Kernel}.



Definition at line 64 of file Tetrahedral\+Mesh\+Topology\+Kernel.\+cc.

\mbox{\Hypertarget{a11720_abe082c791405bc29e47282a6de3b7096}\label{a11720_abe082c791405bc29e47282a6de3b7096}} 
\index{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel@{Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel}}
\subsubsection{\texorpdfstring{add\+\_\+face()}{add\_face()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \hyperlink{a11608}{Face\+Handle} Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel\+::add\+\_\+face (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \hyperlink{a11608}{Vertex\+Handle} $>$ \&}]{\+\_\+vertices }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Add face via incident vertices. 

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

Reimplemented from \hyperlink{a11652_a12dfd3700d0fb4c0374865c0e55bbef4}{Open\+Volume\+Mesh\+::\+Topology\+Kernel}.



Definition at line 81 of file Tetrahedral\+Mesh\+Topology\+Kernel.\+cc.



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