\hypertarget{classOpenMesh_1_1TriConnectivity}{}\section{Open\+Mesh\+:\+:Tri\+Connectivity Class Reference}
\label{classOpenMesh_1_1TriConnectivity}\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}


Connectivity Class for Triangle Meshes.  




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

Inheritance diagram for Open\+Mesh\+:\+:Tri\+Connectivity\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{classOpenMesh_1_1TriConnectivity}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classOpenMesh_1_1TriConnectivity_ac864bcbb89452120c74f3f3048857077}{assign\+\_\+connectivity} (const \hyperlink{classOpenMesh_1_1TriConnectivity}{Tri\+Connectivity} \&\+\_\+other)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a57cb0f450269aff3c1576dff34c68e92}\label{classOpenMesh_1_1TriConnectivity_a57cb0f450269aff3c1576dff34c68e92}} 
void {\bfseries assign\+\_\+connectivity} (const \hyperlink{classOpenMesh_1_1PolyConnectivity}{Poly\+Connectivity} \&\+\_\+other)
\item 
\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriConnectivity_a1aa3528bf17160f676e0fc5cca3b8af9}{opposite\+\_\+vh} (\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+heh) const
\item 
\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriConnectivity_a7049e38da17c99169388b764ad0822f7}{opposite\+\_\+he\+\_\+opposite\+\_\+vh} (\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+heh) const
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Addding items to a mesh}\par
\begin{DoxyCompactItemize}
\item 
\hyperlink{structOpenMesh_1_1SmartFaceHandle}{Smart\+Face\+Handle} \hyperlink{classOpenMesh_1_1TriConnectivity_a30a599b286739e930dfe24840e3f6a07}{add\+\_\+face} (const \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} $\ast$\+\_\+vhandles, size\+\_\+t \+\_\+vhs\+\_\+size)
\begin{DoxyCompactList}\small\item\em Add a face with arbitrary valence to the triangle mesh. \end{DoxyCompactList}\item 
\hyperlink{structOpenMesh_1_1SmartFaceHandle}{Smart\+Face\+Handle} \hyperlink{classOpenMesh_1_1TriConnectivity_a04d48edc3dc7009aadc33c6d5072fa2f}{add\+\_\+face} (const std\+::vector$<$ \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} $>$ \&\+\_\+vhandles)
\begin{DoxyCompactList}\small\item\em Add a face with arbitrary valence to the triangle mesh. \end{DoxyCompactList}\item 
\hyperlink{structOpenMesh_1_1SmartFaceHandle}{Smart\+Face\+Handle} \hyperlink{classOpenMesh_1_1TriConnectivity_ae10c686655f94c3d0259c4af322e39dc}{add\+\_\+face} (const std\+::vector$<$ \hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} $>$ \&\+\_\+vhandles)
\begin{DoxyCompactList}\small\item\em Add a face with arbitrary valence to the triangle mesh. \end{DoxyCompactList}\item 
\hyperlink{structOpenMesh_1_1SmartFaceHandle}{Smart\+Face\+Handle} \hyperlink{classOpenMesh_1_1TriConnectivity_acbb3270c9081cd2c0069f062814dfd83}{add\+\_\+face} (\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh0, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh1, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh2)
\begin{DoxyCompactList}\small\item\em Add a face to the mesh (triangle) \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Topology modifying operators}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{classOpenMesh_1_1TriConnectivity_afaf2ae45f5324b6fac111158169973a0}{is\+\_\+collapse\+\_\+ok} (\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+heh)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a142b267bf7eaa2e57b66a0035df43f10}\label{classOpenMesh_1_1TriConnectivity_a142b267bf7eaa2e57b66a0035df43f10}} 
\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \hyperlink{classOpenMesh_1_1TriConnectivity_a142b267bf7eaa2e57b66a0035df43f10}{vertex\+\_\+split} (\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} v0, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} v1, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} vl, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} vr)
\begin{DoxyCompactList}\small\item\em Vertex Split\+: inverse operation to \hyperlink{classOpenMesh_1_1PolyConnectivity_a5afce0f6be1f425f5e0d42441fee35df}{collapse()}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a816a0c164e064f393c73733b0b8d2d49}\label{classOpenMesh_1_1TriConnectivity_a816a0c164e064f393c73733b0b8d2d49}} 
bool \hyperlink{classOpenMesh_1_1TriConnectivity_a816a0c164e064f393c73733b0b8d2d49}{is\+\_\+flip\+\_\+ok} (\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh) const
\begin{DoxyCompactList}\small\item\em Check whether flipping \+\_\+eh is topologically correct. \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1TriConnectivity_a03b3c3be3c52a194789bd541d24f4c09}{flip} (\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh)
\item 
void \hyperlink{classOpenMesh_1_1TriConnectivity_a721461096a996b9d664bc4f7d4f243d3}{split} (\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh)
\begin{DoxyCompactList}\small\item\em Edge split (= 2-\/to-\/4 split) \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1TriConnectivity_a122f70d093c464d49bea6df7d1246ad0}{split\+\_\+edge} (\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh)
\begin{DoxyCompactList}\small\item\em Edge split (= 2-\/to-\/4 split) \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1TriConnectivity_ae3abf40e7b4f6ed78b409373849c5f64}{split\+\_\+copy} (\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh)
\begin{DoxyCompactList}\small\item\em Edge split (= 2-\/to-\/4 split) \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1TriConnectivity_a5d1a2d85b8c5527faa53e34bd247ce58}{split\+\_\+edge\+\_\+copy} (\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh)
\begin{DoxyCompactList}\small\item\em Edge split (= 2-\/to-\/4 split) \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1TriConnectivity_a9609450333c35e0d9a7450ccfb2aa5f5}{split} (\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle} \+\_\+fh, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh)
\begin{DoxyCompactList}\small\item\em Face split (= 1-\/to-\/3) split, calls corresponding \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} function). \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1TriConnectivity_a41afe5443acdc5bdcb7a997761510fdb}{split\+\_\+copy} (\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle} \+\_\+fh, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh)
\begin{DoxyCompactList}\small\item\em Face split (= 1-\/to-\/3) split, calls corresponding \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} function). \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a233cfac01b1c8f3f257a5471bdebba84}\label{classOpenMesh_1_1TriConnectivity_a233cfac01b1c8f3f257a5471bdebba84}} 
static bool {\bfseries is\+\_\+triangles} ()
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a75be754f14b0346fc60fca008390ca4e}\label{classOpenMesh_1_1TriConnectivity_a75be754f14b0346fc60fca008390ca4e}} 
\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \hyperlink{classOpenMesh_1_1TriConnectivity_a75be754f14b0346fc60fca008390ca4e}{insert\+\_\+loop} (\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+hh)
\begin{DoxyCompactList}\small\item\em Helper for vertex split. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a8bd98d3c836d505c14f10cf7b4860296}\label{classOpenMesh_1_1TriConnectivity_a8bd98d3c836d505c14f10cf7b4860296}} 
\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \hyperlink{classOpenMesh_1_1TriConnectivity_a8bd98d3c836d505c14f10cf7b4860296}{insert\+\_\+edge} (\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh, \hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+h0, \hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+h1)
\begin{DoxyCompactList}\small\item\em Helper for vertex split. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Connectivity Class for Triangle Meshes. 

Definition at line 53 of file Tri\+Connectivity.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a30a599b286739e930dfe24840e3f6a07}\label{classOpenMesh_1_1TriConnectivity_a30a599b286739e930dfe24840e3f6a07}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{add\+\_\+face()}{add\_face()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily \hyperlink{structOpenMesh_1_1SmartFaceHandle}{Smart\+Face\+Handle} Open\+Mesh\+::\+Tri\+Connectivity\+::add\+\_\+face (\begin{DoxyParamCaption}\item[{const \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} $\ast$}]{\+\_\+vhandles,  }\item[{size\+\_\+t}]{\+\_\+vhs\+\_\+size }\end{DoxyParamCaption})}



Add a face with arbitrary valence to the triangle mesh. 

Override Open\+Mesh\+::\+Mesh\+::\+Poly\+Mesh\+T\+::add\+\_\+face(). Faces that aren\textquotesingle{}t triangles will be triangulated and added. In this case an invalid face handle will be returned. face is triangle -\/$>$ ok

face is not a triangle -\/$>$ triangulate 

Definition at line 53 of file Tri\+Connectivity.\+cc.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a04d48edc3dc7009aadc33c6d5072fa2f}\label{classOpenMesh_1_1TriConnectivity_a04d48edc3dc7009aadc33c6d5072fa2f}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{add\+\_\+face()}{add\_face()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily \hyperlink{structOpenMesh_1_1SmartFaceHandle}{Smart\+Face\+Handle} Open\+Mesh\+::\+Tri\+Connectivity\+::add\+\_\+face (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} $>$ \&}]{\+\_\+vhandles }\end{DoxyParamCaption})}



Add a face with arbitrary valence to the triangle mesh. 

Override Open\+Mesh\+::\+Mesh\+::\+Poly\+Mesh\+T\+::add\+\_\+face(). Faces that aren\textquotesingle{}t triangles will be triangulated and added. In this case an invalid face handle will be returned. 

Definition at line 87 of file Tri\+Connectivity.\+cc.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_ae10c686655f94c3d0259c4af322e39dc}\label{classOpenMesh_1_1TriConnectivity_ae10c686655f94c3d0259c4af322e39dc}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{add\+\_\+face()}{add\_face()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily \hyperlink{structOpenMesh_1_1SmartFaceHandle}{Smart\+Face\+Handle} Open\+Mesh\+::\+Tri\+Connectivity\+::add\+\_\+face (\begin{DoxyParamCaption}\item[{const std\+::vector$<$ \hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} $>$ \&}]{\+\_\+vhandles }\end{DoxyParamCaption})}



Add a face with arbitrary valence to the triangle mesh. 

Override Open\+Mesh\+::\+Mesh\+::\+Poly\+Mesh\+T\+::add\+\_\+face(). Faces that aren\textquotesingle{}t triangles will be triangulated and added. In this case an invalid face handle will be returned. 

Definition at line 94 of file Tri\+Connectivity.\+cc.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_acbb3270c9081cd2c0069f062814dfd83}\label{classOpenMesh_1_1TriConnectivity_acbb3270c9081cd2c0069f062814dfd83}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{add\+\_\+face()}{add\_face()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily \hyperlink{structOpenMesh_1_1SmartFaceHandle}{Smart\+Face\+Handle} Open\+Mesh\+::\+Tri\+Connectivity\+::add\+\_\+face (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh0,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh1,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh2 }\end{DoxyParamCaption})}



Add a face to the mesh (triangle) 

This function adds a triangle to the mesh. The triangle is passed directly to the underlying \hyperlink{classOpenMesh_1_1PolyConnectivity}{Poly\+Connectivity} as we don\textquotesingle{}t explicitly need to triangulate something.


\begin{DoxyParams}{Parameters}
{\em \+\_\+vh0} & \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} 1 \\
\hline
{\em \+\_\+vh1} & \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} 2 \\
\hline
{\em \+\_\+vh2} & \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} 3 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle} of the added face (invalid, if the operation failed) 
\end{DoxyReturn}


Definition at line 103 of file Tri\+Connectivity.\+cc.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_ac864bcbb89452120c74f3f3048857077}\label{classOpenMesh_1_1TriConnectivity_ac864bcbb89452120c74f3f3048857077}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!assign\+\_\+connectivity@{assign\+\_\+connectivity}}
\index{assign\+\_\+connectivity@{assign\+\_\+connectivity}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{assign\+\_\+connectivity()}{assign\_connectivity()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Tri\+Connectivity\+::assign\+\_\+connectivity (\begin{DoxyParamCaption}\item[{const \hyperlink{classOpenMesh_1_1TriConnectivity}{Tri\+Connectivity} \&}]{\+\_\+other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\hyperlink{classOpenMesh_1_1TriConnectivity_ac864bcbb89452120c74f3f3048857077}{assign\+\_\+connectivity()} methods. See \hyperlink{classOpenMesh_1_1ArrayKernel_ab959910ec7df2c8edc7f47878e549066}{Array\+Kernel\+::assign\+\_\+connectivity()} for more details. When the source connectivity is not triangles, in addition \char`\"{}fan\char`\"{} connectivity triangulation is performed 

Definition at line 66 of file Tri\+Connectivity.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a03b3c3be3c52a194789bd541d24f4c09}\label{classOpenMesh_1_1TriConnectivity_a03b3c3be3c52a194789bd541d24f4c09}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!flip@{flip}}
\index{flip@{flip}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{flip()}{flip()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Tri\+Connectivity\+::flip (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh }\end{DoxyParamCaption})}

Flip edge \+\_\+eh. Check for topological correctness first using \hyperlink{classOpenMesh_1_1TriConnectivity_a816a0c164e064f393c73733b0b8d2d49}{is\+\_\+flip\+\_\+ok()}. 

Definition at line 343 of file Tri\+Connectivity.\+cc.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_afaf2ae45f5324b6fac111158169973a0}\label{classOpenMesh_1_1TriConnectivity_afaf2ae45f5324b6fac111158169973a0}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!is\+\_\+collapse\+\_\+ok@{is\+\_\+collapse\+\_\+ok}}
\index{is\+\_\+collapse\+\_\+ok@{is\+\_\+collapse\+\_\+ok}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{is\+\_\+collapse\+\_\+ok()}{is\_collapse\_ok()}}
{\footnotesize\ttfamily bool Open\+Mesh\+::\+Tri\+Connectivity\+::is\+\_\+collapse\+\_\+ok (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle}}]{\+\_\+heh }\end{DoxyParamCaption})}

Returns whether collapsing halfedge \+\_\+heh is ok or would lead to topological inconsistencies. \begin{DoxyAttention}{Attention}
This method need the \hyperlink{namespaceOpenMesh_1_1Attributes_ab78a93560926cd2f9958cb028f7ea96dad3e94e10c76894ebce6048b8bbb77a74}{Attributes\+::\+Status} attribute and changes the {\itshape tagged} bit. 
\end{DoxyAttention}


Definition at line 111 of file Tri\+Connectivity.\+cc.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a7049e38da17c99169388b764ad0822f7}\label{classOpenMesh_1_1TriConnectivity_a7049e38da17c99169388b764ad0822f7}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!opposite\+\_\+he\+\_\+opposite\+\_\+vh@{opposite\+\_\+he\+\_\+opposite\+\_\+vh}}
\index{opposite\+\_\+he\+\_\+opposite\+\_\+vh@{opposite\+\_\+he\+\_\+opposite\+\_\+vh}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{opposite\+\_\+he\+\_\+opposite\+\_\+vh()}{opposite\_he\_opposite\_vh()}}
{\footnotesize\ttfamily Open\+Mesh\+::\+Tri\+Connectivity\+::opposite\+\_\+he\+\_\+opposite\+\_\+vh (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle}}]{\+\_\+heh }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

Returns the opposite vertex to the opposite halfedge of \+\_\+heh in the face referenced by it returns Invalid\+Vertex\+Handle if the opposite halfedge is boundary 

Definition at line 136 of file Tri\+Connectivity.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a1aa3528bf17160f676e0fc5cca3b8af9}\label{classOpenMesh_1_1TriConnectivity_a1aa3528bf17160f676e0fc5cca3b8af9}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!opposite\+\_\+vh@{opposite\+\_\+vh}}
\index{opposite\+\_\+vh@{opposite\+\_\+vh}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{opposite\+\_\+vh()}{opposite\_vh()}}
{\footnotesize\ttfamily Open\+Mesh\+::\+Tri\+Connectivity\+::opposite\+\_\+vh (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle}}]{\+\_\+heh }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

Returns the opposite vertex to the halfedge \+\_\+heh in the face referenced by \+\_\+heh returns Invalid\+Vertex\+Handle if the \+\_\+heh is boundary 

Definition at line 127 of file Tri\+Connectivity.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a721461096a996b9d664bc4f7d4f243d3}\label{classOpenMesh_1_1TriConnectivity_a721461096a996b9d664bc4f7d4f243d3}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!split@{split}}
\index{split@{split}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{split()}{split()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Tri\+Connectivity\+::split (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption})}



Edge split (= 2-\/to-\/4 split) 

The function will introduce two new faces ( non-\/boundary case) or one additional face (if edge is boundary)

\begin{DoxyNote}{Note}
The properties of the new edges, halfedges, and faces will be undefined!
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+eh} & Edge handle that should be split \\
\hline
{\em \+\_\+vh} & Vertex handle that will be inserted at the edge \\
\hline
\end{DoxyParams}


Definition at line 395 of file Tri\+Connectivity.\+cc.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a9609450333c35e0d9a7450ccfb2aa5f5}\label{classOpenMesh_1_1TriConnectivity_a9609450333c35e0d9a7450ccfb2aa5f5}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!split@{split}}
\index{split@{split}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{split()}{split()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Tri\+Connectivity\+::split (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle}}]{\+\_\+fh,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Face split (= 1-\/to-\/3) split, calls corresponding \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} function). 


\begin{DoxyParams}{Parameters}
{\em \+\_\+fh} & Face handle that should be split \\
\hline
{\em \+\_\+vh} & Vertex handle that will be inserted at the face \\
\hline
\end{DoxyParams}


Definition at line 229 of file Tri\+Connectivity.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_ae3abf40e7b4f6ed78b409373849c5f64}\label{classOpenMesh_1_1TriConnectivity_ae3abf40e7b4f6ed78b409373849c5f64}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!split\+\_\+copy@{split\+\_\+copy}}
\index{split\+\_\+copy@{split\+\_\+copy}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{split\+\_\+copy()}{split\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Tri\+Connectivity\+::split\+\_\+copy (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption})}



Edge split (= 2-\/to-\/4 split) 

The function will introduce two new faces ( non-\/boundary case) or one additional face (if edge is boundary)

\begin{DoxyNote}{Note}
The properties of the new edges and faces will be adjusted to the properties of the original edge and face 

The properties of the new halfedges will be undefined
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+eh} & Edge handle that should be split \\
\hline
{\em \+\_\+vh} & Vertex handle that will be inserted at the edge \\
\hline
\end{DoxyParams}


Definition at line 492 of file Tri\+Connectivity.\+cc.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a41afe5443acdc5bdcb7a997761510fdb}\label{classOpenMesh_1_1TriConnectivity_a41afe5443acdc5bdcb7a997761510fdb}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!split\+\_\+copy@{split\+\_\+copy}}
\index{split\+\_\+copy@{split\+\_\+copy}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{split\+\_\+copy()}{split\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Tri\+Connectivity\+::split\+\_\+copy (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle}}]{\+\_\+fh,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Face split (= 1-\/to-\/3) split, calls corresponding \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} function). 


\begin{DoxyParams}{Parameters}
{\em \+\_\+fh} & Face handle that should be split \\
\hline
{\em \+\_\+vh} & Vertex handle that will be inserted at the face \\
\hline
\end{DoxyParams}


Definition at line 237 of file Tri\+Connectivity.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a122f70d093c464d49bea6df7d1246ad0}\label{classOpenMesh_1_1TriConnectivity_a122f70d093c464d49bea6df7d1246ad0}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!split\+\_\+edge@{split\+\_\+edge}}
\index{split\+\_\+edge@{split\+\_\+edge}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{split\+\_\+edge()}{split\_edge()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Tri\+Connectivity\+::split\+\_\+edge (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Edge split (= 2-\/to-\/4 split) 

The function will introduce two new faces ( non-\/boundary case) or one additional face (if edge is boundary)

\begin{DoxyNote}{Note}
The properties of the new edges, halfedges, and faces will be undefined!

This is an override to prevent a direct call to \hyperlink{classOpenMesh_1_1PolyConnectivity}{Poly\+Connectivity} split\+\_\+edge, which would introduce a singular vertex with valence 2 which is not allowed on Tri\+Meshes
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+eh} & Edge handle that should be split \\
\hline
{\em \+\_\+vh} & Vertex handle that will be inserted at the edge \\
\hline
\end{DoxyParams}


Definition at line 190 of file Tri\+Connectivity.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriConnectivity_a5d1a2d85b8c5527faa53e34bd247ce58}\label{classOpenMesh_1_1TriConnectivity_a5d1a2d85b8c5527faa53e34bd247ce58}} 
\index{Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}!split\+\_\+edge\+\_\+copy@{split\+\_\+edge\+\_\+copy}}
\index{split\+\_\+edge\+\_\+copy@{split\+\_\+edge\+\_\+copy}!Open\+Mesh\+::\+Tri\+Connectivity@{Open\+Mesh\+::\+Tri\+Connectivity}}
\subsubsection{\texorpdfstring{split\+\_\+edge\+\_\+copy()}{split\_edge\_copy()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Tri\+Connectivity\+::split\+\_\+edge\+\_\+copy (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Edge split (= 2-\/to-\/4 split) 

The function will introduce two new faces ( non-\/boundary case) or one additional face (if edge is boundary)

\begin{DoxyNote}{Note}
The properties of the new edges and faces will be adjusted to the properties of the original edge and face 

The properties of the new halfedges will be undefined

This is an override to prevent a direct call to \hyperlink{classOpenMesh_1_1PolyConnectivity}{Poly\+Connectivity} split\+\_\+edge\+\_\+copy, which would introduce a singular vertex with valence 2 which is not allowed on Tri\+Meshes
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em \+\_\+eh} & Edge handle that should be split \\
\hline
{\em \+\_\+vh} & Vertex handle that will be inserted at the edge \\
\hline
\end{DoxyParams}


Definition at line 222 of file Tri\+Connectivity.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Mesh/Tri\+Connectivity.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/\+Doc/\+Examples/nav\+\_\+code4.\+cc\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Mesh/Tri\+Connectivity.\+cc\end{DoxyCompactItemize}
