\hypertarget{classMeshFixing}{}\section{Mesh\+Fixing$<$ MeshT $>$ Class Template Reference}
\label{classMeshFixing}\index{Mesh\+Fixing$<$ Mesh\+T $>$@{Mesh\+Fixing$<$ Mesh\+T $>$}}


Fix a mesh.  




{\ttfamily \#include $<$Plugin-\/\+Mesh\+Repair/\+Mesh\+Fixing\+T.\+hh$>$}

\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structMeshFixing_1_1Face}{Face}
\begin{DoxyCompactList}\small\item\em Internal face type. \end{DoxyCompactList}\item 
struct \hyperlink{structMeshFixing_1_1Vertex}{Vertex}
\begin{DoxyCompactList}\small\item\em Internal vertex type. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMeshFixing_aab20046c39a98306674994a14313bbe2}\label{classMeshFixing_aab20046c39a98306674994a14313bbe2}} 
{\bfseries Mesh\+Fixing} (MeshT \&\+\_\+mesh, double \+\_\+epsilon)
\item 
\mbox{\Hypertarget{classMeshFixing_a653b8d5d9cd051d45424bcdc1f90e096}\label{classMeshFixing_a653b8d5d9cd051d45424bcdc1f90e096}} 
bool {\bfseries fix} ()
\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMeshFixing_a3fc19a46c92f0a1939a08d080ba6f391}\label{classMeshFixing_a3fc19a46c92f0a1939a08d080ba6f391}} 
typedef std\+::map$<$ \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d}, int, \hyperlink{classCompareVectors}{Compare\+Vectors} $>$ {\bfseries Vertex\+Map}
\item 
\mbox{\Hypertarget{classMeshFixing_aaa33d643bb07493671e63c9f3b23e3e2}\label{classMeshFixing_aaa33d643bb07493671e63c9f3b23e3e2}} 
typedef Vertex\+Map\+::iterator {\bfseries Map\+Iter}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classMeshFixing_ad247f2ffe6b4baa1e924809d24ea3a6d}{add\+\_\+face} (const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+p0, const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+p1, const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+p2)
\begin{DoxyCompactList}\small\item\em Add a face to the fixing data. \end{DoxyCompactList}\item 
void \hyperlink{classMeshFixing_a0fb35745ce103c58c56ab2a19728ebf3}{fix\+\_\+topology} ()
\begin{DoxyCompactList}\small\item\em Fix the mesh topology. \end{DoxyCompactList}\item 
void \hyperlink{classMeshFixing_a934a1c85070d9dab7bcc066223f68698}{fix\+\_\+orientation} ()
\item 
int \hyperlink{classMeshFixing_a026db33bfcb298fd7ac8676d7e78ab73}{neighbor} (unsigned int \+\_\+f, unsigned int \+\_\+v0, unsigned int \+\_\+v1)
\item 
int \hyperlink{classMeshFixing_ac6864e4b5c5014eeac3808f46b3fc052}{add\+\_\+vertex} (const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+p)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classMeshFixing_ac97084639cdcf190897f8729bb02c041}\label{classMeshFixing_ac97084639cdcf190897f8729bb02c041}} 
\hyperlink{TriangleMeshTypes_8hh_a1e692d019e1d7c032c1de2e68b838ad6}{Tri\+Mesh} \& {\bfseries mesh\+\_\+}
\item 
\mbox{\Hypertarget{classMeshFixing_a42288183d8fd1292169cd83bfddb48a4}\label{classMeshFixing_a42288183d8fd1292169cd83bfddb48a4}} 
std\+::vector$<$ \hyperlink{structMeshFixing_1_1Vertex}{Vertex} $>$ {\bfseries vertices\+\_\+}
\item 
\mbox{\Hypertarget{classMeshFixing_ae3bbab75818b182bf882dab2c648712a}\label{classMeshFixing_ae3bbab75818b182bf882dab2c648712a}} 
std\+::vector$<$ \hyperlink{structMeshFixing_1_1Face}{Face} $>$ {\bfseries faces\+\_\+}
\item 
\mbox{\Hypertarget{classMeshFixing_a7ae6bf57c0754b5cd8a982d7c5e2d2b3}\label{classMeshFixing_a7ae6bf57c0754b5cd8a982d7c5e2d2b3}} 
Vertex\+Map {\bfseries vmap\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class MeshT$>$\newline
class Mesh\+Fixing$<$ Mesh\+T $>$}

Fix a mesh. 



Definition at line 89 of file Mesh\+Fixing\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classMeshFixing_ad247f2ffe6b4baa1e924809d24ea3a6d}\label{classMeshFixing_ad247f2ffe6b4baa1e924809d24ea3a6d}} 
\index{Mesh\+Fixing@{Mesh\+Fixing}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection{\texorpdfstring{add\+\_\+face()}{add\_face()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshFixing}{Mesh\+Fixing}$<$ MeshT $>$\+::add\+\_\+face (\begin{DoxyParamCaption}\item[{const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+p0,  }\item[{const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+p1,  }\item[{const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+p2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Add a face to the fixing data. 

Degenerated faces will already be discarded in this step


\begin{DoxyParams}{Parameters}
{\em \+\_\+p0} & \hyperlink{structMeshFixing_1_1Vertex}{Vertex} 1 \\
\hline
{\em \+\_\+p1} & \hyperlink{structMeshFixing_1_1Vertex}{Vertex} 2 \\
\hline
{\em \+\_\+p2} & \hyperlink{structMeshFixing_1_1Vertex}{Vertex} 3 \\
\hline
\end{DoxyParams}


Definition at line 99 of file Mesh\+Fixing\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshFixing_ac6864e4b5c5014eeac3808f46b3fc052}\label{classMeshFixing_ac6864e4b5c5014eeac3808f46b3fc052}} 
\index{Mesh\+Fixing@{Mesh\+Fixing}!add\+\_\+vertex@{add\+\_\+vertex}}
\index{add\+\_\+vertex@{add\+\_\+vertex}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection{\texorpdfstring{add\+\_\+vertex()}{add\_vertex()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
int \hyperlink{classMeshFixing}{Mesh\+Fixing}$<$ MeshT $>$\+::add\+\_\+vertex (\begin{DoxyParamCaption}\item[{const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&}]{\+\_\+p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

Add a vertex to the map


\begin{DoxyParams}{Parameters}
{\em \+\_\+p} & New vertex \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Index of the vertex 
\end{DoxyReturn}


Definition at line 93 of file Mesh\+Fixing\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshFixing_a934a1c85070d9dab7bcc066223f68698}\label{classMeshFixing_a934a1c85070d9dab7bcc066223f68698}} 
\index{Mesh\+Fixing@{Mesh\+Fixing}!fix\+\_\+orientation@{fix\+\_\+orientation}}
\index{fix\+\_\+orientation@{fix\+\_\+orientation}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection{\texorpdfstring{fix\+\_\+orientation()}{fix\_orientation()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshFixing}{Mesh\+Fixing}$<$ MeshT $>$\+::fix\+\_\+orientation (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

Tries to ensure that all faces in one component have the same orientation. 

Definition at line 308 of file Mesh\+Fixing\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshFixing_a0fb35745ce103c58c56ab2a19728ebf3}\label{classMeshFixing_a0fb35745ce103c58c56ab2a19728ebf3}} 
\index{Mesh\+Fixing@{Mesh\+Fixing}!fix\+\_\+topology@{fix\+\_\+topology}}
\index{fix\+\_\+topology@{fix\+\_\+topology}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection{\texorpdfstring{fix\+\_\+topology()}{fix\_topology()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
void \hyperlink{classMeshFixing}{Mesh\+Fixing}$<$ MeshT $>$\+::fix\+\_\+topology (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Fix the mesh topology. 

Separates all components that are incident to the vertices by adding new vertices. Required to always get a manifold configuration 

Definition at line 142 of file Mesh\+Fixing\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classMeshFixing_a026db33bfcb298fd7ac8676d7e78ab73}\label{classMeshFixing_a026db33bfcb298fd7ac8676d7e78ab73}} 
\index{Mesh\+Fixing@{Mesh\+Fixing}!neighbor@{neighbor}}
\index{neighbor@{neighbor}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection{\texorpdfstring{neighbor()}{neighbor()}}
{\footnotesize\ttfamily template$<$class MeshT $>$ \\
int \hyperlink{classMeshFixing}{Mesh\+Fixing}$<$ MeshT $>$\+::neighbor (\begin{DoxyParamCaption}\item[{unsigned int}]{\+\_\+f,  }\item[{unsigned int}]{\+\_\+v0,  }\item[{unsigned int}]{\+\_\+v1 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

Get the neighbor


\begin{DoxyParams}{Parameters}
{\em \+\_\+f} & Current face \\
\hline
{\em \+\_\+v0} & Center vertex \\
\hline
{\em \+\_\+v1} & Test vertex \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}

\end{DoxyReturn}


Definition at line 271 of file Mesh\+Fixing\+T\+\_\+impl.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin-\/\+Mesh\+Repair/Mesh\+Fixing\+T.\+hh\item 
Plugin-\/\+Mesh\+Repair/Mesh\+Fixing\+T\+\_\+impl.\+hh\end{DoxyCompactItemize}
