\hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT}{}\section{Open\+Mesh\+:\+:Decimater\+:\+:Mod\+RoundnessT$<$ MeshT $>$ Class Template Reference}
\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT}\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Mesh\+T $>$@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Mesh\+T $>$}}


Use Roundness of triangles to control decimation.  




{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\+Mod\+Roundness\+T.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:Decimater\+:\+:Mod\+RoundnessT$<$ MeshT $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classOpenMesh_1_1Decimater_1_1ModRoundnessT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_afad49f3a84130ebcc0a851cea2161739}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_afad49f3a84130ebcc0a851cea2161739}} 
typedef Mesh\+T\+::\+Point {\bfseries Point}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_ae55ef761370282e939141ad9eaccd6ba}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_ae55ef761370282e939141ad9eaccd6ba}} 
typedef \hyperlink{structOpenMesh_1_1vector__traits}{vector\+\_\+traits}$<$ Point $>$\+::value\+\_\+type {\bfseries value\+\_\+type}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_acb7e48cf81e672cbf280de333e8681d5}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_acb7e48cf81e672cbf280de333e8681d5}} 
{\bfseries D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+LE} (\hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT}{Mod\+RoundnessT}, MeshT, Roundness)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a6e56da8acf8ce9a37577c07764e5c98b}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a6e56da8acf8ce9a37577c07764e5c98b}} 
\hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a6e56da8acf8ce9a37577c07764e5c98b}{Mod\+RoundnessT} (MeshT \&\+\_\+dec)
\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a7b6ea799f3e162748ea4612654c56eb5}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a7b6ea799f3e162748ea4612654c56eb5}} 
\hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a7b6ea799f3e162748ea4612654c56eb5}{$\sim$\+Mod\+RoundnessT} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
float \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a8cca90f7cddf16a1df74ff9255412698}{collapse\+\_\+priority} (const \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+Info} \&\+\_\+ci) override
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_afa0dca4d9da5196185dc4ffbedd30a39}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_afa0dca4d9da5196185dc4ffbedd30a39}} 
void \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_afa0dca4d9da5196185dc4ffbedd30a39}{set\+\_\+error\+\_\+tolerance\+\_\+factor} (double \+\_\+factor) override
\begin{DoxyCompactList}\small\item\em set the percentage of minimum roundness \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_ab33b28845de4cbd93fa21012522e9275}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_ab33b28845de4cbd93fa21012522e9275}} 
void {\bfseries set\+\_\+min\+\_\+angle} (float \+\_\+angle, bool)
\item 
void \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a825e256b8e67059958ad809e9ace85c3}{set\+\_\+min\+\_\+roundness} (value\+\_\+type \+\_\+min\+\_\+roundness, bool \+\_\+binary=true)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a1269b89dd5b20adbf0d81a7a86cc549b}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a1269b89dd5b20adbf0d81a7a86cc549b}} 
void \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a1269b89dd5b20adbf0d81a7a86cc549b}{unset\+\_\+min\+\_\+roundness} ()
\begin{DoxyCompactList}\small\item\em Unset minimum value constraint and enable non-\/binary mode. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a589e3679e530a184543609d23c585bf6}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a589e3679e530a184543609d23c585bf6}} 
double {\bfseries roundness} (const \hyperlink{namespaceOpenMesh_aa8903e7c1a37b97fb332a69122a7c6e8}{Vec3f} \&A, const \hyperlink{namespaceOpenMesh_aa8903e7c1a37b97fb332a69122a7c6e8}{Vec3f} \&B, const \hyperlink{namespaceOpenMesh_aa8903e7c1a37b97fb332a69122a7c6e8}{Vec3f} \&C)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a976eef8bed18198358ca0e198aab8b35}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a976eef8bed18198358ca0e198aab8b35}} 
value\+\_\+type {\bfseries min\+\_\+r\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$class MeshT$>$\newline
class Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T$<$ Mesh\+T $>$}

Use Roundness of triangles to control decimation. 

In binary and mode, the collapse is legal if\+:
\begin{DoxyItemize}
\item The roundness after the collapse is greater than the given value
\end{DoxyItemize}

In continuous mode the roundness after the collapse is returned 

Definition at line 86 of file Mod\+Roundness\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a8cca90f7cddf16a1df74ff9255412698}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a8cca90f7cddf16a1df74ff9255412698}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT}!collapse\+\_\+priority@{collapse\+\_\+priority}}
\index{collapse\+\_\+priority@{collapse\+\_\+priority}!Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT}}
\subsubsection{\texorpdfstring{collapse\+\_\+priority()}{collapse\_priority()}}
{\footnotesize\ttfamily template$<$class MeshT$>$ \\
float \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT}{Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT}$<$ MeshT $>$\+::collapse\+\_\+priority (\begin{DoxyParamCaption}\item[{const \hyperlink{structOpenMesh_1_1Decimater_1_1CollapseInfoT}{Collapse\+Info} \&}]{\+\_\+ci }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [virtual]}}

Compute collapse priority due to roundness of triangle.

The roundness is computed by dividing the radius of the circumference by the length of the shortest edge. The result is normalized.

\begin{DoxyReturn}{Returns}
\mbox{[}0\+:1\mbox{]} or I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE in non-\/binary mode 

L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE or I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE in binary mode 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a825e256b8e67059958ad809e9ace85c3}{set\+\_\+min\+\_\+roundness()} 
\end{DoxySeeAlso}


Reimplemented from \hyperlink{classOpenMesh_1_1Decimater_1_1ModBaseT_acb81c6b9a752741fce2366ca605cd14c}{Open\+Mesh\+::\+Decimater\+::\+Mod\+Base\+T$<$ Mesh\+T $>$}.



Definition at line 120 of file Mod\+Roundness\+T.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a825e256b8e67059958ad809e9ace85c3}\label{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a825e256b8e67059958ad809e9ace85c3}} 
\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT}!set\+\_\+min\+\_\+roundness@{set\+\_\+min\+\_\+roundness}}
\index{set\+\_\+min\+\_\+roundness@{set\+\_\+min\+\_\+roundness}!Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT@{Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT}}
\subsubsection{\texorpdfstring{set\+\_\+min\+\_\+roundness()}{set\_min\_roundness()}}
{\footnotesize\ttfamily template$<$class MeshT$>$ \\
void \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT}{Open\+Mesh\+::\+Decimater\+::\+Mod\+RoundnessT}$<$ MeshT $>$\+::set\+\_\+min\+\_\+roundness (\begin{DoxyParamCaption}\item[{value\+\_\+type}]{\+\_\+min\+\_\+roundness,  }\item[{bool}]{\+\_\+binary = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Set a minimum roundness value. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+min\+\_\+roundness} & in range (0,1) \\
\hline
{\em \+\_\+binary} & Set true, if the binary mode should be enabled, else false. In latter case the \hyperlink{classOpenMesh_1_1Decimater_1_1ModRoundnessT_a8cca90f7cddf16a1df74ff9255412698}{collapse\+\_\+priority()} returns a float value if the constraint does not apply and I\+L\+L\+E\+G\+A\+L\+\_\+\+C\+O\+L\+L\+A\+P\+SE else. \\
\hline
\end{DoxyParams}


Definition at line 225 of file Mod\+Roundness\+T.\+hh.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\hyperlink{ModRoundnessT_8hh}{Mod\+Roundness\+T.\+hh}\end{DoxyCompactItemize}
