\hypertarget{a00824}{\section{Mesh\+Fixing$<$ Mesh\+T $>$ Class Template Reference}
\label{a00824}\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{a00551}{Face}
\begin{DoxyCompactList}\small\item\em Internal face type. \end{DoxyCompactList}\item 
struct \hyperlink{a01413}{Vertex}
\begin{DoxyCompactList}\small\item\em Internal vertex type. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00824_aab20046c39a98306674994a14313bbe2}{{\bfseries Mesh\+Fixing} (Mesh\+T \&\+\_\+mesh, double \+\_\+epsilon)}\label{a00824_aab20046c39a98306674994a14313bbe2}

\item 
\hypertarget{a00824_a653b8d5d9cd051d45424bcdc1f90e096}{bool {\bfseries fix} ()}\label{a00824_a653b8d5d9cd051d45424bcdc1f90e096}

\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00824_a3fc19a46c92f0a1939a08d080ba6f391}{typedef std\+::map$<$ \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d}, \\*
int, \hyperlink{a00435}{Compare\+Vectors} $>$ {\bfseries Vertex\+Map}}\label{a00824_a3fc19a46c92f0a1939a08d080ba6f391}

\item 
\hypertarget{a00824_aaa33d643bb07493671e63c9f3b23e3e2}{typedef Vertex\+Map\+::iterator {\bfseries Map\+Iter}}\label{a00824_aaa33d643bb07493671e63c9f3b23e3e2}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00824_ad247f2ffe6b4baa1e924809d24ea3a6d}{add\+\_\+face} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+p0, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+p1, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+p2)
\begin{DoxyCompactList}\small\item\em Add a face to the fixing data. \end{DoxyCompactList}\item 
void \hyperlink{a00824_a0fb35745ce103c58c56ab2a19728ebf3}{fix\+\_\+topology} ()
\begin{DoxyCompactList}\small\item\em Fix the mesh topology. \end{DoxyCompactList}\item 
void \hyperlink{a00824_a934a1c85070d9dab7bcc066223f68698}{fix\+\_\+orientation} ()
\item 
int \hyperlink{a00824_a026db33bfcb298fd7ac8676d7e78ab73}{neighbor} (unsigned int \+\_\+f, unsigned int \+\_\+v0, unsigned int \+\_\+v1)
\item 
int \hyperlink{a00824_ac6864e4b5c5014eeac3808f46b3fc052}{add\+\_\+vertex} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+p)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00824_ac97084639cdcf190897f8729bb02c041}{\hyperlink{a02425_a41cbba34c91d41c5325cc019b097ad91}{Tri\+Mesh} \& {\bfseries mesh\+\_\+}}\label{a00824_ac97084639cdcf190897f8729bb02c041}

\item 
\hypertarget{a00824_a42288183d8fd1292169cd83bfddb48a4}{std\+::vector$<$ \hyperlink{a01413}{Vertex} $>$ {\bfseries vertices\+\_\+}}\label{a00824_a42288183d8fd1292169cd83bfddb48a4}

\item 
\hypertarget{a00824_ae3bbab75818b182bf882dab2c648712a}{std\+::vector$<$ \hyperlink{a00551}{Face} $>$ {\bfseries faces\+\_\+}}\label{a00824_ae3bbab75818b182bf882dab2c648712a}

\item 
\hypertarget{a00824_a7ae6bf57c0754b5cd8a982d7c5e2d2b3}{Vertex\+Map {\bfseries vmap\+\_\+}}\label{a00824_a7ae6bf57c0754b5cd8a982d7c5e2d2b3}

\end{DoxyCompactItemize}


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

Fix a mesh. 



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



\subsection{Member Function Documentation}
\hypertarget{a00824_ad247f2ffe6b4baa1e924809d24ea3a6d}{\index{Mesh\+Fixing@{Mesh\+Fixing}!add\+\_\+face@{add\+\_\+face}}
\index{add\+\_\+face@{add\+\_\+face}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection[{add\+\_\+face}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T $>$ void {\bf Mesh\+Fixing}$<$ Mesh\+T $>$\+::add\+\_\+face (
\begin{DoxyParamCaption}
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+p0, }
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+p1, }
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+p2}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00824_ad247f2ffe6b4baa1e924809d24ea3a6d}


Add a face to the fixing data. 

Degenerated faces will already be discarded in this step


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


Definition at line 99 of file Mesh\+Fixing\+T.\+cc.

\hypertarget{a00824_ac6864e4b5c5014eeac3808f46b3fc052}{\index{Mesh\+Fixing@{Mesh\+Fixing}!add\+\_\+vertex@{add\+\_\+vertex}}
\index{add\+\_\+vertex@{add\+\_\+vertex}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection[{add\+\_\+vertex}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T $>$ int {\bf Mesh\+Fixing}$<$ Mesh\+T $>$\+::add\+\_\+vertex (
\begin{DoxyParamCaption}
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+p}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00824_ac6864e4b5c5014eeac3808f46b3fc052}
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.\+cc.

\hypertarget{a00824_a934a1c85070d9dab7bcc066223f68698}{\index{Mesh\+Fixing@{Mesh\+Fixing}!fix\+\_\+orientation@{fix\+\_\+orientation}}
\index{fix\+\_\+orientation@{fix\+\_\+orientation}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection[{fix\+\_\+orientation}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T $>$ void {\bf Mesh\+Fixing}$<$ Mesh\+T $>$\+::fix\+\_\+orientation (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00824_a934a1c85070d9dab7bcc066223f68698}
Tries to ensure that all faces in one component have the same orientation. 

Definition at line 308 of file Mesh\+Fixing\+T.\+cc.

\hypertarget{a00824_a0fb35745ce103c58c56ab2a19728ebf3}{\index{Mesh\+Fixing@{Mesh\+Fixing}!fix\+\_\+topology@{fix\+\_\+topology}}
\index{fix\+\_\+topology@{fix\+\_\+topology}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection[{fix\+\_\+topology}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T $>$ void {\bf Mesh\+Fixing}$<$ Mesh\+T $>$\+::fix\+\_\+topology (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00824_a0fb35745ce103c58c56ab2a19728ebf3}


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.\+cc.

\hypertarget{a00824_a026db33bfcb298fd7ac8676d7e78ab73}{\index{Mesh\+Fixing@{Mesh\+Fixing}!neighbor@{neighbor}}
\index{neighbor@{neighbor}!Mesh\+Fixing@{Mesh\+Fixing}}
\subsubsection[{neighbor}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T $>$ int {\bf Mesh\+Fixing}$<$ Mesh\+T $>$\+::neighbor (
\begin{DoxyParamCaption}
\item[{unsigned int}]{\+\_\+f, }
\item[{unsigned int}]{\+\_\+v0, }
\item[{unsigned int}]{\+\_\+v1}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00824_a026db33bfcb298fd7ac8676d7e78ab73}
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.\+cc.



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/\hyperlink{a02834}{Mesh\+Fixing\+T.\+cc}\end{DoxyCompactItemize}
