\hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel}{}\section{Open\+Volume\+Mesh\+:\+:Tetrahedral\+Mesh\+Topology\+Kernel Class Reference}
\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel}\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]{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_aa3891f08b6be685ffbeab906b9b3a608}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_aa3891f08b6be685ffbeab906b9b3a608}} 
typedef class Tet\+Vertex\+Iter {\bfseries Tet\+Vertex\+Iter}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Face\+Handle} \hyperlink{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_ada98d19515aac33982227724c6b830ee}{add\+\_\+face} (const std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Edge\+Handle} $>$ \&\+\_\+halfedges, bool \+\_\+topology\+Check=false) override
\begin{DoxyCompactList}\small\item\em Add face via incident edges. \end{DoxyCompactList}\item 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Face\+Handle} \hyperlink{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a0542716cf1bab26ff1cb9234334b0c4b}{add\+\_\+face} (const std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ \&\+\_\+vertices) override
\begin{DoxyCompactList}\small\item\em Add face via incident vertices. \end{DoxyCompactList}\item 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Cell\+Handle} \hyperlink{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a0139d31c650f9b045935014418ca625b}{add\+\_\+cell} (const std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} $>$ \&\+\_\+halffaces, bool \+\_\+topology\+Check=false) override
\begin{DoxyCompactList}\small\item\em Add cell via incident halffaces. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a333505ac22d8d2b43e049979b664ec40}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a333505ac22d8d2b43e049979b664ec40}} 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Cell\+Handle} {\bfseries add\+\_\+cell} (const std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ \&\+\_\+vertices, bool \+\_\+topology\+Check=false)
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_acdd5888f750d8de58bb6480472cda59b}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_acdd5888f750d8de58bb6480472cda59b}} 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Cell\+Handle} {\bfseries add\+\_\+cell} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \+\_\+vh0, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \+\_\+vh1, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \+\_\+vh2, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \+\_\+vh3, bool \+\_\+topology\+Check=false)
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a7bc62eece3d597d4e9e568d92d95465f}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a7bc62eece3d597d4e9e568d92d95465f}} 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} {\bfseries add\+\_\+halfface} (const std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Edge\+Handle} $>$ \&\+\_\+halfedges, bool \+\_\+topology\+Check=false)
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a6497ecf80f3d7cd8878005772bfed7b4}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a6497ecf80f3d7cd8878005772bfed7b4}} 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} {\bfseries add\+\_\+halfface} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \+\_\+vh0, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \+\_\+vh1, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \+\_\+vh2, bool \+\_\+topology\+Check=false)
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_ad46db7207715af73809c87b976a4d39f}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_ad46db7207715af73809c87b976a4d39f}} 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Edge\+Handle} {\bfseries add\+\_\+halfedge} (const \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \&\+\_\+from\+Vertex, const \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \&\+\_\+to\+Vertex)
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a28953fa4eee95f325d625983c7acec41}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a28953fa4eee95f325d625983c7acec41}} 
std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ {\bfseries get\+\_\+cell\+\_\+vertices} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Cell\+Handle} ch) const
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_ac5cbbafc9ba44bc5127a40a35250f92e}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_ac5cbbafc9ba44bc5127a40a35250f92e}} 
std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ {\bfseries get\+\_\+cell\+\_\+vertices} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Cell\+Handle} ch, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} vh) const
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a873a561c94d3eb7f290ff087216861ea}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a873a561c94d3eb7f290ff087216861ea}} 
std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ {\bfseries get\+\_\+cell\+\_\+vertices} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} hfh) const
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a9e995088c68cef17f3151268e4050c76}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a9e995088c68cef17f3151268e4050c76}} 
std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ {\bfseries get\+\_\+cell\+\_\+vertices} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} hfh, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Edge\+Handle} heh) const
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_add9722d54fbb643f1a7f8100a12b352c}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_add9722d54fbb643f1a7f8100a12b352c}} 
std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ {\bfseries get\+\_\+halfface\+\_\+vertices} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} hfh) const
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a27bc72ca17c6e2025e622b523920305e}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a27bc72ca17c6e2025e622b523920305e}} 
std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ {\bfseries get\+\_\+halfface\+\_\+vertices} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} hfh, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} vh) const
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a9a119bccae03d047c5e66fb252ca4fbe}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a9a119bccae03d047c5e66fb252ca4fbe}} 
std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ {\bfseries get\+\_\+halfface\+\_\+vertices} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} hfh, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Edge\+Handle} heh) const
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_aa54c1195582effd92a7f4bdbe53be7bc}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_aa54c1195582effd92a7f4bdbe53be7bc}} 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} {\bfseries halfface\+\_\+opposite\+\_\+vertex} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} hfh) const
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_aa2deb9f3232e051868ef61f389c400fc}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_aa2deb9f3232e051868ef61f389c400fc}} 
\hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} {\bfseries collapse\+\_\+edge} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Edge\+Handle} \+\_\+heh)
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a717c074b9ee586e29c54a3f0b580458e}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a717c074b9ee586e29c54a3f0b580458e}} 
Tet\+Vertex\+Iter {\bfseries tv\+\_\+iter} (const \hyperlink{classOpenVolumeMesh_1_1HandleT}{Cell\+Handle} \&\+\_\+ref\+\_\+h, int \+\_\+max\+\_\+laps=1) const
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a001e8873f712d16e4b0bb7e503696215}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a001e8873f712d16e4b0bb7e503696215}} 
std\+::pair$<$ Tet\+Vertex\+Iter, Tet\+Vertex\+Iter $>$ {\bfseries tet\+\_\+vertices} (const \hyperlink{classOpenVolumeMesh_1_1HandleT}{Cell\+Handle} \&\+\_\+ref\+\_\+h, int \+\_\+max\+\_\+laps=1) const
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_aa4eb109f4a87137a2377c7b26a9112fa}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_aa4eb109f4a87137a2377c7b26a9112fa}} 
void {\bfseries split\+\_\+edge} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Edge\+Handle} \+\_\+heh, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \+\_\+vh)
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a2c000c4efcb46b26bc47db6c64194e10}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a2c000c4efcb46b26bc47db6c64194e10}} 
void {\bfseries split\+\_\+face} (\hyperlink{classOpenVolumeMesh_1_1HandleT}{Face\+Handle} \+\_\+fh, \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} \+\_\+vh)
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_ae84da3e7d42b81d0c4662063211de5b9}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_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{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_aa61180a7bce307cdfa247c7af52caa4b}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_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{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a0139d31c650f9b045935014418ca625b}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a0139d31c650f9b045935014418ca625b}} 
\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{classOpenVolumeMesh_1_1HandleT}{Cell\+Handle} Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel\+::add\+\_\+cell (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Face\+Handle} $>$ \&}]{\+\_\+halffaces,  }\item[{bool}]{\+\_\+topology\+Check = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\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{classOpenVolumeMesh_1_1TopologyKernel_a6eccac4ed7e00021b946a46aff011ff4}{Open\+Volume\+Mesh\+::\+Topology\+Kernel}.



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

\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_ada98d19515aac33982227724c6b830ee}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_ada98d19515aac33982227724c6b830ee}} 
\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{classOpenVolumeMesh_1_1HandleT}{Face\+Handle} Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel\+::add\+\_\+face (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Half\+Edge\+Handle} $>$ \&}]{\+\_\+halfedges,  }\item[{bool}]{\+\_\+topology\+Check = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\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{classOpenVolumeMesh_1_1TopologyKernel_a0d39e76cff8a318046e640b3887a6845}{Open\+Volume\+Mesh\+::\+Topology\+Kernel}.



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

\mbox{\Hypertarget{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a0542716cf1bab26ff1cb9234334b0c4b}\label{classOpenVolumeMesh_1_1TetrahedralMeshTopologyKernel_a0542716cf1bab26ff1cb9234334b0c4b}} 
\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{classOpenVolumeMesh_1_1HandleT}{Face\+Handle} Open\+Volume\+Mesh\+::\+Tetrahedral\+Mesh\+Topology\+Kernel\+::add\+\_\+face (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \hyperlink{classOpenVolumeMesh_1_1HandleT}{Vertex\+Handle} $>$ \&}]{\+\_\+vertices }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\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{classOpenVolumeMesh_1_1TopologyKernel_a12dfd3700d0fb4c0374865c0e55bbef4}{Open\+Volume\+Mesh\+::\+Topology\+Kernel}.



Definition at line 58 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}
