\hypertarget{a10272}{}\section{Mesh\+Repair\+Plugin Class Reference}
\label{a10272}\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
Inheritance diagram for Mesh\+Repair\+Plugin\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=9.000000cm]{a10272}
\end{center}
\end{figure}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10272_ac6469deb1d1d06faad6f8323976ed0a3}\label{a10272_ac6469deb1d1d06faad6f8323976ed0a3}} 
Q\+String {\bfseries version} ()
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Scripting functions}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a10272_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 
\mbox{\Hypertarget{a10272_a2c585f8a9943a458ba266a3a1f01d401}\label{a10272_a2c585f8a9943a458ba266a3a1f01d401}} 
void \hyperlink{a10272_a2c585f8a9943a458ba266a3a1f01d401}{remove\+Selected\+Val3\+Vertices} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Remove all selected valence 3 vertices. \end{DoxyCompactList}\item 
void \hyperlink{a10272_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{a10272_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{a10272_a0bf96bc300c011207fd372b96b99170a}{remove\+Selected\+Edges} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Removes all selected edges. \end{DoxyCompactList}\item 
void \hyperlink{a10272_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{a10272_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{a10272_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{a10272_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{a10272_a76eb34c22c393c73b7c293ec2b37a3d5}{update\+Face\+Normals} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Recomputes the face normals of an object. \end{DoxyCompactList}\item 
void \hyperlink{a10272_a45f80fcb68a3864b340021d119f952a9}{update\+Halfedge\+Normals} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Recomputes the halfedge normals of an object. \end{DoxyCompactList}\item 
void \hyperlink{a10272_a3e0923687231a62a58435eb8cd36ee9f}{update\+Vertex\+Normals} (int \+\_\+object\+Id)
\begin{DoxyCompactList}\small\item\em Recomputes the vertex normals of an object. \end{DoxyCompactList}\item 
void \hyperlink{a10272_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{a10272_abe775e68286af2518c9b59b2cf3cfa89}{snap\+Boundary} (int \+\_\+object\+Id, double \+\_\+eps)
\begin{DoxyCompactList}\small\item\em Snaps selected vertices at boundaries. \end{DoxyCompactList}\item 
void \hyperlink{a10272_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{a10272_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 
\mbox{\Hypertarget{a10272_a140c277cc87f84ae3b156c43ceb87f21}\label{a10272_a140c277cc87f84ae3b156c43ceb87f21}} 
void {\bfseries update\+View} ()
\item 
\mbox{\Hypertarget{a10272_a0b9e9a08f676a607ecc14ea49172e823}\label{a10272_a0b9e9a08f676a607ecc14ea49172e823}} 
void {\bfseries updated\+Object} (int \+\_\+identifier, const \hyperlink{a07096}{Update\+Type} \&\+\_\+type)
\item 
\mbox{\Hypertarget{a10272_aed7e25068d16445faac391d81451da37}\label{a10272_aed7e25068d16445faac391d81451da37}} 
void {\bfseries set\+Slot\+Description} (Q\+String \+\_\+slot\+Name, Q\+String \+\_\+slot\+Description, Q\+String\+List \+\_\+parameters, Q\+String\+List \+\_\+descriptions)
\item 
\mbox{\Hypertarget{a10272_a509b01d4234a3025c3a2605acede56dc}\label{a10272_a509b01d4234a3025c3a2605acede56dc}} 
void {\bfseries log} (\hyperlink{a00035_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{a10272_a058dd990039e9dd7df9f13246b7c46e8}\label{a10272_a058dd990039e9dd7df9f13246b7c46e8}} 
void {\bfseries log} (Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{a10272_a2df32a4f0cc4fb64905cb3fdd3f67295}\label{a10272_a2df32a4f0cc4fb64905cb3fdd3f67295}} 
void {\bfseries add\+Toolbox} (Q\+String \+\_\+name, Q\+Widget $\ast$\+\_\+widget, Q\+Icon $\ast$\+\_\+icon)
\item 
\mbox{\Hypertarget{a10272_a5f663ca15a499330511920c958d30123}\label{a10272_a5f663ca15a499330511920c958d30123}} 
void {\bfseries create\+Backup} (int \+\_\+objectid, Q\+String \+\_\+name, \hyperlink{a07096}{Update\+Type} \+\_\+type=\hyperlink{a06166_ga4ce39b8d60eb78ada5080d032c9463a8}{U\+P\+D\+A\+T\+E\+\_\+\+A\+LL})
\item 
\mbox{\Hypertarget{a10272_a7e49a56ae0a1967ec1f9579a16e90b02}\label{a10272_a7e49a56ae0a1967ec1f9579a16e90b02}} 
void {\bfseries plugin\+Exists} (Q\+String \+\_\+plugin\+Name, bool \&\+\_\+exists)
\item 
\mbox{\Hypertarget{a10272_a85295ff67207a404cb4475252aec4e67}\label{a10272_a85295ff67207a404cb4475252aec4e67}} 
void {\bfseries function\+Exists} (Q\+String \+\_\+plugin\+Name, Q\+String \+\_\+function\+Name, bool \&\+\_\+exists)
\item 
\mbox{\Hypertarget{a10272_a390c248fd7da45dde24385509aff15ef}\label{a10272_a390c248fd7da45dde24385509aff15ef}} 
void {\bfseries script\+Info} (Q\+String \+\_\+function\+Name)
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{a10272_ae87091ad7ccf4acefd2c42362191d2b0}{name} ()
\begin{DoxyCompactList}\small\item\em Return a name for the plugin. \end{DoxyCompactList}\item 
Q\+String \hyperlink{a10272_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 
\mbox{\Hypertarget{a10272_a3ff3ee034093ae368f254748be644bef}\label{a10272_a3ff3ee034093ae368f254748be644bef}} 
void {\bfseries initialize\+Plugin} ()
\item 
void \hyperlink{a10272_ac725462bcaa4193824c073e074fb49a4}{plugins\+Initialized} ()
\begin{DoxyCompactList}\small\item\em Initialization of the plugin when it is loaded by the core. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a486065269be73b45e24f51dda27ab318}\label{a10272_a486065269be73b45e24f51dda27ab318}} 
void \hyperlink{a10272_a486065269be73b45e24f51dda27ab318}{slot\+Remove\+Selected\+Val3\+Vertices} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a58abe14b05e96d45c866380edb98cc90}\label{a10272_a58abe14b05e96d45c866380edb98cc90}} 
void \hyperlink{a10272_a58abe14b05e96d45c866380edb98cc90}{slot\+Remove\+Selected\+Edges} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_afe883804249fa75b05ca65966f5d9b0c}\label{a10272_afe883804249fa75b05ca65966f5d9b0c}} 
void \hyperlink{a10272_afe883804249fa75b05ca65966f5d9b0c}{slot\+Detect\+Skinny\+Triangle\+By\+Angle} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a9d17c2ce0330ae7880ea1fdeeebc248b}\label{a10272_a9d17c2ce0330ae7880ea1fdeeebc248b}} 
void \hyperlink{a10272_a9d17c2ce0330ae7880ea1fdeeebc248b}{slot\+Remove\+Skinny\+Triangle\+By\+Angle} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a0f6e388f24a706867a5863653cf9db51}\label{a10272_a0f6e388f24a706867a5863653cf9db51}} 
void \hyperlink{a10272_a0f6e388f24a706867a5863653cf9db51}{slot\+Detect\+Foldover} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a9ab47ece43fff588279ef2712ab3fcc7}\label{a10272_a9ab47ece43fff588279ef2712ab3fcc7}} 
void \hyperlink{a10272_a9ab47ece43fff588279ef2712ab3fcc7}{slot\+Detect\+Triangle\+Aspect} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a32529cebc29430310658a42639b88b6e}\label{a10272_a32529cebc29430310658a42639b88b6e}} 
void \hyperlink{a10272_a32529cebc29430310658a42639b88b6e}{slot\+Flip\+Orientation} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a4eba3098f0689f58b5a3c2ff6c216f6c}\label{a10272_a4eba3098f0689f58b5a3c2ff6c216f6c}} 
void \hyperlink{a10272_a4eba3098f0689f58b5a3c2ff6c216f6c}{slot\+Fix\+Mesh} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a87e7b4f378565f5189bdf53b8de61fa4}\label{a10272_a87e7b4f378565f5189bdf53b8de61fa4}} 
void \hyperlink{a10272_a87e7b4f378565f5189bdf53b8de61fa4}{slot\+Update\+Vertex\+Normals} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a2896afdc52177342708824913f9d5c3d}\label{a10272_a2896afdc52177342708824913f9d5c3d}} 
void \hyperlink{a10272_a2896afdc52177342708824913f9d5c3d}{slot\+Update\+Face\+Normals} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_ad5a8bbf8b3a3864cbd4333560d5f7072}\label{a10272_ad5a8bbf8b3a3864cbd4333560d5f7072}} 
void \hyperlink{a10272_ad5a8bbf8b3a3864cbd4333560d5f7072}{slot\+Update\+Halfedge\+Normals} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a9ab5083d785087e3cdd30cd3ccfbf4f2}\label{a10272_a9ab5083d785087e3cdd30cd3ccfbf4f2}} 
void \hyperlink{a10272_a9ab5083d785087e3cdd30cd3ccfbf4f2}{slot\+Update\+Normals} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a6f23882aefbb2b3f9406dcae4ad61d69}\label{a10272_a6f23882aefbb2b3f9406dcae4ad61d69}} 
void \hyperlink{a10272_a6f23882aefbb2b3f9406dcae4ad61d69}{slot\+Detect\+Edges\+Longer} ()
\begin{DoxyCompactList}\small\item\em Button Slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_af53c003828f1580af30194a085cb3036}\label{a10272_af53c003828f1580af30194a085cb3036}} 
void \hyperlink{a10272_af53c003828f1580af30194a085cb3036}{slot\+Detect\+Edges\+Shorter} ()
\begin{DoxyCompactList}\small\item\em Button Slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a797a355acc7decd091ca5ce1be02c51e}\label{a10272_a797a355acc7decd091ca5ce1be02c51e}} 
void \hyperlink{a10272_a797a355acc7decd091ca5ce1be02c51e}{slot\+Detect\+Flat\+Valence3\+Vertices} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a398aa3aa68926530a7eba7f2ca6ce56a}\label{a10272_a398aa3aa68926530a7eba7f2ca6ce56a}} 
void \hyperlink{a10272_a398aa3aa68926530a7eba7f2ca6ce56a}{slot\+Snap\+Boundary} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a435c5c599b1d493704e9f32de5d8b750}\label{a10272_a435c5c599b1d493704e9f32de5d8b750}} 
void \hyperlink{a10272_a435c5c599b1d493704e9f32de5d8b750}{slot\+Fix\+Non\+Manifold\+Vertices} ()
\begin{DoxyCompactList}\small\item\em Button slot. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a10272_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 MeshT $>$ }\\void \hyperlink{a10272_a2c65b6db16e6ca9991c0115b630a0c4e}{flip\+Orientation} (MeshT \&\+\_\+mesh)
\begin{DoxyCompactList}\small\item\em flip orientation of selected faces. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10272_a8f622aea43f6972a1b89d939dc05fe0e}\label{a10272_a8f622aea43f6972a1b89d939dc05fe0e}} 
\hyperlink{a10276}{Mesh\+Repair\+Toolbar\+Widget} $\ast$ \hyperlink{a10272_a8f622aea43f6972a1b89d939dc05fe0e}{tool\+\_\+}
\begin{DoxyCompactList}\small\item\em Widget for Toolbox. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10272_a066aca809fad830e1aff62122ac92927}\label{a10272_a066aca809fad830e1aff62122ac92927}} 
Q\+Icon $\ast$ {\bfseries tool\+Icon\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}


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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a10272_a2c12c56b731d9f97feb6f5d6de24e0ca}\label{a10272_a2c12c56b731d9f97feb6f5d6de24e0ca}} 
\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!description@{description}}
\index{description@{description}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection{\texorpdfstring{description()}{description()}}
{\footnotesize\ttfamily Q\+String Mesh\+Repair\+Plugin\+::description (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Return a description of what the plugin is doing. 

This function has to return a basic description of the plugin 

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



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

\mbox{\Hypertarget{a10272_a4f4635c7e55a1249685559db58c8f46c}\label{a10272_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{\texorpdfstring{detect\+Flat\+Valence3\+Vertices}{detectFlatValence3Vertices}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::detect\+Flat\+Valence3\+Vertices (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id,  }\item[{double}]{\+\_\+angle }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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



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

\mbox{\Hypertarget{a10272_a9f4bf0dbe5bf327308898088901fa595}\label{a10272_a9f4bf0dbe5bf327308898088901fa595}} 
\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!detect\+Foldover@{detect\+Foldover}}
\index{detect\+Foldover@{detect\+Foldover}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection{\texorpdfstring{detect\+Foldover}{detectFoldover}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::detect\+Foldover (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id,  }\item[{float}]{\+\_\+angle }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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 252 of file Edge\+Functions.\+cc.

\mbox{\Hypertarget{a10272_a4ad46e97ad3479dc7906235d6ddca220}\label{a10272_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{\texorpdfstring{detect\+Skinny\+Triangle\+By\+Angle}{detectSkinnyTriangleByAngle}}
{\footnotesize\ttfamily 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]}}



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 189 of file Edge\+Functions.\+cc.

\mbox{\Hypertarget{a10272_ac731c43cf8d50db7bd6c5f3e22900948}\label{a10272_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{\texorpdfstring{detect\+Triangle\+Aspect}{detectTriangleAspect}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::detect\+Triangle\+Aspect (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id,  }\item[{float}]{\+\_\+aspect }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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 52 of file Face\+Functions.\+cc.

\mbox{\Hypertarget{a10272_a0e3b5511ac0998c750e8f6edba0ade4b}\label{a10272_a0e3b5511ac0998c750e8f6edba0ade4b}} 
\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!fix\+Mesh@{fix\+Mesh}}
\index{fix\+Mesh@{fix\+Mesh}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection{\texorpdfstring{fix\+Mesh}{fixMesh}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::fix\+Mesh (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id,  }\item[{double}]{\+\_\+epsilon }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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 107 of file General\+Mesh\+Fixing.\+cc.

\mbox{\Hypertarget{a10272_a57b4ace4f7d13b269f30a11ad37f31ae}\label{a10272_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{\texorpdfstring{fix\+Non\+Manifold\+Vertices}{fixNonManifoldVertices}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::fix\+Non\+Manifold\+Vertices (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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 79 of file General\+Mesh\+Fixing.\+cc.

\mbox{\Hypertarget{a10272_a83ebfc2c15f748ae551e5144eb2d26fe}\label{a10272_a83ebfc2c15f748ae551e5144eb2d26fe}} 
\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!flip\+Orientation@{flip\+Orientation}}
\index{flip\+Orientation@{flip\+Orientation}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection{\texorpdfstring{flip\+Orientation}{flipOrientation}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::flip\+Orientation (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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 98 of file Face\+Functions.\+cc.

\mbox{\Hypertarget{a10272_a2c65b6db16e6ca9991c0115b630a0c4e}\label{a10272_a2c65b6db16e6ca9991c0115b630a0c4e}} 
\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!flip\+Orientation@{flip\+Orientation}}
\index{flip\+Orientation@{flip\+Orientation}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection{\texorpdfstring{flip\+Orientation()}{flipOrientation()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void Mesh\+Repair\+Plugin\+::flip\+Orientation (\begin{DoxyParamCaption}\item[{MeshT \&}]{\+\_\+mesh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



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 51 of file Mesh\+Repair\+Plugin\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{a10272_ae87091ad7ccf4acefd2c42362191d2b0}\label{a10272_ae87091ad7ccf4acefd2c42362191d2b0}} 
\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!name@{name}}
\index{name@{name}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection{\texorpdfstring{name()}{name()}}
{\footnotesize\ttfamily Q\+String Mesh\+Repair\+Plugin\+::name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Return a name for the plugin. 

This Function has to return the name of the plugin. 

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



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

\mbox{\Hypertarget{a10272_ac725462bcaa4193824c073e074fb49a4}\label{a10272_ac725462bcaa4193824c073e074fb49a4}} 
\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!plugins\+Initialized@{plugins\+Initialized}}
\index{plugins\+Initialized@{plugins\+Initialized}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection{\texorpdfstring{plugins\+Initialized}{pluginsInitialized}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::plugins\+Initialized (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}



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



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

\mbox{\Hypertarget{a10272_a0bf96bc300c011207fd372b96b99170a}\label{a10272_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{\texorpdfstring{remove\+Selected\+Edges}{removeSelectedEdges}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::remove\+Selected\+Edges (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Removes all selected edges. 


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


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

\mbox{\Hypertarget{a10272_a95f5ff2aa9af99e62020c960c51d6562}\label{a10272_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{\texorpdfstring{select\+Edges\+Longer\+Than}{selectEdgesLongerThan}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::select\+Edges\+Longer\+Than (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id,  }\item[{double}]{\+\_\+length }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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 56 of file Edge\+Functions.\+cc.

\mbox{\Hypertarget{a10272_ab191a351e493fca64b0fde5cdcc9423b}\label{a10272_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{\texorpdfstring{select\+Edges\+Shorter\+Than}{selectEdgesShorterThan}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::select\+Edges\+Shorter\+Than (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id,  }\item[{double}]{\+\_\+length }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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 48 of file Edge\+Functions.\+cc.

\mbox{\Hypertarget{a10272_ab7d2a3053ac3c6527b19ccd110877c2e}\label{a10272_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{\texorpdfstring{selection\+Edge\+Length()}{selectionEdgeLength()}}
{\footnotesize\ttfamily 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]}}



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 65 of file Edge\+Functions.\+cc.

\mbox{\Hypertarget{a10272_abe775e68286af2518c9b59b2cf3cfa89}\label{a10272_abe775e68286af2518c9b59b2cf3cfa89}} 
\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!snap\+Boundary@{snap\+Boundary}}
\index{snap\+Boundary@{snap\+Boundary}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection{\texorpdfstring{snap\+Boundary}{snapBoundary}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::snap\+Boundary (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id,  }\item[{double}]{\+\_\+eps }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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 52 of file General\+Mesh\+Fixing.\+cc.

\mbox{\Hypertarget{a10272_a76eb34c22c393c73b7c293ec2b37a3d5}\label{a10272_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{\texorpdfstring{update\+Face\+Normals}{updateFaceNormals}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::update\+Face\+Normals (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Recomputes the face normals of an object. 


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


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

\mbox{\Hypertarget{a10272_a45f80fcb68a3864b340021d119f952a9}\label{a10272_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{\texorpdfstring{update\+Halfedge\+Normals}{updateHalfedgeNormals}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::update\+Halfedge\+Normals (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Recomputes the halfedge normals of an object. 


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


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

\mbox{\Hypertarget{a10272_a0f962e16fc1e1d395907af1b49d4ef54}\label{a10272_a0f962e16fc1e1d395907af1b49d4ef54}} 
\index{Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}!update\+Normals@{update\+Normals}}
\index{update\+Normals@{update\+Normals}!Mesh\+Repair\+Plugin@{Mesh\+Repair\+Plugin}}
\subsubsection{\texorpdfstring{update\+Normals}{updateNormals}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::update\+Normals (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



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 141 of file Normal\+Fixing.\+cc.

\mbox{\Hypertarget{a10272_a3e0923687231a62a58435eb8cd36ee9f}\label{a10272_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{\texorpdfstring{update\+Vertex\+Normals}{updateVertexNormals}}
{\footnotesize\ttfamily void Mesh\+Repair\+Plugin\+::update\+Vertex\+Normals (\begin{DoxyParamCaption}\item[{int}]{\+\_\+object\+Id }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [slot]}}



Recomputes the vertex normals of an object. 


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


Definition at line 114 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\+\_\+impl.\+hh\item 
Plugin-\/\+Mesh\+Repair/Normal\+Fixing.\+cc\item 
Plugin-\/\+Mesh\+Repair/Vertex\+Functions.\+cc\end{DoxyCompactItemize}
