\hypertarget{classOpenMesh_1_1TriMeshT}{}\section{Open\+Mesh\+:\+:Tri\+MeshT$<$ Kernel $>$ Class Template Reference}
\label{classOpenMesh_1_1TriMeshT}\index{Open\+Mesh\+::\+Tri\+Mesh\+T$<$ Kernel $>$@{Open\+Mesh\+::\+Tri\+Mesh\+T$<$ Kernel $>$}}


{\ttfamily \#include $<$Open\+Mesh/\+Mesh/\+Tri\+Mesh\+T.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:Tri\+MeshT$<$ Kernel $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.485411cm]{classOpenMesh_1_1TriMeshT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a9c100c0d3cd57f15cde3983d40479dfc}\label{classOpenMesh_1_1TriMeshT_a9c100c0d3cd57f15cde3983d40479dfc}} 
typedef \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT}$<$ Kernel $>$ {\bfseries This}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_af88176f1c8ee011e6810c2fee45b9867}\label{classOpenMesh_1_1TriMeshT_af88176f1c8ee011e6810c2fee45b9867}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT}$<$ Kernel $>$ {\bfseries Poly\+Mesh}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ae5a18e7e6ecd7922b819fdba481aece9}\label{classOpenMesh_1_1TriMeshT_ae5a18e7e6ecd7922b819fdba481aece9}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a15372f27edf521d8e9028e2abccae342}{Poly\+Mesh\+::\+Scalar} {\bfseries Scalar}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a14a6d5d560a5ad227227293ea72506d8}\label{classOpenMesh_1_1TriMeshT_a14a6d5d560a5ad227227293ea72506d8}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Poly\+Mesh\+::\+Point} {\bfseries Point}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a3a1d5b56d622db8a228d52f3b6d4f988}\label{classOpenMesh_1_1TriMeshT_a3a1d5b56d622db8a228d52f3b6d4f988}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a3570fd132d1ac589b380485cf59c9e0b}{Poly\+Mesh\+::\+Normal} {\bfseries Normal}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ac83512505fbeec4bc2ce9e27f6524ead}\label{classOpenMesh_1_1TriMeshT_ac83512505fbeec4bc2ce9e27f6524ead}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_af0d8129bf1a819c468c6edcb13b5203b}{Poly\+Mesh\+::\+Color} {\bfseries Color}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ab2af5da0570446c0994a22b0c59d8c46}\label{classOpenMesh_1_1TriMeshT_ab2af5da0570446c0994a22b0c59d8c46}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_af6526fbc3e7f3a1e98a5543b9563b021}{Poly\+Mesh\+::\+Tex\+Coord1D} {\bfseries Tex\+Coord1D}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a48317ec39a58609066b3aae8a498ba9d}\label{classOpenMesh_1_1TriMeshT_a48317ec39a58609066b3aae8a498ba9d}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a4ae59536e97b43444c4f1622c645ebaf}{Poly\+Mesh\+::\+Tex\+Coord2D} {\bfseries Tex\+Coord2D}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a706ffcd34ab624e621bf52db0740aaff}\label{classOpenMesh_1_1TriMeshT_a706ffcd34ab624e621bf52db0740aaff}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a5ec24476d2513efe71ddd1255a2ca444}{Poly\+Mesh\+::\+Tex\+Coord3D} {\bfseries Tex\+Coord3D}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a5424dcc6bea33cfbf12d7e540e5559dc}\label{classOpenMesh_1_1TriMeshT_a5424dcc6bea33cfbf12d7e540e5559dc}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a03e6fd1a2fc91d4144374fd28dfbecee}{Poly\+Mesh\+::\+Vertex} {\bfseries Vertex}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ad373f5831f42565decb4676ebe391260}\label{classOpenMesh_1_1TriMeshT_ad373f5831f42565decb4676ebe391260}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a249b0c195a81eeab341f7f73089d157e}{Poly\+Mesh\+::\+Halfedge} {\bfseries Halfedge}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a77a46486d2bc61b581f3109b54b20547}\label{classOpenMesh_1_1TriMeshT_a77a46486d2bc61b581f3109b54b20547}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_ab2ccdc42b7b25cf35915d3639fc461b2}{Poly\+Mesh\+::\+Edge} {\bfseries Edge}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a9c11e44b195699ba5a04300dc144e1a1}\label{classOpenMesh_1_1TriMeshT_a9c11e44b195699ba5a04300dc144e1a1}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a71e1e8eaabeb24eca04237931b4bea26}{Poly\+Mesh\+::\+Face} {\bfseries Face}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a1c3aaa72e7b91c783bb2eae3a1f2ea94}\label{classOpenMesh_1_1TriMeshT_a1c3aaa72e7b91c783bb2eae3a1f2ea94}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Poly\+Mesh\+::\+Vertex\+Handle} {\bfseries Vertex\+Handle}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ae6d1bec87e4d2f873a62cc973ef59334}\label{classOpenMesh_1_1TriMeshT_ae6d1bec87e4d2f873a62cc973ef59334}} 
typedef Poly\+Mesh\+::\+Halfedge\+Handle {\bfseries Halfedge\+Handle}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ad4ce9ca98ffbdd4c3ceb4b2dd4994d78}\label{classOpenMesh_1_1TriMeshT_ad4ce9ca98ffbdd4c3ceb4b2dd4994d78}} 
typedef Poly\+Mesh\+::\+Edge\+Handle {\bfseries Edge\+Handle}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a40363bb1ef029386804cace3a977cba5}\label{classOpenMesh_1_1TriMeshT_a40363bb1ef029386804cace3a977cba5}} 
typedef Poly\+Mesh\+::\+Face\+Handle {\bfseries Face\+Handle}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_af68a43c302ddf7cd03afd3f15b1e418f}\label{classOpenMesh_1_1TriMeshT_af68a43c302ddf7cd03afd3f15b1e418f}} 
typedef Poly\+Mesh\+::\+Vertex\+Iter {\bfseries Vertex\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_af58eee90c98af8a65555aa5a06c3c58e}\label{classOpenMesh_1_1TriMeshT_af58eee90c98af8a65555aa5a06c3c58e}} 
typedef Poly\+Mesh\+::\+Const\+Vertex\+Iter {\bfseries Const\+Vertex\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ad1db69a2f5a77398242bcdc1d599ac0f}\label{classOpenMesh_1_1TriMeshT_ad1db69a2f5a77398242bcdc1d599ac0f}} 
typedef Poly\+Mesh\+::\+Edge\+Iter {\bfseries Edge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ac0449a37c41c890554836881796f2e27}\label{classOpenMesh_1_1TriMeshT_ac0449a37c41c890554836881796f2e27}} 
typedef Poly\+Mesh\+::\+Const\+Edge\+Iter {\bfseries Const\+Edge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ad85df069c548bf28cb2b8aee87c75945}\label{classOpenMesh_1_1TriMeshT_ad85df069c548bf28cb2b8aee87c75945}} 
typedef Poly\+Mesh\+::\+Face\+Iter {\bfseries Face\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a1f3aa52f1f630f16a77dd9c34e4afe05}\label{classOpenMesh_1_1TriMeshT_a1f3aa52f1f630f16a77dd9c34e4afe05}} 
typedef Poly\+Mesh\+::\+Const\+Face\+Iter {\bfseries Const\+Face\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a7ea62f6576107df5ac1c5a9af670cd07}\label{classOpenMesh_1_1TriMeshT_a7ea62f6576107df5ac1c5a9af670cd07}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_adc7d422e2ce13141e8291f7d29f7ecef}{Poly\+Mesh\+::\+Vertex\+Vertex\+Iter} {\bfseries Vertex\+Vertex\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ad84e76b927f8f6da62b35bb0063877fc}\label{classOpenMesh_1_1TriMeshT_ad84e76b927f8f6da62b35bb0063877fc}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a6549eda743520c8a7aa3dfe6a37b2468}{Poly\+Mesh\+::\+Vertex\+O\+Halfedge\+Iter} {\bfseries Vertex\+O\+Halfedge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a7ddf8f2f64228231e89283b357a7dea8}\label{classOpenMesh_1_1TriMeshT_a7ddf8f2f64228231e89283b357a7dea8}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a437621f3901a93d0ebf8cdceac8e2939}{Poly\+Mesh\+::\+Vertex\+I\+Halfedge\+Iter} {\bfseries Vertex\+I\+Halfedge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a48f959a6cebf70802b333858c3526ab5}\label{classOpenMesh_1_1TriMeshT_a48f959a6cebf70802b333858c3526ab5}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a68dd0d2773f837cbfb525d7208dedde0}{Poly\+Mesh\+::\+Vertex\+Edge\+Iter} {\bfseries Vertex\+Edge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a33cad613da1433a52da13a2f1f5d1ae1}\label{classOpenMesh_1_1TriMeshT_a33cad613da1433a52da13a2f1f5d1ae1}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a1ebe8b94ca30db3af44c809ab3ee7247}{Poly\+Mesh\+::\+Vertex\+Face\+Iter} {\bfseries Vertex\+Face\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a4e249ad7d47c0fcb9a284168a36114d0}\label{classOpenMesh_1_1TriMeshT_a4e249ad7d47c0fcb9a284168a36114d0}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a3c65ec045ac0126b3ea7264cee26aa1b}{Poly\+Mesh\+::\+Face\+Vertex\+Iter} {\bfseries Face\+Vertex\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_af7bb54254319a2ddeca075f702fdb029}\label{classOpenMesh_1_1TriMeshT_af7bb54254319a2ddeca075f702fdb029}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_aeca99c6cd952038e80b37c848035af73}{Poly\+Mesh\+::\+Face\+Halfedge\+Iter} {\bfseries Face\+Halfedge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a8a0d0ca83b1260bc77591bb9d5b27842}\label{classOpenMesh_1_1TriMeshT_a8a0d0ca83b1260bc77591bb9d5b27842}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a04a30000943150f98db373a3317760af}{Poly\+Mesh\+::\+Face\+Edge\+Iter} {\bfseries Face\+Edge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a4df73bdf778afcabffa4d1ef7c4b9efc}\label{classOpenMesh_1_1TriMeshT_a4df73bdf778afcabffa4d1ef7c4b9efc}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a98618ca3fd3eec347bb5b02410a5e1e6}{Poly\+Mesh\+::\+Face\+Face\+Iter} {\bfseries Face\+Face\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ad3546ddb617f0bdadab9446d587d7b46}\label{classOpenMesh_1_1TriMeshT_ad3546ddb617f0bdadab9446d587d7b46}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a17a73f876343905c8b37b947e9152ac8}{Poly\+Mesh\+::\+Const\+Vertex\+Vertex\+Iter} {\bfseries Const\+Vertex\+Vertex\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a243fa328c92868581def7a543ab0aeb6}\label{classOpenMesh_1_1TriMeshT_a243fa328c92868581def7a543ab0aeb6}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_acf4b52db4b0198a91a02c06003623bfb}{Poly\+Mesh\+::\+Const\+Vertex\+O\+Halfedge\+Iter} {\bfseries Const\+Vertex\+O\+Halfedge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a0f68492bab9b1523cd8c2e5999dd2b3a}\label{classOpenMesh_1_1TriMeshT_a0f68492bab9b1523cd8c2e5999dd2b3a}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a7221db878118b37611454a13f1754a08}{Poly\+Mesh\+::\+Const\+Vertex\+I\+Halfedge\+Iter} {\bfseries Const\+Vertex\+I\+Halfedge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a6d70887d930f3010e15a3accb50fcd95}\label{classOpenMesh_1_1TriMeshT_a6d70887d930f3010e15a3accb50fcd95}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a9ccd0ce4fff127b13eb80fafefda0d0a}{Poly\+Mesh\+::\+Const\+Vertex\+Edge\+Iter} {\bfseries Const\+Vertex\+Edge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a96e8c8580ea0c951a6998dc52b3f5f51}\label{classOpenMesh_1_1TriMeshT_a96e8c8580ea0c951a6998dc52b3f5f51}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a61167f0a130e599b909cc8629a6dca2a}{Poly\+Mesh\+::\+Const\+Vertex\+Face\+Iter} {\bfseries Const\+Vertex\+Face\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a58190c14ce7f49afb8065f611bf7963f}\label{classOpenMesh_1_1TriMeshT_a58190c14ce7f49afb8065f611bf7963f}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a23b20f8208bae0aa1b344cac48c1f635}{Poly\+Mesh\+::\+Const\+Face\+Vertex\+Iter} {\bfseries Const\+Face\+Vertex\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a0820fc6833fe65fc4391e57961132ca2}\label{classOpenMesh_1_1TriMeshT_a0820fc6833fe65fc4391e57961132ca2}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a1b0729c26d7cf8f123c344a3b81d353c}{Poly\+Mesh\+::\+Const\+Face\+Halfedge\+Iter} {\bfseries Const\+Face\+Halfedge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_adf806d19316e7b8873bee8998e6020ea}\label{classOpenMesh_1_1TriMeshT_adf806d19316e7b8873bee8998e6020ea}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a5e15960d27e6d40646260109f5910b5b}{Poly\+Mesh\+::\+Const\+Face\+Edge\+Iter} {\bfseries Const\+Face\+Edge\+Iter}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a861858082ceb9782ccd5669c5b18da62}\label{classOpenMesh_1_1TriMeshT_a861858082ceb9782ccd5669c5b18da62}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_af081cbe692a0563c1ce08735f4b3491e}{Poly\+Mesh\+::\+Const\+Face\+Face\+Iter} {\bfseries Const\+Face\+Face\+Iter}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a13a27eb1994c2e288f404f5305834c3e}\label{classOpenMesh_1_1TriMeshT_a13a27eb1994c2e288f404f5305834c3e}} 
\hyperlink{classOpenMesh_1_1TriMeshT_a13a27eb1994c2e288f404f5305834c3e}{Tri\+MeshT} ()
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a3a34d742281898db20105e23cb1819ee}\label{classOpenMesh_1_1TriMeshT_a3a34d742281898db20105e23cb1819ee}} 
{\bfseries Tri\+MeshT} (\hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+Mesh} rhs)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a9e84b7ff5a5dabd8136a1bbb72a54399}\label{classOpenMesh_1_1TriMeshT_a9e84b7ff5a5dabd8136a1bbb72a54399}} 
virtual \hyperlink{classOpenMesh_1_1TriMeshT_a9e84b7ff5a5dabd8136a1bbb72a54399}{$\sim$\+Tri\+MeshT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
Halfedge\+Handle \hyperlink{classOpenMesh_1_1TriMeshT_a4868b772cb7a9d7bb8d94854dfb82868}{vertex\+\_\+split} (\hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point} \+\_\+v0\+\_\+point, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle} \+\_\+v1, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle} \+\_\+vl, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle} \+\_\+vr)
\begin{DoxyCompactList}\small\item\em Vertex Split\+: inverse operation to collapse(). \end{DoxyCompactList}\item 
Halfedge\+Handle \hyperlink{classOpenMesh_1_1TriMeshT_ac58e0af86ecd0bbc5e821ecd8c8beaff}{vertex\+\_\+split} (\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle} \+\_\+v0, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle} \+\_\+v1, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle} \+\_\+vl, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle} \+\_\+vr)
\begin{DoxyCompactList}\small\item\em Vertex Split\+: inverse operation to collapse(). \end{DoxyCompactList}\item 
\hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriMeshT_a46de9085ad6cebce97204d3263c2fc02}{split} (Edge\+Handle \+\_\+eh, const \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point} \&\+\_\+p)
\begin{DoxyCompactList}\small\item\em Edge split (= 2-\/to-\/4 split) \end{DoxyCompactList}\item 
\hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriMeshT_af27eab7f97150e60d70e43a96ba1e6a4}{split\+\_\+copy} (Edge\+Handle \+\_\+eh, const \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point} \&\+\_\+p)
\begin{DoxyCompactList}\small\item\em Edge split (= 2-\/to-\/4 split) \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1TriMeshT_a00a743cc15f3ff35e41c98090e0f91c8}{split} (Edge\+Handle \+\_\+eh, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle} \+\_\+vh)
\begin{DoxyCompactList}\small\item\em Edge split (= 2-\/to-\/4 split) \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1TriMeshT_ae1dcb76ca7b18678552bb0b65dff3a2c}{split\+\_\+copy} (Edge\+Handle \+\_\+eh, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle} \+\_\+vh)
\begin{DoxyCompactList}\small\item\em Edge split (= 2-\/to-\/4 split) \end{DoxyCompactList}\item 
\hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriMeshT_a6eb3942a6c87da48e0691d669e764edf}{split} (Face\+Handle \+\_\+fh, const \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point} \&\+\_\+p)
\begin{DoxyCompactList}\small\item\em Face split (= 1-\/to-\/3 split, calls corresponding \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} function). \end{DoxyCompactList}\item 
\hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriMeshT_ab43c61825216c530da6959a1a027a9e1}{split\+\_\+copy} (Face\+Handle \+\_\+fh, const \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point} \&\+\_\+p)
\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_1TriMeshT_a08fd303acc36c2fc4e6bbb1e96b49dd7}{split} (Face\+Handle \+\_\+fh)
\begin{DoxyCompactList}\small\item\em Face split (= 1-\/to-\/4) split, splits edges at midpoints and adds 4 new faces in the interior). \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1TriMeshT_a1d3163398fc453736b59e8a3dacf7e45}{split} (Face\+Handle \+\_\+fh, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{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_1TriMeshT_aa2b78682dc013e4c8480a3cab28bb766}{split\+\_\+copy} (Face\+Handle \+\_\+fh, \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{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 
\hyperlink{classOpenMesh_1_1PolyMeshT_a15372f27edf521d8e9028e2abccae342}{Scalar} \hyperlink{classOpenMesh_1_1TriMeshT_a68b11fc780cd30e73380843bc6769ed7}{calc\+\_\+face\+\_\+area} (Face\+Handle \+\_\+fh) const
\begin{DoxyCompactList}\small\item\em Calculates the area of a face. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Normal vector computation}\par
\begin{DoxyCompactItemize}
\item 
\hyperlink{classOpenMesh_1_1PolyMeshT_a3570fd132d1ac589b380485cf59c9e0b}{Normal} \hyperlink{classOpenMesh_1_1TriMeshT_a34d9ca17136124593dcc494cfaccdfe5}{calc\+\_\+face\+\_\+normal} (Face\+Handle \+\_\+fh) const
\end{DoxyCompactItemize}
\end{Indent}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a7adee11e064fad57e5eab6dbb8065295}\label{classOpenMesh_1_1TriMeshT_a7adee11e064fad57e5eab6dbb8065295}} 
enum \{ {\bfseries Is\+Poly\+Mesh} = 0
 \}\begin{DoxyCompactList}\small\item\em Determine whether this is a \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT} (This function does not check the per face vertex count! It only checks if the datatype is \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT}) \end{DoxyCompactList}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ae9d804648d84f4dbe48967443655801f}\label{classOpenMesh_1_1TriMeshT_ae9d804648d84f4dbe48967443655801f}} 
enum \{ {\bfseries Is\+Tri\+Mesh} = 1
 \}\begin{DoxyCompactList}\small\item\em Determine whether this is a \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT} (This function does not check the per face vertex count! It only checks if the datatype is \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT}) \end{DoxyCompactList}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_abedd75b99c3aac3ba5765aa5ef3e4a44}\label{classOpenMesh_1_1TriMeshT_abedd75b99c3aac3ba5765aa5ef3e4a44}} 
using \hyperlink{classOpenMesh_1_1TriMeshT_abedd75b99c3aac3ba5765aa5ef3e4a44}{Connectivity\+Tag} = \hyperlink{structOpenMesh_1_1TriConnectivityTag}{Tri\+Connectivity\+Tag}
\begin{DoxyCompactList}\small\item\em Determine whether this is a \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT} (This function does not check the per face vertex count! It only checks if the datatype is \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT}) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a5cc64ed78ada2d6a6726a1f22e757e81}\label{classOpenMesh_1_1TriMeshT_a5cc64ed78ada2d6a6726a1f22e757e81}} 
static constexpr bool \hyperlink{classOpenMesh_1_1TriMeshT_a5cc64ed78ada2d6a6726a1f22e757e81}{is\+\_\+polymesh} ()
\begin{DoxyCompactList}\small\item\em Determine whether this is a \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT} (This function does not check the per face vertex count! It only checks if the datatype is \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT}) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a3cf1765f81688edc7f12619538da9ffc}\label{classOpenMesh_1_1TriMeshT_a3cf1765f81688edc7f12619538da9ffc}} 
static constexpr bool \hyperlink{classOpenMesh_1_1TriMeshT_a3cf1765f81688edc7f12619538da9ffc}{is\+\_\+trimesh} ()
\begin{DoxyCompactList}\small\item\em Determine whether this is a \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT} (This function does not check the per face vertex count! It only checks if the datatype is \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} or \hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT}) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$class Kernel$>$\newline
class Open\+Mesh\+::\+Tri\+Mesh\+T$<$ Kernel $>$}

Base type for a triangle mesh.

Base type for a triangle mesh, parameterized by a mesh kernel. The mesh inherits all methods from the kernel class and the more general polygonal mesh \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT}. Therefore it provides the same types for items, handles, iterators and so on.


\begin{DoxyParams}{Parameters}
{\em Kernel} & template argument for the mesh kernel \\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
You should use the predefined mesh-\/kernel combinations in \hyperlink{group__mesh__types__group}{Predefined Mesh Types} 
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\hyperlink{mesh_type}{Specifying your My\+Mesh} 

\hyperlink{classOpenMesh_1_1PolyMeshT}{Open\+Mesh\+::\+Poly\+MeshT} 
\end{DoxySeeAlso}


Definition at line 91 of file Tri\+Mesh\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a68b11fc780cd30e73380843bc6769ed7}\label{classOpenMesh_1_1TriMeshT_a68b11fc780cd30e73380843bc6769ed7}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!calc\+\_\+face\+\_\+area@{calc\+\_\+face\+\_\+area}}
\index{calc\+\_\+face\+\_\+area@{calc\+\_\+face\+\_\+area}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{calc\+\_\+face\+\_\+area()}{calc\_face\_area()}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
\hyperlink{classOpenMesh_1_1PolyMeshT_a15372f27edf521d8e9028e2abccae342}{Scalar} \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::calc\+\_\+face\+\_\+area (\begin{DoxyParamCaption}\item[{Face\+Handle}]{\+\_\+fh }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Calculates the area of a face. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+fh} & Handle of the face to calculate the area of \\
\hline
\end{DoxyParams}


Definition at line 419 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a34d9ca17136124593dcc494cfaccdfe5}\label{classOpenMesh_1_1TriMeshT_a34d9ca17136124593dcc494cfaccdfe5}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!calc\+\_\+face\+\_\+normal@{calc\+\_\+face\+\_\+normal}}
\index{calc\+\_\+face\+\_\+normal@{calc\+\_\+face\+\_\+normal}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{calc\+\_\+face\+\_\+normal()}{calc\_face\_normal()}}
{\footnotesize\ttfamily template$<$class Kernel $>$ \\
\hyperlink{classOpenMesh_1_1TriMeshT}{Tri\+MeshT}$<$ Kernel $>$\+::\hyperlink{classOpenMesh_1_1PolyMeshT_a3570fd132d1ac589b380485cf59c9e0b}{Normal} \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::calc\+\_\+face\+\_\+normal (\begin{DoxyParamCaption}\item[{Face\+Handle}]{\+\_\+fh }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [virtual]}}

Calculate normal vector for face \+\_\+fh (specialized for Tri\+Mesh). 

Reimplemented from \hyperlink{classOpenMesh_1_1PolyMeshT_a76730c9a65bfd6cf23972baa191a40cd}{Open\+Mesh\+::\+Poly\+Mesh\+T$<$ Kernel $>$}.



Definition at line 74 of file Tri\+Mesh\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a46de9085ad6cebce97204d3263c2fc02}\label{classOpenMesh_1_1TriMeshT_a46de9085ad6cebce97204d3263c2fc02}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!split@{split}}
\index{split@{split}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{split()}{split()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
\hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::split (\begin{DoxyParamCaption}\item[{Edge\+Handle}]{\+\_\+eh,  }\item[{const \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point} \&}]{\+\_\+p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

The properties of the new edges will be undefined!


\begin{DoxyParams}{Parameters}
{\em \+\_\+eh} & Edge handle that should be splitted \\
\hline
{\em \+\_\+p} & New point position that will be inserted at the edge \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Vertex handle of the newly added vertex 
\end{DoxyReturn}


Definition at line 267 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a00a743cc15f3ff35e41c98090e0f91c8}\label{classOpenMesh_1_1TriMeshT_a00a743cc15f3ff35e41c98090e0f91c8}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!split@{split}}
\index{split@{split}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{split()}{split()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
void \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::split (\begin{DoxyParamCaption}\item[{Edge\+Handle}]{\+\_\+eh,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

The properties of the new edges will be undefined!


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


Definition at line 294 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a6eb3942a6c87da48e0691d669e764edf}\label{classOpenMesh_1_1TriMeshT_a6eb3942a6c87da48e0691d669e764edf}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!split@{split}}
\index{split@{split}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{split()}{split()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
\hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::split (\begin{DoxyParamCaption}\item[{Face\+Handle}]{\+\_\+fh,  }\item[{const \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point} \&}]{\+\_\+p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

The properties of the new faces will be undefined!


\begin{DoxyParams}{Parameters}
{\em \+\_\+fh} & Face handle that should be splitted \\
\hline
{\em \+\_\+p} & New point position that will be inserted in the face\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Vertex handle of the new vertex 
\end{DoxyReturn}


Definition at line 322 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a08fd303acc36c2fc4e6bbb1e96b49dd7}\label{classOpenMesh_1_1TriMeshT_a08fd303acc36c2fc4e6bbb1e96b49dd7}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!split@{split}}
\index{split@{split}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{split()}{split()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
void \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::split (\begin{DoxyParamCaption}\item[{Face\+Handle}]{\+\_\+fh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Face split (= 1-\/to-\/4) split, splits edges at midpoints and adds 4 new faces in the interior). 


\begin{DoxyParams}{Parameters}
{\em \+\_\+fh} & Face handle that should be splitted \\
\hline
\end{DoxyParams}


Definition at line 342 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a1d3163398fc453736b59e8a3dacf7e45}\label{classOpenMesh_1_1TriMeshT_a1d3163398fc453736b59e8a3dacf7e45}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!split@{split}}
\index{split@{split}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{split()}{split()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
void \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::split (\begin{DoxyParamCaption}\item[{Face\+Handle}]{\+\_\+fh,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{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). 

The properties of the new faces will be undefined!


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


Definition at line 402 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_af27eab7f97150e60d70e43a96ba1e6a4}\label{classOpenMesh_1_1TriMeshT_af27eab7f97150e60d70e43a96ba1e6a4}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!split\+\_\+copy@{split\+\_\+copy}}
\index{split\+\_\+copy@{split\+\_\+copy}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{split\+\_\+copy()}{split\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
\hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::split\+\_\+copy (\begin{DoxyParamCaption}\item[{Edge\+Handle}]{\+\_\+eh,  }\item[{const \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point} \&}]{\+\_\+p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

The properties of the new edges will be adjusted to the properties of the original edge


\begin{DoxyParams}{Parameters}
{\em \+\_\+eh} & Edge handle that should be splitted \\
\hline
{\em \+\_\+p} & New point position that will be inserted at the edge \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Vertex handle of the newly added vertex 
\end{DoxyReturn}


Definition at line 281 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ae1dcb76ca7b18678552bb0b65dff3a2c}\label{classOpenMesh_1_1TriMeshT_ae1dcb76ca7b18678552bb0b65dff3a2c}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!split\+\_\+copy@{split\+\_\+copy}}
\index{split\+\_\+copy@{split\+\_\+copy}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{split\+\_\+copy()}{split\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
void \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::split\+\_\+copy (\begin{DoxyParamCaption}\item[{Edge\+Handle}]{\+\_\+eh,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

The properties of the new edges will be adjusted to the properties of the original edge


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


Definition at line 307 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ab43c61825216c530da6959a1a027a9e1}\label{classOpenMesh_1_1TriMeshT_ab43c61825216c530da6959a1a027a9e1}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!split\+\_\+copy@{split\+\_\+copy}}
\index{split\+\_\+copy@{split\+\_\+copy}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{split\+\_\+copy()}{split\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
\hyperlink{structOpenMesh_1_1SmartVertexHandle}{Smart\+Vertex\+Handle} \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::split\+\_\+copy (\begin{DoxyParamCaption}\item[{Face\+Handle}]{\+\_\+fh,  }\item[{const \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point} \&}]{\+\_\+p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



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

The properties of the new faces will be adjusted to the properties of the original face


\begin{DoxyParams}{Parameters}
{\em \+\_\+fh} & Face handle that should be splitted \\
\hline
{\em \+\_\+p} & New point position that will be inserted in the face\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Vertex handle of the new vertex 
\end{DoxyReturn}


Definition at line 334 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_aa2b78682dc013e4c8480a3cab28bb766}\label{classOpenMesh_1_1TriMeshT_aa2b78682dc013e4c8480a3cab28bb766}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!split\+\_\+copy@{split\+\_\+copy}}
\index{split\+\_\+copy@{split\+\_\+copy}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{split\+\_\+copy()}{split\_copy()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
void \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::split\+\_\+copy (\begin{DoxyParamCaption}\item[{Face\+Handle}]{\+\_\+fh,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{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). 

The properties of the new faces will be adjusted to the properties of the original face


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


Definition at line 412 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_a4868b772cb7a9d7bb8d94854dfb82868}\label{classOpenMesh_1_1TriMeshT_a4868b772cb7a9d7bb8d94854dfb82868}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!vertex\+\_\+split@{vertex\+\_\+split}}
\index{vertex\+\_\+split@{vertex\+\_\+split}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{vertex\+\_\+split()}{vertex\_split()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
Halfedge\+Handle \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::vertex\+\_\+split (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Point}}]{\+\_\+v0\+\_\+point,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle}}]{\+\_\+v1,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle}}]{\+\_\+vl,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle}}]{\+\_\+vr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Vertex Split\+: inverse operation to collapse(). 

Insert the new vertex at position v0. The vertex will be added as the inverse of the vertex split. The faces above the split will be correctly attached to the two new edges

Before\+: v\+\_\+l v0 v\+\_\+r x x x \textbackslash{} / \textbackslash{} / \textbackslash{} / \textbackslash{} / \textbackslash{} / \textbackslash{} / x v1

After\+: v\+\_\+l v0 v\+\_\+r x-\/-\/-\/---x-\/-\/-\/---x \textbackslash{} $\vert$ / \textbackslash{} $\vert$ / \textbackslash{} $\vert$ / \textbackslash{} $\vert$ / \textbackslash{} $\vert$ / $|$/ x v1


\begin{DoxyParams}{Parameters}
{\em \+\_\+v0\+\_\+point} & Point position for the new point \\
\hline
{\em \+\_\+v1} & Vertex that will be split \\
\hline
{\em \+\_\+vl} & Left vertex handle \\
\hline
{\em \+\_\+vr} & Right vertex handle \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly inserted halfedge 
\end{DoxyReturn}


Definition at line 214 of file Tri\+Mesh\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1TriMeshT_ac58e0af86ecd0bbc5e821ecd8c8beaff}\label{classOpenMesh_1_1TriMeshT_ac58e0af86ecd0bbc5e821ecd8c8beaff}} 
\index{Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}!vertex\+\_\+split@{vertex\+\_\+split}}
\index{vertex\+\_\+split@{vertex\+\_\+split}!Open\+Mesh\+::\+Tri\+MeshT@{Open\+Mesh\+::\+Tri\+MeshT}}
\subsubsection{\texorpdfstring{vertex\+\_\+split()}{vertex\_split()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class Kernel$>$ \\
Halfedge\+Handle \hyperlink{classOpenMesh_1_1TriMeshT}{Open\+Mesh\+::\+Tri\+MeshT}$<$ Kernel $>$\+::vertex\+\_\+split (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle}}]{\+\_\+v0,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle}}]{\+\_\+v1,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle}}]{\+\_\+vl,  }\item[{\hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Vertex\+Handle}}]{\+\_\+vr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Vertex Split\+: inverse operation to collapse(). 

Insert the new vertex at position v0. The vertex will be added as the inverse of the vertex split. The faces above the split will be correctly attached to the two new edges

Before\+: v\+\_\+l v0 v\+\_\+r x x x \textbackslash{} / \textbackslash{} / \textbackslash{} / \textbackslash{} / \textbackslash{} / \textbackslash{} / x v1

After\+: v\+\_\+l v0 v\+\_\+r x-\/-\/-\/---x-\/-\/-\/---x \textbackslash{} $\vert$ / \textbackslash{} $\vert$ / \textbackslash{} $\vert$ / \textbackslash{} $\vert$ / \textbackslash{} $\vert$ / $|$/ x v1


\begin{DoxyParams}{Parameters}
{\em \+\_\+v0} & Vertex handle for the newly inserted point (Input has to be unconnected!) \\
\hline
{\em \+\_\+v1} & Vertex that will be split \\
\hline
{\em \+\_\+vl} & Left vertex handle \\
\hline
{\em \+\_\+vr} & Right vertex handle \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Newly inserted halfedge 
\end{DoxyReturn}


Definition at line 254 of file Tri\+Mesh\+T.\+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\+Mesh\+T.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Mesh/Tri\+Mesh\+T\+\_\+impl.\+hh\end{DoxyCompactItemize}
