\hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT}{}\section{Open\+Mesh\+:\+:Subdivider\+:\+:Uniform\+:\+:Interpolating\+Sqrt3\+L\+GT$<$ Mesh\+Type, Real\+Type $>$ Class Template Reference}
\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT}\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Interpolating\+Sqrt3\+L\+G\+T$<$ Mesh\+Type, Real\+Type $>$@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Interpolating\+Sqrt3\+L\+G\+T$<$ Mesh\+Type, Real\+Type $>$}}


{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Tools/\+Subdivider/\+Uniform/\+Sqrt3\+Interpolating\+Subdivider\+Labsik\+Greiner\+T.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:Subdivider\+:\+:Uniform\+:\+:Interpolating\+Sqrt3\+L\+GT$<$ Mesh\+Type, Real\+Type $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ad09260d740184517e3acee40512c4d63}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ad09260d740184517e3acee40512c4d63}} 
typedef Real\+Type {\bfseries real\+\_\+t}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a6d1f1dcf42affe5cebb67b469cb80e0f}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a6d1f1dcf42affe5cebb67b469cb80e0f}} 
typedef Mesh\+Type {\bfseries mesh\+\_\+t}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a896910d20e9a6f3ac9724cef43c16559}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a896910d20e9a6f3ac9724cef43c16559}} 
typedef \hyperlink{classOpenMesh_1_1Subdivider_1_1Uniform_1_1SubdividerT}{SubdividerT}$<$ mesh\+\_\+t, real\+\_\+t $>$ {\bfseries parent\+\_\+t}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_aebb99daab51e60d3d40f28764fd8fcbc}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_aebb99daab51e60d3d40f28764fd8fcbc}} 
typedef std\+::vector$<$ std\+::vector$<$ real\+\_\+t $>$ $>$ {\bfseries weights\+\_\+t}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a8276bb433e594f75268a06d1236889dc}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a8276bb433e594f75268a06d1236889dc}} 
{\bfseries Interpolating\+Sqrt3\+L\+GT} (Mesh\+Type \&\+\_\+m)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ad551b6be95f2a6522763863d71bacc8d}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ad551b6be95f2a6522763863d71bacc8d}} 
const char $\ast$ \hyperlink{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ad551b6be95f2a6522763863d71bacc8d}{name} () const override
\begin{DoxyCompactList}\small\item\em Return name of subdivision algorithm. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_acf26ce965f4ea7fe6ffea064f7accfb8}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_acf26ce965f4ea7fe6ffea064f7accfb8}} 
void \hyperlink{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_acf26ce965f4ea7fe6ffea064f7accfb8}{init\+\_\+weights} (size\+\_\+t \+\_\+max\+\_\+valence=50)
\begin{DoxyCompactList}\small\item\em Pre-\/compute weights. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ab31706f9cb137c8d446fd954571baaf2}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ab31706f9cb137c8d446fd954571baaf2}} 
bool \hyperlink{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ab31706f9cb137c8d446fd954571baaf2}{prepare} (Mesh\+Type \&\+\_\+m) override
\begin{DoxyCompactList}\small\item\em Prepare mesh, e.\+g. add properties. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a0144b4a0a1731a7571b02e35a5cf8a6b}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a0144b4a0a1731a7571b02e35a5cf8a6b}} 
bool \hyperlink{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a0144b4a0a1731a7571b02e35a5cf8a6b}{cleanup} (Mesh\+Type \&\+\_\+m) override
\begin{DoxyCompactList}\small\item\em Cleanup mesh after usage, e.\+g. remove added properties. \end{DoxyCompactList}\item 
bool \hyperlink{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a78da3def73982cb8a074c52bb1ee3bfc}{subdivide} (Mesh\+Type \&\+\_\+m, size\+\_\+t \+\_\+n, const bool \+\_\+update\+\_\+points=true) override
\begin{DoxyCompactList}\small\item\em Subdivide mesh {\ttfamily \+\_\+m} {\ttfamily \+\_\+n} times. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a9fa0d8f8e2ae178747cc938a0efb5ef6}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a9fa0d8f8e2ae178747cc938a0efb5ef6}} 
void {\bfseries compute\+\_\+new\+\_\+boundary\+\_\+points} (Mesh\+Type \&\+\_\+m, const typename Mesh\+Type\+::\+Edge\+Handle \&\+\_\+eh)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ab20bad76c8ac5699188cce3102049588}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ab20bad76c8ac5699188cce3102049588}} 
void {\bfseries boundary\+\_\+split} (Mesh\+Type \&\+\_\+m, const typename Mesh\+Type\+::\+Face\+Handle \&\+\_\+fh)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a311b056f105b887c36dcce6fca9016d2}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a311b056f105b887c36dcce6fca9016d2}} 
void {\bfseries boundary\+\_\+split} (Mesh\+Type \&\+\_\+m, const typename Mesh\+Type\+::\+Halfedge\+Handle \&\+\_\+heh, const typename Mesh\+Type\+::\+Vertex\+Handle \&\+\_\+vh)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a00697c808244c56b65c942abe5a63dc4}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a00697c808244c56b65c942abe5a63dc4}} 
void {\bfseries boundary\+\_\+split} (Mesh\+Type \&\+\_\+m, const typename Mesh\+Type\+::\+Halfedge\+Handle \&\+\_\+heh)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_acb513461d9bb07ba3c05b7ba478887d1}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_acb513461d9bb07ba3c05b7ba478887d1}} 
weights\+\_\+t {\bfseries weights\+\_\+}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ac8c4134b4de7d7423114fa8573a550a5}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ac8c4134b4de7d7423114fa8573a550a5}} 
\hyperlink{structOpenMesh_1_1FPropHandleT}{Open\+Mesh\+::\+F\+Prop\+HandleT}$<$ typename Mesh\+Type\+::\+Vertex\+Handle $>$ {\bfseries fp\+\_\+pos\+\_\+}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ab1a1111ac4159f1a00fd173c6f0653b8}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_ab1a1111ac4159f1a00fd173c6f0653b8}} 
\hyperlink{structOpenMesh_1_1EPropHandleT}{Open\+Mesh\+::\+E\+Prop\+HandleT}$<$ std\+::pair$<$ typename Mesh\+Type\+::\+Vertex\+Handle, typename Mesh\+Type\+::\+Vertex\+Handle $>$ $>$ {\bfseries ep\+\_\+nv\+\_\+}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a847e5d110e7b003cc4e123b5d1378733}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a847e5d110e7b003cc4e123b5d1378733}} 
\hyperlink{structOpenMesh_1_1MPropHandleT}{Open\+Mesh\+::\+M\+Prop\+HandleT}$<$ size\+\_\+t $>$ {\bfseries mp\+\_\+gen\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Mesh\+Type, typename Real\+Type = double$>$\newline
class Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Interpolating\+Sqrt3\+L\+G\+T$<$ Mesh\+Type, Real\+Type $>$}

Uniform Interpolating Sqrt3 subdivision algorithm

Implementation of the interpolating Labsik Greiner Subdivider as described in \char`\"{}interpolating sqrt(3) subdivision\char`\"{} Labsik \& Greiner, 2000

Clement Courbet -\/ \href{mailto:clement.courbet@ecp.fr}{\tt clement.\+courbet@ecp.\+fr} 

Definition at line 106 of file Sqrt3\+Interpolating\+Subdivider\+Labsik\+Greiner\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a78da3def73982cb8a074c52bb1ee3bfc}\label{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT_a78da3def73982cb8a074c52bb1ee3bfc}} 
\index{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Interpolating\+Sqrt3\+L\+GT@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Interpolating\+Sqrt3\+L\+GT}!subdivide@{subdivide}}
\index{subdivide@{subdivide}!Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Interpolating\+Sqrt3\+L\+GT@{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Interpolating\+Sqrt3\+L\+GT}}
\subsubsection{\texorpdfstring{subdivide()}{subdivide()}}
{\footnotesize\ttfamily template$<$typename Mesh\+Type, typename Real\+Type = double$>$ \\
bool \hyperlink{classOpenMesh_1_1Subdivider_1_1Uniform_1_1InterpolatingSqrt3LGT}{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Interpolating\+Sqrt3\+L\+GT}$<$ Mesh\+Type, Real\+Type $>$\+::subdivide (\begin{DoxyParamCaption}\item[{Mesh\+Type \&}]{\+\_\+m,  }\item[{size\+\_\+t}]{\+\_\+n,  }\item[{const bool}]{\+\_\+update\+\_\+points = {\ttfamily true} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [override]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}



Subdivide mesh {\ttfamily \+\_\+m} {\ttfamily \+\_\+n} times. 

T\+O\+DO\+:Implement fixed positions 

Implements \hyperlink{classOpenMesh_1_1Subdivider_1_1Uniform_1_1SubdividerT_aacf8b2b63d1512d3c174fbe1781ee311}{Open\+Mesh\+::\+Subdivider\+::\+Uniform\+::\+Subdivider\+T$<$ Mesh\+Type, Real\+Type $>$}.



Definition at line 196 of file Sqrt3\+Interpolating\+Subdivider\+Labsik\+Greiner\+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/\+Subdivider/\+Uniform/\hyperlink{Sqrt3InterpolatingSubdividerLabsikGreinerT_8hh}{Sqrt3\+Interpolating\+Subdivider\+Labsik\+Greiner\+T.\+hh}\end{DoxyCompactItemize}
