\hypertarget{classRemeshing_1_1BaseRemesherT}{}\section{Remeshing\+:\+:Base\+RemesherT$<$ Mesh $>$ Class Template Reference}
\label{classRemeshing_1_1BaseRemesherT}\index{Remeshing\+::\+Base\+Remesher\+T$<$ Mesh $>$@{Remeshing\+::\+Base\+Remesher\+T$<$ Mesh $>$}}
Inheritance diagram for Remeshing\+:\+:Base\+RemesherT$<$ Mesh $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{classRemeshing_1_1BaseRemesherT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_ae1a4e0b029172c9d85f6c2d3ab22d712}\label{classRemeshing_1_1BaseRemesherT_ae1a4e0b029172c9d85f6c2d3ab22d712}} 
enum {\bfseries Selection} \{ {\bfseries V\+E\+R\+T\+E\+X\+\_\+\+S\+E\+L\+E\+C\+T\+I\+ON}, 
{\bfseries F\+A\+C\+E\+\_\+\+S\+E\+L\+E\+C\+T\+I\+ON}
 \}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a6b4c10ca6e7ca65f04bfa7e1a99d52b1}\label{classRemeshing_1_1BaseRemesherT_a6b4c10ca6e7ca65f04bfa7e1a99d52b1}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a15372f27edf521d8e9028e2abccae342}{Mesh\+::\+Scalar} {\bfseries Scalar}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a5007502bfe7a11bc703fae042e9c391c}\label{classRemeshing_1_1BaseRemesherT_a5007502bfe7a11bc703fae042e9c391c}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_aed10fb4dfb536b53a5e20c8f2442eadf}{Mesh\+::\+Point} {\bfseries Point}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_aea61a5acc990bcce8d9250c0050ff1f5}\label{classRemeshing_1_1BaseRemesherT_aea61a5acc990bcce8d9250c0050ff1f5}} 
typedef Mesh\+::\+Edge\+Handle {\bfseries Edge\+Handle}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a3ba6f0c35b508a23e461de117092b24e}\label{classRemeshing_1_1BaseRemesherT_a3ba6f0c35b508a23e461de117092b24e}} 
typedef Mesh\+::\+Halfedge\+Handle {\bfseries Halfedge\+Handle}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_aa499c2885f484c0f5f8173dd5ca57ff7}\label{classRemeshing_1_1BaseRemesherT_aa499c2885f484c0f5f8173dd5ca57ff7}} 
typedef \hyperlink{classOpenMesh_1_1PolyMeshT_a0fc18e13d70825938274e3faf7b55e01}{Mesh\+::\+Vertex\+Handle} {\bfseries Vertex\+Handle}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a2965dcd5ce7815419b8a49123ffa7158}\label{classRemeshing_1_1BaseRemesherT_a2965dcd5ce7815419b8a49123ffa7158}} 
{\bfseries Base\+RemesherT} (\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \&\+\_\+mesh, \hyperlink{classProgressEmitter}{Progress\+Emitter} $\ast$\+\_\+progress=N\+U\+LL)
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a00cf4aa929325e8679ab466a2db14d9a}\label{classRemeshing_1_1BaseRemesherT_a00cf4aa929325e8679ab466a2db14d9a}} 
void {\bfseries remesh} (unsigned int \+\_\+iters, unsigned int \+\_\+area\+\_\+iters, bool \+\_\+use\+\_\+projection=true, Selection \+\_\+selection=V\+E\+R\+T\+E\+X\+\_\+\+S\+E\+L\+E\+C\+T\+I\+ON)
\end{DoxyCompactItemize}
\subsection*{Protected Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_ae8b25f60c8c91778210cb6e6057aff13}\label{classRemeshing_1_1BaseRemesherT_ae8b25f60c8c91778210cb6e6057aff13}} 
typedef \hyperlink{classOpenMeshTriangleBSPT}{Open\+Mesh\+Triangle\+B\+S\+PT}$<$ \hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $>$ {\bfseries B\+SP}
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_ac08017d3abdb49b912ae01d4f0c338f1}\label{classRemeshing_1_1BaseRemesherT_ac08017d3abdb49b912ae01d4f0c338f1}} 
void \hyperlink{classRemeshing_1_1BaseRemesherT_ac08017d3abdb49b912ae01d4f0c338f1}{prepare\+\_\+vertex\+\_\+selection} ()
\begin{DoxyCompactList}\small\item\em prepare for remeshing only selected vertices (if no vertex was selected, remesh whole mesh) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_accf5f23e871bdc1926fa4bfe59b26849}\label{classRemeshing_1_1BaseRemesherT_accf5f23e871bdc1926fa4bfe59b26849}} 
void \hyperlink{classRemeshing_1_1BaseRemesherT_accf5f23e871bdc1926fa4bfe59b26849}{prepare\+\_\+face\+\_\+selection} ()
\begin{DoxyCompactList}\small\item\em prepare for remeshing only vertices which are fully surrounded by selected faces (if no face was selected, remesh whole mesh) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a7c08562c0cfe6f63985a9287d02efd38}\label{classRemeshing_1_1BaseRemesherT_a7c08562c0cfe6f63985a9287d02efd38}} 
void {\bfseries remeshh} (unsigned int \+\_\+iters, unsigned int \+\_\+aiters, bool \+\_\+proj)
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_ac40903b87ec4c489cdc29417ef5df02e}\label{classRemeshing_1_1BaseRemesherT_ac40903b87ec4c489cdc29417ef5df02e}} 
void {\bfseries cleanup} ()
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_afb068478a4f037763054f4ec447ad447}\label{classRemeshing_1_1BaseRemesherT_afb068478a4f037763054f4ec447ad447}} 
virtual void {\bfseries init\+\_\+reference} ()
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a32161943a389ee210bd73a071f098bd4}\label{classRemeshing_1_1BaseRemesherT_a32161943a389ee210bd73a071f098bd4}} 
virtual void {\bfseries delete\+\_\+reference} ()
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_ac298b31fc629c5a89edb164d90287c9b}\label{classRemeshing_1_1BaseRemesherT_ac298b31fc629c5a89edb164d90287c9b}} 
virtual void {\bfseries project\+\_\+to\+\_\+reference} (Vertex\+Handle \+\_\+vh) const
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_af86e996d55b117958386eff3590f248b}\label{classRemeshing_1_1BaseRemesherT_af86e996d55b117958386eff3590f248b}} 
void {\bfseries split\+\_\+long\+\_\+edges} ()
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a9cad45e5c5dfab48832429594397d069}\label{classRemeshing_1_1BaseRemesherT_a9cad45e5c5dfab48832429594397d069}} 
void {\bfseries collapse\+\_\+short\+\_\+edges} ()
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_aa10c262634c0479d1f9c785c72e46f35}\label{classRemeshing_1_1BaseRemesherT_aa10c262634c0479d1f9c785c72e46f35}} 
void {\bfseries flip\+\_\+edges} ()
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a367ba3df06e9befd8c00ce9e9b6fb08e}\label{classRemeshing_1_1BaseRemesherT_a367ba3df06e9befd8c00ce9e9b6fb08e}} 
void {\bfseries tangential\+\_\+smoothing} (bool \+\_\+use\+\_\+projection)
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_aa1e73e67247a6deac82a60c1fec562b5}\label{classRemeshing_1_1BaseRemesherT_aa1e73e67247a6deac82a60c1fec562b5}} 
void {\bfseries balanace\+\_\+area} (unsigned int \+\_\+iters, bool \+\_\+use\+\_\+projection)
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_ac74ad8550b3fcc516ca0bb1bbc9272c1}\label{classRemeshing_1_1BaseRemesherT_ac74ad8550b3fcc516ca0bb1bbc9272c1}} 
void {\bfseries remove\+\_\+caps} ()
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a489f738c78888b1e3e2b0bb83aaccde2}\label{classRemeshing_1_1BaseRemesherT_a489f738c78888b1e3e2b0bb83aaccde2}} 
virtual bool {\bfseries is\+\_\+too\+\_\+long} (Vertex\+Handle \+\_\+v0, Vertex\+Handle \+\_\+v1) const =0
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_aa9d99f27f3c2797f4de3df748d1901d8}\label{classRemeshing_1_1BaseRemesherT_aa9d99f27f3c2797f4de3df748d1901d8}} 
virtual bool {\bfseries is\+\_\+too\+\_\+short} (Vertex\+Handle \+\_\+v0, Vertex\+Handle \+\_\+v1) const =0
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a9fc8f3bfa1fcdfa87baf2e6a3305dbdb}\label{classRemeshing_1_1BaseRemesherT_a9fc8f3bfa1fcdfa87baf2e6a3305dbdb}} 
bool {\bfseries edge\+\_\+flip\+\_\+flips\+\_\+normal} (Edge\+Handle \+\_\+eh)
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a07bb49851fe44d34157ab0ec8c37d66f}\label{classRemeshing_1_1BaseRemesherT_a07bb49851fe44d34157ab0ec8c37d66f}} 
bool {\bfseries collapse\+\_\+flips\+\_\+normal} (Halfedge\+Handle \+\_\+heh)
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a6a2455fb61754b96b6acac8e9f006ab9}\label{classRemeshing_1_1BaseRemesherT_a6a2455fb61754b96b6acac8e9f006ab9}} 
\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} \& {\bfseries mesh\+\_\+}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_af0d07afc046400e21c804a3a161ca02d}\label{classRemeshing_1_1BaseRemesherT_af0d07afc046400e21c804a3a161ca02d}} 
\hyperlink{classOpenMesh_1_1TriMesh__ArrayKernelT}{Mesh} $\ast$ {\bfseries refmesh\+\_\+}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a82c318df481550ef60209e86bde97000}\label{classRemeshing_1_1BaseRemesherT_a82c318df481550ef60209e86bde97000}} 
\hyperlink{classOpenMeshTriangleBSPT}{B\+SP} $\ast$ {\bfseries bsp\+\_\+}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_aa2e97fc55427dad24bb9686491a1667e}\label{classRemeshing_1_1BaseRemesherT_aa2e97fc55427dad24bb9686491a1667e}} 
bool {\bfseries nothing\+\_\+selected\+\_\+}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a094c75d85f75576c270b915706132588}\label{classRemeshing_1_1BaseRemesherT_a094c75d85f75576c270b915706132588}} 
\hyperlink{structOpenMesh_1_1VPropHandleT}{Open\+Mesh\+::\+V\+Prop\+HandleT}$<$ int $>$ {\bfseries valences\+\_\+}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_af7e74bec838758071ab736b3347d002c}\label{classRemeshing_1_1BaseRemesherT_af7e74bec838758071ab736b3347d002c}} 
\hyperlink{structOpenMesh_1_1VPropHandleT}{Open\+Mesh\+::\+V\+Prop\+HandleT}$<$ Point $>$ {\bfseries update\+\_\+}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_a838f5b1b511c8b1206580818ead1188c}\label{classRemeshing_1_1BaseRemesherT_a838f5b1b511c8b1206580818ead1188c}} 
\hyperlink{structOpenMesh_1_1VPropHandleT}{Open\+Mesh\+::\+V\+Prop\+HandleT}$<$ Scalar $>$ {\bfseries area\+\_\+}
\item 
\mbox{\Hypertarget{classRemeshing_1_1BaseRemesherT_ad48d5f67fb2a6de70edfddc7815c54bf}\label{classRemeshing_1_1BaseRemesherT_ad48d5f67fb2a6de70edfddc7815c54bf}} 
\hyperlink{classProgressEmitter}{Progress\+Emitter} $\ast$ {\bfseries progress\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class Mesh$>$\newline
class Remeshing\+::\+Base\+Remesher\+T$<$ Mesh $>$}



Definition at line 79 of file Base\+Remesher\+T.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin-\/\+Remesher/\+Algorithms/Base\+Remesher\+T.\+hh\item 
Plugin-\/\+Remesher/\+Algorithms/Base\+Remesher\+T\+\_\+impl.\+hh\end{DoxyCompactItemize}
