\hypertarget{a00849}{\section{Open\+Mesh\+:\+:Decimater\+:\+:Mod\+Hausdorff\+T$<$ Mesh\+T $>$ Class Template Reference}
\label{a00849}\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T$<$ Mesh\+T $>$}}
}


Use Hausdorff distance to control decimation.  




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

Inheritance diagram for Open\+Mesh\+:\+:Decimater\+:\+:Mod\+Hausdorff\+T$<$ Mesh\+T $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a00849}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00849_ad1d811c61d634853c558dfb637158130}{typedef \hyperlink{a00994_a15372f27edf521d8e9028e2abccae342}{Mesh\+::\+Scalar} {\bfseries Scalar}}\label{a00849_ad1d811c61d634853c558dfb637158130}

\item 
\hypertarget{a00849_ac8e68d85ef31470a79b15a160753df8f}{typedef \hyperlink{a00994_aed10fb4dfb536b53a5e20c8f2442eadf}{Mesh\+::\+Point} {\bfseries Point}}\label{a00849_ac8e68d85ef31470a79b15a160753df8f}

\item 
\hypertarget{a00849_a3c67a7da2ea2955ae2eac9d095bd4e89}{typedef Mesh\+::\+Face\+Handle {\bfseries Face\+Handle}}\label{a00849_a3c67a7da2ea2955ae2eac9d095bd4e89}

\item 
\hypertarget{a00849_aab09fa39e69cbdf1f83a1fa4e725b376}{typedef std\+::vector$<$ Point $>$ {\bfseries Points}}\label{a00849_aab09fa39e69cbdf1f83a1fa4e725b376}

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

\item 
\hypertarget{a00849_a0322210d2abcdb0cfd165ff3f03c1cb5}{\hyperlink{a00849_a0322210d2abcdb0cfd165ff3f03c1cb5}{Mod\+Hausdorff\+T} (Mesh\+T \&\+\_\+mesh, Scalar \+\_\+error\+\_\+tolerance=F\+L\+T\+\_\+\+M\+A\+X)}\label{a00849_a0322210d2abcdb0cfd165ff3f03c1cb5}

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

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a00849_a85de7e6f56e8abedd5c5f5be2debab61}{Scalar \hyperlink{a00849_a85de7e6f56e8abedd5c5f5be2debab61}{tolerance} () const }\label{a00849_a85de7e6f56e8abedd5c5f5be2debab61}

\begin{DoxyCompactList}\small\item\em get max error tolerance \end{DoxyCompactList}\item 
\hypertarget{a00849_a571421e750a2ae24ac66d65a4aade107}{void \hyperlink{a00849_a571421e750a2ae24ac66d65a4aade107}{set\+\_\+tolerance} (Scalar \+\_\+e)}\label{a00849_a571421e750a2ae24ac66d65a4aade107}

\begin{DoxyCompactList}\small\item\em set max error tolerance \end{DoxyCompactList}\item 
\hypertarget{a00849_a93bf6608d7ad370dc4362b3159e1f428}{virtual void \hyperlink{a00849_a93bf6608d7ad370dc4362b3159e1f428}{initialize} ()}\label{a00849_a93bf6608d7ad370dc4362b3159e1f428}

\begin{DoxyCompactList}\small\item\em reset per-\/face point lists \end{DoxyCompactList}\item 
virtual float \hyperlink{a00849_a4fe09f7156ee291e13d63033ee8cba42}{collapse\+\_\+priority} (const \hyperlink{a00417}{Collapse\+Info} \&\+\_\+ci)
\begin{DoxyCompactList}\small\item\em compute Hausdorff error for one-\/ring \end{DoxyCompactList}\item 
\hypertarget{a00849_af1fdb32bf2d16b64d486c1398edb2e5e}{virtual void \hyperlink{a00849_af1fdb32bf2d16b64d486c1398edb2e5e}{postprocess\+\_\+collapse} (const \hyperlink{a00417}{Collapse\+Info} \&\+\_\+ci)}\label{a00849_af1fdb32bf2d16b64d486c1398edb2e5e}

\begin{DoxyCompactList}\small\item\em re-\/distribute points \end{DoxyCompactList}\item 
\hypertarget{a00849_a71936976d0d95a85dbea2e50cc638b82}{void \hyperlink{a00849_a71936976d0d95a85dbea2e50cc638b82}{set\+\_\+error\+\_\+tolerance\+\_\+factor} (double \+\_\+factor)}\label{a00849_a71936976d0d95a85dbea2e50cc638b82}

\begin{DoxyCompactList}\small\item\em set the percentage of tolerance \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00849_aca460acb7f0a4e399024e3302411b755}{Scalar \hyperlink{a00849_aca460acb7f0a4e399024e3302411b755}{dist\+Point\+Triangle\+Squared} (const Point \&\+\_\+p, const Point \&\+\_\+v0, const Point \&\+\_\+v1, const Point \&\+\_\+v2)}\label{a00849_aca460acb7f0a4e399024e3302411b755}

\begin{DoxyCompactList}\small\item\em squared distance from point \+\_\+p to triangle (\+\_\+v0, \+\_\+v1, \+\_\+v2) \end{DoxyCompactList}\item 
\hypertarget{a00849_a1fd5c875870cf5122f08abcbfd7a7006}{Scalar \hyperlink{a00849_a1fd5c875870cf5122f08abcbfd7a7006}{compute\+\_\+sqr\+\_\+error} (Face\+Handle \+\_\+fh, const Point \&\+\_\+p) const }\label{a00849_a1fd5c875870cf5122f08abcbfd7a7006}

\begin{DoxyCompactList}\small\item\em compute max error for face \+\_\+fh w.\+r.\+t. its point list and \+\_\+p \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00849_ab764a5f661a508a7581897744bd84075}{Points \hyperlink{a00849_ab764a5f661a508a7581897744bd84075}{tmp\+\_\+points\+\_\+}}\label{a00849_ab764a5f661a508a7581897744bd84075}

\begin{DoxyCompactList}\small\item\em Temporary point storage. \end{DoxyCompactList}\item 
\hypertarget{a00849_a58545df79becf1a4e592c8b6de469be4}{Mesh \& {\bfseries mesh\+\_\+}}\label{a00849_a58545df79becf1a4e592c8b6de469be4}

\item 
\hypertarget{a00849_a3be57ab90ee6ab5132c43362b8862ad0}{Scalar {\bfseries tolerance\+\_\+}}\label{a00849_a3be57ab90ee6ab5132c43362b8862ad0}

\item 
\hypertarget{a00849_a6e07adc6bbc6a6b09b8c121e613effcf}{\hyperlink{a00598}{Open\+Mesh\+::\+F\+Prop\+Handle\+T}$<$ Points $>$ {\bfseries points\+\_\+}}\label{a00849_a6e07adc6bbc6a6b09b8c121e613effcf}

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


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

Use Hausdorff distance to control decimation. 

This module computes the aspect ratio.

In binary mode, the collapse is legal if\+:
\begin{DoxyItemize}
\item The distance after the collapse is lower than the given tolerance
\end{DoxyItemize}

No continuous mode 

Definition at line 85 of file Mod\+Hausdorff\+T.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00849_a4fe09f7156ee291e13d63033ee8cba42}{\index{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T}!collapse\+\_\+priority@{collapse\+\_\+priority}}
\index{collapse\+\_\+priority@{collapse\+\_\+priority}!Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T@{Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T}}
\subsubsection[{collapse\+\_\+priority}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class Mesh\+T $>$ float {\bf Open\+Mesh\+::\+Decimater\+::\+Mod\+Hausdorff\+T}$<$ Mesh\+T $>$\+::collapse\+\_\+priority (
\begin{DoxyParamCaption}
\item[{const {\bf Collapse\+Info} \&}]{\+\_\+ci}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00849_a4fe09f7156ee291e13d63033ee8cba42}


compute Hausdorff error for one-\/ring 

This mod only allows collapses if the Hausdorff distance after a collapse is lower than the given tolerance.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ci} & Collapse info data \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Binary return, if collapse is legal or illegal 
\end{DoxyReturn}


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



Definition at line 211 of file Mod\+Hausdorff\+T.\+cc.



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