\hypertarget{a00835}{\section{Mesh\+Repair\+Plugin Class Reference}
\label{a00835}\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
}
Inheritance diagram for Mesh\+Repair\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.300813cm]{a00835}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00835_ac6469deb1d1d06faad6f8323976ed0a3}{Q\+String {\bfseries version} ()}\label{a00835_ac6469deb1d1d06faad6f8323976ed0a3}

\end{DoxyCompactItemize}
\begin{Indent}{\bf Scripting functions}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00835_a4f4635c7e55a1249685559db58c8f46c}{detect\+Flat\+Valence3\+Vertices} (int \+\_\+object\+Id, double \+\_\+angle)
\begin{DoxyCompactList}\small\item\em Detect valence 3 vertices with faces that lie in the plane of their adjacent triangles. \end{DoxyCompactList}\item 
\hypertarget{a00835_a2c585f8a9943a458ba266a3a1f01d401}{void \hyperlink{a00835_a2c585f8a9943a458ba266a3a1f01d401}{remove\+Selected\+Val3\+Vertices} (int \+\_\+object\+Id)}\label{a00835_a2c585f8a9943a458ba266a3a1f01d401}

\begin{DoxyCompactList}\small\item\em Remove all selected valence 3 vertices. \end{DoxyCompactList}\item 
void \hyperlink{a00835_ab191a351e493fca64b0fde5cdcc9423b}{select\+Edges\+Shorter\+Than} (int \+\_\+object\+Id, double \+\_\+length)
\begin{DoxyCompactList}\small\item\em Selects all edges of an object which are shorter than the given length. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a95f5ff2aa9af99e62020c960c51d6562}{select\+Edges\+Longer\+Than} (int \+\_\+object\+Id, double \+\_\+length)
\begin{DoxyCompactList}\small\item\em Selects all edges of an object which are larger than the given length. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a0bf96bc300c011207fd372b96b99170a}{remove\+Selected\+Edges} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Removes all selected edges. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a4ad46e97ad3479dc7906235d6ddca220}{detect\+Skinny\+Triangle\+By\+Angle} (int \+\_\+object\+Id, double \+\_\+angle, bool \+\_\+remove)
\begin{DoxyCompactList}\small\item\em Detect/\+Remove edges where neighboring faces form angle $>$ \+\_\+angle degrees. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a9f4bf0dbe5bf327308898088901fa595}{detect\+Foldover} (int \+\_\+object\+Id, float \+\_\+angle)
\begin{DoxyCompactList}\small\item\em Detect folded-\/over configurations by the dihedral angle. \end{DoxyCompactList}\item 
void \hyperlink{a00835_ac731c43cf8d50db7bd6c5f3e22900948}{detect\+Triangle\+Aspect} (int \+\_\+object\+Id, float \+\_\+aspect)
\begin{DoxyCompactList}\small\item\em Detect triangles with aspect ratio greater than \+\_\+aspect and select them. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a83ebfc2c15f748ae551e5144eb2d26fe}{flip\+Orientation} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Flips the normals of all selected faces by changing the vertex order. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a76eb34c22c393c73b7c293ec2b37a3d5}{update\+Face\+Normals} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Recomputes the face normals of an object. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a45f80fcb68a3864b340021d119f952a9}{update\+Halfedge\+Normals} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Recomputes the halfedge normals of an object. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a3e0923687231a62a58435eb8cd36ee9f}{update\+Vertex\+Normals} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Recomputes the vertex normals of an object. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a0f962e16fc1e1d395907af1b49d4ef54}{update\+Normals} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Recomputes the face and vertex normals of an object. \end{DoxyCompactList}\item 
void \hyperlink{a00835_abe775e68286af2518c9b59b2cf3cfa89}{snap\+Boundary} (int \+\_\+object\+Id, double \+\_\+eps)
\begin{DoxyCompactList}\small\item\em Snaps selected vertices at boundaries. \end{DoxyCompactList}\item 
void \hyperlink{a00835_a57b4ace4f7d13b269f30a11ad37f31ae}{fix\+Non\+Manifold\+Vertices} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em remove non-\/manifold vertices by duplicating them \end{DoxyCompactList}\item 
void \hyperlink{a00835_a0e3b5511ac0998c750e8f6edba0ade4b}{fix\+Mesh} (int \+\_\+object\+Id, double \+\_\+epsilon)
\begin{DoxyCompactList}\small\item\em Fix a mesh. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00835_a140c277cc87f84ae3b156c43ceb87f21}{void {\bfseries update\+View} ()}\label{a00835_a140c277cc87f84ae3b156c43ceb87f21}

\item 
\hypertarget{a00835_a0b9e9a08f676a607ecc14ea49172e823}{void {\bfseries updated\+Object} (int \+\_\+identifier, const \hyperlink{a01393}{Update\+Type} \&\+\_\+type)}\label{a00835_a0b9e9a08f676a607ecc14ea49172e823}

\item 
\hypertarget{a00835_aed7e25068d16445faac391d81451da37}{void {\bfseries set\+Slot\+Description} (Q\+String \+\_\+slot\+Name, Q\+String \+\_\+slot\+Description, Q\+String\+List \+\_\+parameters, Q\+String\+List \+\_\+descriptions)}\label{a00835_aed7e25068d16445faac391d81451da37}

\item 
\hypertarget{a00835_a509b01d4234a3025c3a2605acede56dc}{void {\bfseries log} (\hyperlink{a02444_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)}\label{a00835_a509b01d4234a3025c3a2605acede56dc}

\item 
\hypertarget{a00835_a058dd990039e9dd7df9f13246b7c46e8}{void {\bfseries log} (Q\+String \+\_\+message)}\label{a00835_a058dd990039e9dd7df9f13246b7c46e8}

\item 
\hypertarget{a00835_a2df32a4f0cc4fb64905cb3fdd3f67295}{void {\bfseries add\+Toolbox} (Q\+String \+\_\+name, Q\+Widget $\ast$\+\_\+widget, Q\+Icon $\ast$\+\_\+icon)}\label{a00835_a2df32a4f0cc4fb64905cb3fdd3f67295}

\item 
\hypertarget{a00835_a5f663ca15a499330511920c958d30123}{void {\bfseries create\+Backup} (int \+\_\+objectid, Q\+String \+\_\+name, \hyperlink{a01393}{Update\+Type} \+\_\+type=\hyperlink{a03407_ga4ce39b8d60eb78ada5080d032c9463a8}{U\+P\+D\+A\+T\+E\+\_\+\+A\+L\+L})}\label{a00835_a5f663ca15a499330511920c958d30123}

\item 
\hypertarget{a00835_a7e49a56ae0a1967ec1f9579a16e90b02}{void {\bfseries plugin\+Exists} (Q\+String \+\_\+plugin\+Name, bool \&\+\_\+exists)}\label{a00835_a7e49a56ae0a1967ec1f9579a16e90b02}

\item 
\hypertarget{a00835_a85295ff67207a404cb4475252aec4e67}{void {\bfseries function\+Exists} (Q\+String \+\_\+plugin\+Name, Q\+String \+\_\+function\+Name, bool \&\+\_\+exists)}\label{a00835_a85295ff67207a404cb4475252aec4e67}

\item 
\hypertarget{a00835_a390c248fd7da45dde24385509aff15ef}{void {\bfseries script\+Info} (Q\+String \+\_\+function\+Name)}\label{a00835_a390c248fd7da45dde24385509aff15ef}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{a00835_ae87091ad7ccf4acefd2c42362191d2b0}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a00835_a2c12c56b731d9f97feb6f5d6de24e0ca}{description} ()
\begin{DoxyCompactList}\small\item\em Return a description of what the plugin is doing. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00835_a3ff3ee034093ae368f254748be644bef}{void {\bfseries initialize\+Plugin} ()}\label{a00835_a3ff3ee034093ae368f254748be644bef}

\item 
void \hyperlink{a00835_ac725462bcaa4193824c073e074fb49a4}{plugins\+Initialized} ()
\begin{DoxyCompactList}\small\item\em Initialization of the plugin when it is loaded by the core. \end{DoxyCompactList}\item 
\hypertarget{a00835_a486065269be73b45e24f51dda27ab318}{void \hyperlink{a00835_a486065269be73b45e24f51dda27ab318}{slot\+Remove\+Selected\+Val3\+Vertices} ()}\label{a00835_a486065269be73b45e24f51dda27ab318}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a58abe14b05e96d45c866380edb98cc90}{void \hyperlink{a00835_a58abe14b05e96d45c866380edb98cc90}{slot\+Remove\+Selected\+Edges} ()}\label{a00835_a58abe14b05e96d45c866380edb98cc90}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_afe883804249fa75b05ca65966f5d9b0c}{void \hyperlink{a00835_afe883804249fa75b05ca65966f5d9b0c}{slot\+Detect\+Skinny\+Triangle\+By\+Angle} ()}\label{a00835_afe883804249fa75b05ca65966f5d9b0c}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a9d17c2ce0330ae7880ea1fdeeebc248b}{void \hyperlink{a00835_a9d17c2ce0330ae7880ea1fdeeebc248b}{slot\+Remove\+Skinny\+Triangle\+By\+Angle} ()}\label{a00835_a9d17c2ce0330ae7880ea1fdeeebc248b}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a0f6e388f24a706867a5863653cf9db51}{void \hyperlink{a00835_a0f6e388f24a706867a5863653cf9db51}{slot\+Detect\+Foldover} ()}\label{a00835_a0f6e388f24a706867a5863653cf9db51}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a9ab47ece43fff588279ef2712ab3fcc7}{void \hyperlink{a00835_a9ab47ece43fff588279ef2712ab3fcc7}{slot\+Detect\+Triangle\+Aspect} ()}\label{a00835_a9ab47ece43fff588279ef2712ab3fcc7}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a32529cebc29430310658a42639b88b6e}{void \hyperlink{a00835_a32529cebc29430310658a42639b88b6e}{slot\+Flip\+Orientation} ()}\label{a00835_a32529cebc29430310658a42639b88b6e}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a4eba3098f0689f58b5a3c2ff6c216f6c}{void \hyperlink{a00835_a4eba3098f0689f58b5a3c2ff6c216f6c}{slot\+Fix\+Mesh} ()}\label{a00835_a4eba3098f0689f58b5a3c2ff6c216f6c}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a87e7b4f378565f5189bdf53b8de61fa4}{void \hyperlink{a00835_a87e7b4f378565f5189bdf53b8de61fa4}{slot\+Update\+Vertex\+Normals} ()}\label{a00835_a87e7b4f378565f5189bdf53b8de61fa4}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a2896afdc52177342708824913f9d5c3d}{void \hyperlink{a00835_a2896afdc52177342708824913f9d5c3d}{slot\+Update\+Face\+Normals} ()}\label{a00835_a2896afdc52177342708824913f9d5c3d}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_ad5a8bbf8b3a3864cbd4333560d5f7072}{void \hyperlink{a00835_ad5a8bbf8b3a3864cbd4333560d5f7072}{slot\+Update\+Halfedge\+Normals} ()}\label{a00835_ad5a8bbf8b3a3864cbd4333560d5f7072}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a9ab5083d785087e3cdd30cd3ccfbf4f2}{void \hyperlink{a00835_a9ab5083d785087e3cdd30cd3ccfbf4f2}{slot\+Update\+Normals} ()}\label{a00835_a9ab5083d785087e3cdd30cd3ccfbf4f2}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a6f23882aefbb2b3f9406dcae4ad61d69}{void \hyperlink{a00835_a6f23882aefbb2b3f9406dcae4ad61d69}{slot\+Detect\+Edges\+Longer} ()}\label{a00835_a6f23882aefbb2b3f9406dcae4ad61d69}

\begin{DoxyCompactList}\small\item\em Button Slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_af53c003828f1580af30194a085cb3036}{void \hyperlink{a00835_af53c003828f1580af30194a085cb3036}{slot\+Detect\+Edges\+Shorter} ()}\label{a00835_af53c003828f1580af30194a085cb3036}

\begin{DoxyCompactList}\small\item\em Button Slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a797a355acc7decd091ca5ce1be02c51e}{void \hyperlink{a00835_a797a355acc7decd091ca5ce1be02c51e}{slot\+Detect\+Flat\+Valence3\+Vertices} ()}\label{a00835_a797a355acc7decd091ca5ce1be02c51e}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a398aa3aa68926530a7eba7f2ca6ce56a}{void \hyperlink{a00835_a398aa3aa68926530a7eba7f2ca6ce56a}{slot\+Snap\+Boundary} ()}\label{a00835_a398aa3aa68926530a7eba7f2ca6ce56a}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\hypertarget{a00835_a435c5c599b1d493704e9f32de5d8b750}{void \hyperlink{a00835_a435c5c599b1d493704e9f32de5d8b750}{slot\+Fix\+Non\+Manifold\+Vertices} ()}\label{a00835_a435c5c599b1d493704e9f32de5d8b750}

\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00835_ab7d2a3053ac3c6527b19ccd110877c2e}{selection\+Edge\+Length} (int \+\_\+object\+Id, double \+\_\+length, bool \+\_\+larger)
\begin{DoxyCompactList}\small\item\em select edges based on length \end{DoxyCompactList}\item 
{\footnotesize template$<$typename Mesh\+T $>$ }\\void \hyperlink{a00835_a2c65b6db16e6ca9991c0115b630a0c4e}{flip\+Orientation} (Mesh\+T \&\+\_\+mesh)
\begin{DoxyCompactList}\small\item\em flip orientation of selected faces. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00835_a8f622aea43f6972a1b89d939dc05fe0e}{\hyperlink{a00836}{Mesh\+Repair\+Toolbar\+Widget} $\ast$ \hyperlink{a00835_a8f622aea43f6972a1b89d939dc05fe0e}{tool\+\_\+}}\label{a00835_a8f622aea43f6972a1b89d939dc05fe0e}

\begin{DoxyCompactList}\small\item\em Widget for Toolbox. \end{DoxyCompactList}\item 
\hypertarget{a00835_a066aca809fad830e1aff62122ac92927}{Q\+Icon $\ast$ {\bfseries tool\+Icon\+\_\+}}\label{a00835_a066aca809fad830e1aff62122ac92927}

\end{DoxyCompactItemize}


\subsection{Detailed Description}


Definition at line 68 of file Mesh\+Repair\+Plugin.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00835_a2c12c56b731d9f97feb6f5d6de24e0ca}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!description@{description}}
\index{description@{description}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{description}]{\setlength{\rightskip}{0pt plus 5cm}Q\+String Mesh\+Repair\+Plugin\+::description (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00835_a2c12c56b731d9f97feb6f5d6de24e0ca}


Return a description of what the plugin is doing. 

This function has to return a basic description of the plugin 

Implements \hyperlink{a00322_a43f0d3612695b53c848c14f48fea9a7a}{Base\+Interface}.



Definition at line 122 of file Mesh\+Repair\+Plugin.\+hh.

\hypertarget{a00835_a4f4635c7e55a1249685559db58c8f46c}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!detect\+Flat\+Valence3\+Vertices@{detect\+Flat\+Valence3\+Vertices}}
\index{detect\+Flat\+Valence3\+Vertices@{detect\+Flat\+Valence3\+Vertices}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{detect\+Flat\+Valence3\+Vertices}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::detect\+Flat\+Valence3\+Vertices (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{double}]{\+\_\+angle}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a4f4635c7e55a1249685559db58c8f46c}


Detect valence 3 vertices with faces that lie in the plane of their adjacent triangles. 



Definition at line 60 of file Vertex\+Functions.\+cc.

\hypertarget{a00835_a9f4bf0dbe5bf327308898088901fa595}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!detect\+Foldover@{detect\+Foldover}}
\index{detect\+Foldover@{detect\+Foldover}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{detect\+Foldover}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::detect\+Foldover (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{float}]{\+\_\+angle}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a9f4bf0dbe5bf327308898088901fa595}


Detect folded-\/over configurations by the dihedral angle. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
{\em \+\_\+angle} & Minimal dihedral angle that will be selected \\
\hline
\end{DoxyParams}


Definition at line 263 of file Edge\+Functions.\+cc.

\hypertarget{a00835_a4ad46e97ad3479dc7906235d6ddca220}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!detect\+Skinny\+Triangle\+By\+Angle@{detect\+Skinny\+Triangle\+By\+Angle}}
\index{detect\+Skinny\+Triangle\+By\+Angle@{detect\+Skinny\+Triangle\+By\+Angle}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{detect\+Skinny\+Triangle\+By\+Angle}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::detect\+Skinny\+Triangle\+By\+Angle (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{double}]{\+\_\+angle, }
\item[{bool}]{\+\_\+remove}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a4ad46e97ad3479dc7906235d6ddca220}


Detect/\+Remove edges where neighboring faces form angle $>$ \+\_\+angle degrees. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
{\em \+\_\+angle} & minimal angle to detect \\
\hline
{\em \+\_\+remove} & Detect them or also remove them? \\
\hline
\end{DoxyParams}


Definition at line 200 of file Edge\+Functions.\+cc.

\hypertarget{a00835_ac731c43cf8d50db7bd6c5f3e22900948}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!detect\+Triangle\+Aspect@{detect\+Triangle\+Aspect}}
\index{detect\+Triangle\+Aspect@{detect\+Triangle\+Aspect}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{detect\+Triangle\+Aspect}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::detect\+Triangle\+Aspect (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{float}]{\+\_\+aspect}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_ac731c43cf8d50db7bd6c5f3e22900948}


Detect triangles with aspect ratio greater than \+\_\+aspect and select them. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
{\em \+\_\+aspect} & Minimal aspect ratio to select \\
\hline
\end{DoxyParams}


Definition at line 60 of file Face\+Functions.\+cc.

\hypertarget{a00835_a0e3b5511ac0998c750e8f6edba0ade4b}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!fix\+Mesh@{fix\+Mesh}}
\index{fix\+Mesh@{fix\+Mesh}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{fix\+Mesh}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::fix\+Mesh (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{double}]{\+\_\+epsilon}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a0e3b5511ac0998c750e8f6edba0ade4b}


Fix a mesh. 

Degenerated faces will be removed and all vertices which are closer than the given distance will be collapsed. Non-\/manifold configurations at vertices will be removed and all faces of each component will be updated to have the same orientation.


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object to fix \\
\hline
{\em \+\_\+epsilon} & Snapping distance \\
\hline
\end{DoxyParams}


Definition at line 116 of file General\+Mesh\+Fixing.\+cc.

\hypertarget{a00835_a57b4ace4f7d13b269f30a11ad37f31ae}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!fix\+Non\+Manifold\+Vertices@{fix\+Non\+Manifold\+Vertices}}
\index{fix\+Non\+Manifold\+Vertices@{fix\+Non\+Manifold\+Vertices}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{fix\+Non\+Manifold\+Vertices}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::fix\+Non\+Manifold\+Vertices (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a57b4ace4f7d13b269f30a11ad37f31ae}


remove non-\/manifold vertices by duplicating them 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the mesh to fix \\
\hline
\end{DoxyParams}


Definition at line 88 of file General\+Mesh\+Fixing.\+cc.

\hypertarget{a00835_a83ebfc2c15f748ae551e5144eb2d26fe}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!flip\+Orientation@{flip\+Orientation}}
\index{flip\+Orientation@{flip\+Orientation}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{flip\+Orientation}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::flip\+Orientation (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a83ebfc2c15f748ae551e5144eb2d26fe}


Flips the normals of all selected faces by changing the vertex order. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
\end{DoxyParams}


Definition at line 106 of file Face\+Functions.\+cc.

\hypertarget{a00835_a2c65b6db16e6ca9991c0115b630a0c4e}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!flip\+Orientation@{flip\+Orientation}}
\index{flip\+Orientation@{flip\+Orientation}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{flip\+Orientation}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Mesh\+T $>$ void Mesh\+Repair\+Plugin\+::flip\+Orientation (
\begin{DoxyParamCaption}
\item[{Mesh\+T \&}]{\+\_\+mesh}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00835_a2c65b6db16e6ca9991c0115b630a0c4e}


flip orientation of selected faces. 

flips the orientation of selected faces or if nothing is selected, the whole mesh is flipped for correct topology, some vertices may be duplicated


\begin{DoxyParams}{Parameters}
{\em \+\_\+mesh} & target mesh \\
\hline
\end{DoxyParams}


Definition at line 57 of file Mesh\+Repair\+Plugin\+T.\+cc.

\hypertarget{a00835_ae87091ad7ccf4acefd2c42362191d2b0}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!name@{name}}
\index{name@{name}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{name}]{\setlength{\rightskip}{0pt plus 5cm}Q\+String Mesh\+Repair\+Plugin\+::name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00835_ae87091ad7ccf4acefd2c42362191d2b0}


Return a name for the plugin. 

This Function has to return the name of the plugin. 

Implements \hyperlink{a00322_a2b351aa6ef0eb368bce735e243235958}{Base\+Interface}.



Definition at line 119 of file Mesh\+Repair\+Plugin.\+hh.

\hypertarget{a00835_ac725462bcaa4193824c073e074fb49a4}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!plugins\+Initialized@{plugins\+Initialized}}
\index{plugins\+Initialized@{plugins\+Initialized}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{plugins\+Initialized}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::plugins\+Initialized (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}}\label{a00835_ac725462bcaa4193824c073e074fb49a4}


Initialization of the plugin when it is loaded by the core. 



Definition at line 303 of file Mesh\+Repair\+Plugin.\+cc.

\hypertarget{a00835_a0bf96bc300c011207fd372b96b99170a}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!remove\+Selected\+Edges@{remove\+Selected\+Edges}}
\index{remove\+Selected\+Edges@{remove\+Selected\+Edges}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{remove\+Selected\+Edges}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::remove\+Selected\+Edges (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a0bf96bc300c011207fd372b96b99170a}


Removes all selected edges. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
\end{DoxyParams}


Definition at line 147 of file Edge\+Functions.\+cc.

\hypertarget{a00835_a95f5ff2aa9af99e62020c960c51d6562}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!select\+Edges\+Longer\+Than@{select\+Edges\+Longer\+Than}}
\index{select\+Edges\+Longer\+Than@{select\+Edges\+Longer\+Than}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{select\+Edges\+Longer\+Than}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::select\+Edges\+Longer\+Than (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{double}]{\+\_\+length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a95f5ff2aa9af99e62020c960c51d6562}


Selects all edges of an object which are larger than the given length. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
{\em \+\_\+length} & Minimal edge length to select \\
\hline
\end{DoxyParams}


Definition at line 67 of file Edge\+Functions.\+cc.

\hypertarget{a00835_ab191a351e493fca64b0fde5cdcc9423b}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!select\+Edges\+Shorter\+Than@{select\+Edges\+Shorter\+Than}}
\index{select\+Edges\+Shorter\+Than@{select\+Edges\+Shorter\+Than}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{select\+Edges\+Shorter\+Than}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::select\+Edges\+Shorter\+Than (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{double}]{\+\_\+length}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_ab191a351e493fca64b0fde5cdcc9423b}


Selects all edges of an object which are shorter than the given length. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
{\em \+\_\+length} & maximal edge length to select \\
\hline
\end{DoxyParams}


Definition at line 59 of file Edge\+Functions.\+cc.

\hypertarget{a00835_ab7d2a3053ac3c6527b19ccd110877c2e}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!selection\+Edge\+Length@{selection\+Edge\+Length}}
\index{selection\+Edge\+Length@{selection\+Edge\+Length}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{selection\+Edge\+Length}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::selection\+Edge\+Length (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{double}]{\+\_\+length, }
\item[{bool}]{\+\_\+larger}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00835_ab7d2a3053ac3c6527b19ccd110877c2e}


select edges based on length 

Selects edges if they are larger or shorter than a given length, 
\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object to select \\
\hline
{\em \+\_\+length} & Length \\
\hline
{\em \+\_\+larger} & true \+: select larger edges, false select smaller edges \\
\hline
\end{DoxyParams}


Definition at line 76 of file Edge\+Functions.\+cc.

\hypertarget{a00835_abe775e68286af2518c9b59b2cf3cfa89}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!snap\+Boundary@{snap\+Boundary}}
\index{snap\+Boundary@{snap\+Boundary}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{snap\+Boundary}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::snap\+Boundary (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id, }
\item[{double}]{\+\_\+eps}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_abe775e68286af2518c9b59b2cf3cfa89}


Snaps selected vertices at boundaries. 

Snaps selected boundary vertices together if they are closer than the given distance. No new vertices will be introduced on either edge, so they are just snapped to existing ones.


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
{\em \+\_\+eps} & Distance of vertices to snap \\
\hline
\end{DoxyParams}


Definition at line 61 of file General\+Mesh\+Fixing.\+cc.

\hypertarget{a00835_a76eb34c22c393c73b7c293ec2b37a3d5}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!update\+Face\+Normals@{update\+Face\+Normals}}
\index{update\+Face\+Normals@{update\+Face\+Normals}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{update\+Face\+Normals}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::update\+Face\+Normals (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a76eb34c22c393c73b7c293ec2b37a3d5}


Recomputes the face normals of an object. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
\end{DoxyParams}


Definition at line 60 of file Normal\+Fixing.\+cc.

\hypertarget{a00835_a45f80fcb68a3864b340021d119f952a9}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!update\+Halfedge\+Normals@{update\+Halfedge\+Normals}}
\index{update\+Halfedge\+Normals@{update\+Halfedge\+Normals}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{update\+Halfedge\+Normals}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::update\+Halfedge\+Normals (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a45f80fcb68a3864b340021d119f952a9}


Recomputes the halfedge normals of an object. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
\end{DoxyParams}


Definition at line 89 of file Normal\+Fixing.\+cc.

\hypertarget{a00835_a0f962e16fc1e1d395907af1b49d4ef54}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!update\+Normals@{update\+Normals}}
\index{update\+Normals@{update\+Normals}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{update\+Normals}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::update\+Normals (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a0f962e16fc1e1d395907af1b49d4ef54}


Recomputes the face and vertex normals of an object. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
\end{DoxyParams}


Definition at line 148 of file Normal\+Fixing.\+cc.

\hypertarget{a00835_a3e0923687231a62a58435eb8cd36ee9f}{\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!update\+Vertex\+Normals@{update\+Vertex\+Normals}}
\index{update\+Vertex\+Normals@{update\+Vertex\+Normals}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection[{update\+Vertex\+Normals}]{\setlength{\rightskip}{0pt plus 5cm}void Mesh\+Repair\+Plugin\+::update\+Vertex\+Normals (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+object\+Id}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00835_a3e0923687231a62a58435eb8cd36ee9f}


Recomputes the vertex normals of an object. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+object\+Id} & Id of the object \\
\hline
\end{DoxyParams}


Definition at line 121 of file Normal\+Fixing.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin-\/\+Mesh\+Repair/Mesh\+Repair\+Plugin.\+hh\item 
Plugin-\/\+Mesh\+Repair/Edge\+Functions.\+cc\item 
Plugin-\/\+Mesh\+Repair/Face\+Functions.\+cc\item 
Plugin-\/\+Mesh\+Repair/General\+Mesh\+Fixing.\+cc\item 
Plugin-\/\+Mesh\+Repair/Mesh\+Repair\+Plugin.\+cc\item 
Plugin-\/\+Mesh\+Repair/Mesh\+Repair\+Plugin\+T.\+cc\item 
Plugin-\/\+Mesh\+Repair/Normal\+Fixing.\+cc\item 
Plugin-\/\+Mesh\+Repair/Vertex\+Functions.\+cc\end{DoxyCompactItemize}
