\hypertarget{a00856}{\section{Open\+Mesh\+:\+:Decimater\+:\+:Mod\+Roundness\+T$<$ Mesh\+T $>$ Class Template Reference}
\label{a00856}\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 $<$libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Decimater/\+Mod\+Roundness\+T.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:Decimater\+:\+:Mod\+Roundness\+T$<$ Mesh\+T $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a00856}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00856_afad49f3a84130ebcc0a851cea2161739}{typedef Mesh\+T\+::\+Point {\bfseries Point}}\label{a00856_afad49f3a84130ebcc0a851cea2161739}

\item 
\hypertarget{a00856_ae55ef761370282e939141ad9eaccd6ba}{typedef \hyperlink{a01404}{vector\+\_\+traits}$<$ Point $>$\\*
\+::value\+\_\+type {\bfseries value\+\_\+type}}\label{a00856_ae55ef761370282e939141ad9eaccd6ba}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00856_acb7e48cf81e672cbf280de333e8681d5}{{\bfseries D\+E\+C\+I\+M\+A\+T\+I\+N\+G\+\_\+\+M\+O\+D\+U\+L\+E} (\hyperlink{a00856}{Mod\+Roundness\+T}, Mesh\+T, Roundness)}\label{a00856_acb7e48cf81e672cbf280de333e8681d5}

\item 
\hypertarget{a00856_a6e56da8acf8ce9a37577c07764e5c98b}{\hyperlink{a00856_a6e56da8acf8ce9a37577c07764e5c98b}{Mod\+Roundness\+T} (Mesh\+T \&\+\_\+dec)}\label{a00856_a6e56da8acf8ce9a37577c07764e5c98b}

\begin{DoxyCompactList}\small\item\em Constructor. \end{DoxyCompactList}\item 
\hypertarget{a00856_a7b6ea799f3e162748ea4612654c56eb5}{\hyperlink{a00856_a7b6ea799f3e162748ea4612654c56eb5}{$\sim$\+Mod\+Roundness\+T} ()}\label{a00856_a7b6ea799f3e162748ea4612654c56eb5}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
float \hyperlink{a00856_ade6fe704e576b3e0f73453ffd8cad0fd}{collapse\+\_\+priority} (const \hyperlink{a00417}{Collapse\+Info} \&\+\_\+ci)
\item 
\hypertarget{a00856_a14fa6c8dc43d6621a3c0cb5404e1a5de}{void \hyperlink{a00856_a14fa6c8dc43d6621a3c0cb5404e1a5de}{set\+\_\+error\+\_\+tolerance\+\_\+factor} (double \+\_\+factor)}\label{a00856_a14fa6c8dc43d6621a3c0cb5404e1a5de}

\begin{DoxyCompactList}\small\item\em set the percentage of minimum roundness \end{DoxyCompactList}\item 
\hypertarget{a00856_ab33b28845de4cbd93fa21012522e9275}{void {\bfseries set\+\_\+min\+\_\+angle} (float \+\_\+angle, bool)}\label{a00856_ab33b28845de4cbd93fa21012522e9275}

\item 
void \hyperlink{a00856_a825e256b8e67059958ad809e9ace85c3}{set\+\_\+min\+\_\+roundness} (value\+\_\+type \+\_\+min\+\_\+roundness, bool \+\_\+binary=true)
\item 
\hypertarget{a00856_a1269b89dd5b20adbf0d81a7a86cc549b}{void \hyperlink{a00856_a1269b89dd5b20adbf0d81a7a86cc549b}{unset\+\_\+min\+\_\+roundness} ()}\label{a00856_a1269b89dd5b20adbf0d81a7a86cc549b}

\begin{DoxyCompactList}\small\item\em Unset minimum value constraint and enable non-\/binary mode. \end{DoxyCompactList}\item 
\hypertarget{a00856_a589e3679e530a184543609d23c585bf6}{double {\bfseries roundness} (const \hyperlink{a03368_aa8903e7c1a37b97fb332a69122a7c6e8}{Vec3f} \&A, const \hyperlink{a03368_aa8903e7c1a37b97fb332a69122a7c6e8}{Vec3f} \&B, const \hyperlink{a03368_aa8903e7c1a37b97fb332a69122a7c6e8}{Vec3f} \&C)}\label{a00856_a589e3679e530a184543609d23c585bf6}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00856_a976eef8bed18198358ca0e198aab8b35}{value\+\_\+type {\bfseries min\+\_\+r\+\_\+}}\label{a00856_a976eef8bed18198358ca0e198aab8b35}

\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$class Mesh\+T$>$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 91 of file Mod\+Roundness\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00856_ade6fe704e576b3e0f73453ffd8cad0fd}{\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T}!collapse\+\_\+priority@{collapse\+\_\+priority}}
\index{collapse\+\_\+priority@{collapse\+\_\+priority}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T}}
\subsubsection[{collapse\+\_\+priority}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T$>$ float {\bf Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T}$<$ Mesh\+T $>$\+::collapse\+\_\+priority (
\begin{DoxyParamCaption}
\item[{const {\bf Collapse\+Info} \&}]{\+\_\+ci}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}}\label{a00856_ade6fe704e576b3e0f73453ffd8cad0fd}
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\+S\+E in non-\/binary mode 

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


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



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

\hypertarget{a00856_a825e256b8e67059958ad809e9ace85c3}{\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T}!set\+\_\+min\+\_\+roundness@{set\+\_\+min\+\_\+roundness}}
\index{set\+\_\+min\+\_\+roundness@{set\+\_\+min\+\_\+roundness}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T}}
\subsubsection[{set\+\_\+min\+\_\+roundness}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T$>$ void {\bf Open\+Mesh\+::\+Decimater\+::\+Mod\+Roundness\+T}$<$ Mesh\+T $>$\+::set\+\_\+min\+\_\+roundness (
\begin{DoxyParamCaption}
\item[{value\+\_\+type}]{\+\_\+min\+\_\+roundness, }
\item[{bool}]{\+\_\+binary = {\ttfamily true}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00856_a825e256b8e67059958ad809e9ace85c3}
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{a00856_ade6fe704e576b3e0f73453ffd8cad0fd}{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\+S\+E else. \\
\hline
\end{DoxyParams}


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



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