\hypertarget{namespaceMeshFunctions}{}\section{Mesh\+Functions Namespace Reference}
\label{namespaceMeshFunctions}\index{Mesh\+Functions@{Mesh\+Functions}}


Namespace providing different Mesh editing functions.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename MeshT , typename VectorT $>$ }\\bool \hyperlink{namespaceMeshFunctions_a3f1e490a876f96515e15af41c3ed397f}{get\+\_\+boundary} (MeshT \&\+\_\+mesh, typename Mesh\+T\+::\+Vertex\+Handle \+\_\+vh, std\+::vector$<$ std\+::pair$<$ \hyperlink{classVectorT}{VectorT}, typename Mesh\+T\+::\+Vertex\+Handle $>$ $>$ \&\+\_\+boundary)
\item 
{\footnotesize template$<$typename MeshT , typename VectorT $>$ }\\bool \hyperlink{namespaceMeshFunctions_a228cbaa8f7d2b43fef94febd306dc1b5}{get\+\_\+boundary} (MeshT \&\+\_\+mesh, std\+::vector$<$ std\+::pair$<$ \hyperlink{classVectorT}{VectorT}, typename Mesh\+T\+::\+Vertex\+Handle $>$ $>$ \&\+\_\+boundary)
\item 
{\footnotesize template$<$typename MeshT , typename VectorT $>$ }\\void \hyperlink{namespaceMeshFunctions_a96679ecc369a5db5d56aa07e9753949f}{smooth\+\_\+boundary} (MeshT \&\+\_\+mesh, typename Mesh\+T\+::\+Vertex\+Handle \+\_\+vh)
\item 
{\footnotesize template$<$typename MeshT $>$ }\\bool \hyperlink{namespaceMeshFunctions_a6314adac44a85744ab5600dace55ca82}{neighbour} (const MeshT \&\+\_\+mesh, const typename Mesh\+T\+::\+Face\+Handle \&\+\_\+fh1, const typename Mesh\+T\+::\+Face\+Handle \&\+\_\+fh2)
\item 
{\footnotesize template$<$typename MeshT , typename VectorT $>$ }\\bool \hyperlink{namespaceMeshFunctions_ae9f2d14686e176d6c10bb5b9bd945ca4}{cut\+\_\+face} (const \hyperlink{classVectorT}{VectorT} \&\+\_\+porigin, const \hyperlink{classVectorT}{VectorT} \&\+\_\+pnormal, const MeshT \&\+\_\+mesh, const typename Mesh\+T\+::\+Face\+Handle \&\+\_\+fh)
\item 
{\footnotesize template$<$typename MeshT $>$ }\\double \hyperlink{namespaceMeshFunctions_aee4016ea83eccc9bfe4ec45c44e7f476}{calc\+\_\+area} (const MeshT \&\+\_\+mesh)
\item 
{\footnotesize template$<$typename MeshT $>$ }\\double \hyperlink{namespaceMeshFunctions_a36e2406cdf47296f7a556865453c53a6}{calc\+\_\+angle\+\_\+around} (const MeshT \&\+\_\+mesh, const typename Mesh\+T\+::\+Vertex\+Handle \&\+\_\+vh)
\item 
{\footnotesize template$<$typename MeshT $>$ }\\void \hyperlink{namespaceMeshFunctions_accf7f21e6de19f19015ed8bf64109d8b}{transform\+Mesh} (\hyperlink{namespaceACG_a7f5dece6cb3955c9847f5455509f6147}{A\+C\+G\+::\+Matrix4x4d} \+\_\+matrix, MeshT \&\+\_\+mesh)
\item 
{\footnotesize template$<$typename MeshT $>$ }\\void \hyperlink{namespaceMeshFunctions_a5b31589a65b412d2aeba53492c1151c0}{transform\+Handle\+Vertices} (\hyperlink{namespaceACG_a7f5dece6cb3955c9847f5455509f6147}{A\+C\+G\+::\+Matrix4x4d} \+\_\+matrix, MeshT \&\+\_\+mesh)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Namespace providing different Mesh editing functions. 

\subsection{Function Documentation}
\mbox{\Hypertarget{namespaceMeshFunctions_a36e2406cdf47296f7a556865453c53a6}\label{namespaceMeshFunctions_a36e2406cdf47296f7a556865453c53a6}} 
\index{Mesh\+Functions@{Mesh\+Functions}!calc\+\_\+angle\+\_\+around@{calc\+\_\+angle\+\_\+around}}
\index{calc\+\_\+angle\+\_\+around@{calc\+\_\+angle\+\_\+around}!Mesh\+Functions@{Mesh\+Functions}}
\subsubsection{\texorpdfstring{calc\+\_\+angle\+\_\+around()}{calc\_angle\_around()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
double Mesh\+Functions\+::calc\+\_\+angle\+\_\+around (\begin{DoxyParamCaption}\item[{const MeshT \&}]{\+\_\+mesh,  }\item[{const typename Mesh\+T\+::\+Vertex\+Handle \&}]{\+\_\+vh }\end{DoxyParamCaption})}

Get the sum of the angles around a vertex 
\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Mesh to work on \\
\hline
{\em \+\_\+vh} & Vertex \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Sum of angles around the vertex 
\end{DoxyReturn}


Definition at line 210 of file Mesh\+Functions\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{namespaceMeshFunctions_aee4016ea83eccc9bfe4ec45c44e7f476}\label{namespaceMeshFunctions_aee4016ea83eccc9bfe4ec45c44e7f476}} 
\index{Mesh\+Functions@{Mesh\+Functions}!calc\+\_\+area@{calc\+\_\+area}}
\index{calc\+\_\+area@{calc\+\_\+area}!Mesh\+Functions@{Mesh\+Functions}}
\subsubsection{\texorpdfstring{calc\+\_\+area()}{calc\_area()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
double Mesh\+Functions\+::calc\+\_\+area (\begin{DoxyParamCaption}\item[{const MeshT \&}]{\+\_\+mesh }\end{DoxyParamCaption})}

Get the area of a mesh ( sum over all triangle areas) 
\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Mesh to calculate area \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Area spanned by the mesh 
\end{DoxyReturn}


Definition at line 192 of file Mesh\+Functions\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{namespaceMeshFunctions_ae9f2d14686e176d6c10bb5b9bd945ca4}\label{namespaceMeshFunctions_ae9f2d14686e176d6c10bb5b9bd945ca4}} 
\index{Mesh\+Functions@{Mesh\+Functions}!cut\+\_\+face@{cut\+\_\+face}}
\index{cut\+\_\+face@{cut\+\_\+face}!Mesh\+Functions@{Mesh\+Functions}}
\subsubsection{\texorpdfstring{cut\+\_\+face()}{cut\_face()}}
{\footnotesize\ttfamily template$<$typename MeshT , typename VectorT $>$ \\
bool Mesh\+Functions\+::cut\+\_\+face (\begin{DoxyParamCaption}\item[{const \hyperlink{classVectorT}{VectorT} \&}]{\+\_\+porigin,  }\item[{const \hyperlink{classVectorT}{VectorT} \&}]{\+\_\+pnormal,  }\item[{const MeshT \&}]{\+\_\+mesh,  }\item[{const typename Mesh\+T\+::\+Face\+Handle \&}]{\+\_\+fh }\end{DoxyParamCaption})}

Checks if plane cuts the face 
\begin{DoxyParams}{Parameters}
{\em \+\_\+porigin} & Planes origin \\
\hline
{\em \+\_\+pnormal} & Plane normal \\
\hline
{\em \+\_\+mesh} & Mesh \\
\hline
{\em \+\_\+fh} & Facehandle of face \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
triangle cut by plane? 
\end{DoxyReturn}


Definition at line 169 of file Mesh\+Functions\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{namespaceMeshFunctions_a3f1e490a876f96515e15af41c3ed397f}\label{namespaceMeshFunctions_a3f1e490a876f96515e15af41c3ed397f}} 
\index{Mesh\+Functions@{Mesh\+Functions}!get\+\_\+boundary@{get\+\_\+boundary}}
\index{get\+\_\+boundary@{get\+\_\+boundary}!Mesh\+Functions@{Mesh\+Functions}}
\subsubsection{\texorpdfstring{get\+\_\+boundary()}{get\_boundary()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename MeshT , typename VectorT $>$ \\
bool Mesh\+Functions\+::get\+\_\+boundary (\begin{DoxyParamCaption}\item[{MeshT \&}]{\+\_\+mesh,  }\item[{typename Mesh\+T\+::\+Vertex\+Handle}]{\+\_\+vh,  }\item[{std\+::vector$<$ std\+::pair$<$ \hyperlink{classVectorT}{VectorT}, typename Mesh\+T\+::\+Vertex\+Handle $>$ $>$ \&}]{\+\_\+boundary }\end{DoxyParamCaption})}

get one boundary at the vertex 
\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Mesh \\
\hline
{\em \+\_\+vh} & Vertex handle of one vertex of the boundary \\
\hline
{\em \+\_\+boundary} & Coords and vertex handles of the boundary \\
\hline
\end{DoxyParams}


Definition at line 76 of file Mesh\+Functions\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{namespaceMeshFunctions_a228cbaa8f7d2b43fef94febd306dc1b5}\label{namespaceMeshFunctions_a228cbaa8f7d2b43fef94febd306dc1b5}} 
\index{Mesh\+Functions@{Mesh\+Functions}!get\+\_\+boundary@{get\+\_\+boundary}}
\index{get\+\_\+boundary@{get\+\_\+boundary}!Mesh\+Functions@{Mesh\+Functions}}
\subsubsection{\texorpdfstring{get\+\_\+boundary()}{get\_boundary()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename MeshT , typename VectorT $>$ \\
bool Mesh\+Functions\+::get\+\_\+boundary (\begin{DoxyParamCaption}\item[{MeshT \&}]{\+\_\+mesh,  }\item[{std\+::vector$<$ std\+::pair$<$ \hyperlink{classVectorT}{VectorT}, typename Mesh\+T\+::\+Vertex\+Handle $>$ $>$ \&}]{\+\_\+boundary }\end{DoxyParamCaption})}

get boundary of a mesh (assumes that there is only one boundary!! 
\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Mesh \\
\hline
{\em \+\_\+boundary} & Coords and vertex handles of the boundary \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Found a boundary? 
\end{DoxyReturn}


Definition at line 115 of file Mesh\+Functions\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{namespaceMeshFunctions_a6314adac44a85744ab5600dace55ca82}\label{namespaceMeshFunctions_a6314adac44a85744ab5600dace55ca82}} 
\index{Mesh\+Functions@{Mesh\+Functions}!neighbour@{neighbour}}
\index{neighbour@{neighbour}!Mesh\+Functions@{Mesh\+Functions}}
\subsubsection{\texorpdfstring{neighbour()}{neighbour()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool Mesh\+Functions\+::neighbour (\begin{DoxyParamCaption}\item[{const MeshT \&}]{\+\_\+mesh,  }\item[{const typename Mesh\+T\+::\+Face\+Handle \&}]{\+\_\+fh1,  }\item[{const typename Mesh\+T\+::\+Face\+Handle \&}]{\+\_\+fh2 }\end{DoxyParamCaption})}

Checks for two faces if they are adjazent 
\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Mesh \\
\hline
{\em \+\_\+fh1} & First Face \\
\hline
{\em \+\_\+fh2} & Second Face \\
\hline
\end{DoxyParams}


Definition at line 156 of file Mesh\+Functions\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{namespaceMeshFunctions_a96679ecc369a5db5d56aa07e9753949f}\label{namespaceMeshFunctions_a96679ecc369a5db5d56aa07e9753949f}} 
\index{Mesh\+Functions@{Mesh\+Functions}!smooth\+\_\+boundary@{smooth\+\_\+boundary}}
\index{smooth\+\_\+boundary@{smooth\+\_\+boundary}!Mesh\+Functions@{Mesh\+Functions}}
\subsubsection{\texorpdfstring{smooth\+\_\+boundary()}{smooth\_boundary()}}
{\footnotesize\ttfamily template$<$typename MeshT , typename VectorT $>$ \\
void Mesh\+Functions\+::smooth\+\_\+boundary (\begin{DoxyParamCaption}\item[{MeshT \&}]{\+\_\+mesh,  }\item[{typename Mesh\+T\+::\+Vertex\+Handle}]{\+\_\+vh }\end{DoxyParamCaption})}

function to smooth a boundary of a given mesh by moving each vertex to the mean Position of its adjazent verticies 
\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & Mesh to work on \\
\hline
{\em \+\_\+vh} & Vertex handle on the boundary \\
\hline
\end{DoxyParams}


Definition at line 139 of file Mesh\+Functions\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{namespaceMeshFunctions_a5b31589a65b412d2aeba53492c1151c0}\label{namespaceMeshFunctions_a5b31589a65b412d2aeba53492c1151c0}} 
\index{Mesh\+Functions@{Mesh\+Functions}!transform\+Handle\+Vertices@{transform\+Handle\+Vertices}}
\index{transform\+Handle\+Vertices@{transform\+Handle\+Vertices}!Mesh\+Functions@{Mesh\+Functions}}
\subsubsection{\texorpdfstring{transform\+Handle\+Vertices()}{transformHandleVertices()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void Mesh\+Functions\+::transform\+Handle\+Vertices (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceACG_a7f5dece6cb3955c9847f5455509f6147}{A\+C\+G\+::\+Matrix4x4d}}]{\+\_\+matrix,  }\item[{MeshT \&}]{\+\_\+mesh }\end{DoxyParamCaption})}

Transform handle vertices only 
\begin{DoxyParams}{Parameters}
{\em \+\_\+matrix} & The transformation matrix \\
\hline
{\em \+\_\+mesh} & The mesh that is to be transformed \\
\hline
\end{DoxyParams}


Definition at line 269 of file Mesh\+Functions\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{namespaceMeshFunctions_accf7f21e6de19f19015ed8bf64109d8b}\label{namespaceMeshFunctions_accf7f21e6de19f19015ed8bf64109d8b}} 
\index{Mesh\+Functions@{Mesh\+Functions}!transform\+Mesh@{transform\+Mesh}}
\index{transform\+Mesh@{transform\+Mesh}!Mesh\+Functions@{Mesh\+Functions}}
\subsubsection{\texorpdfstring{transform\+Mesh()}{transformMesh()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void Mesh\+Functions\+::transform\+Mesh (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceACG_a7f5dece6cb3955c9847f5455509f6147}{A\+C\+G\+::\+Matrix4x4d}}]{\+\_\+matrix,  }\item[{MeshT \&}]{\+\_\+mesh }\end{DoxyParamCaption})}

Transform geometry of the mesh using the specified transformation matrix. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+matrix} & The transformation matrix \\
\hline
{\em \+\_\+mesh} & The mesh that is to be transformed \\
\hline
\end{DoxyParams}


Definition at line 231 of file Mesh\+Functions\+T\+\_\+impl.\+hh.

