\hypertarget{classOpenMesh_1_1BaseKernel}{}\section{Open\+Mesh\+:\+:Base\+Kernel Class Reference}
\label{classOpenMesh_1_1BaseKernel}\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}


{\ttfamily \#include $<$Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Mesh/\+Base\+Kernel.\+hh$>$}

Inheritance diagram for Open\+Mesh\+:\+:Base\+Kernel\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=1.736434cm]{classOpenMesh_1_1BaseKernel}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a046855ec2dba0203fc0cb4616577ca0f}\label{classOpenMesh_1_1BaseKernel_a046855ec2dba0203fc0cb4616577ca0f}} 
typedef Property\+Container\+::iterator {\bfseries prop\+\_\+iterator}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ad7396c73982565505fd5aeb9ad0850c4}\label{classOpenMesh_1_1BaseKernel_ad7396c73982565505fd5aeb9ad0850c4}} 
typedef Property\+Container\+::const\+\_\+iterator {\bfseries const\+\_\+prop\+\_\+iterator}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_ae9277cd8341a7025951c3edd4961afef}{copy\+\_\+property} (\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh\+\_\+from, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh\+\_\+to)
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_afc29ef76edcd1f2bfe0cea4ad3e5f1cd}{copy\+\_\+property} (\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+hh\+\_\+from, \hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+hh\+\_\+to)
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_a4b5fa77467c7d165a63445b899b44c63}{copy\+\_\+property} (\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh\+\_\+from, \hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh\+\_\+to)
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_af1f118544aefd742f86780d61394522b}{copy\+\_\+property} (\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle} \+\_\+fh\+\_\+from, \hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle} \+\_\+fh\+\_\+to)
\item 
void \hyperlink{classOpenMesh_1_1BaseKernel_ab1b8cb02dfc4544f2762de962a2ce7ad}{copy\+\_\+all\+\_\+properties} (\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh\+\_\+from, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh\+\_\+to, bool \+\_\+copy\+Build\+In=false)
\item 
void \hyperlink{classOpenMesh_1_1BaseKernel_abc7d6ef07804e9fa51acd045f44404ef}{copy\+\_\+all\+\_\+properties} (\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+hh\+\_\+from, \hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+hh\+\_\+to, bool \+\_\+copy\+Build\+In=false)
\item 
void \hyperlink{classOpenMesh_1_1BaseKernel_a677c217fd4439461dd3ecec6575040d3}{copy\+\_\+all\+\_\+properties} (\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh\+\_\+from, \hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh\+\_\+to, bool \+\_\+copy\+Build\+In=false)
\item 
void \hyperlink{classOpenMesh_1_1BaseKernel_a82c6c4245ef28da6973ccde436121ef3}{copy\+\_\+all\+\_\+properties} (\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle} \+\_\+fh\+\_\+from, \hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle} \+\_\+fh\+\_\+to, bool \+\_\+copy\+Build\+In=false)
\item 
void \hyperlink{classOpenMesh_1_1BaseKernel_a675e3892d2896de654321d8ad7c0a178}{copy\+\_\+all\+\_\+kernel\+\_\+properties} (const \hyperlink{classOpenMesh_1_1BaseKernel}{Base\+Kernel} \&\+\_\+other)
\begin{DoxyCompactList}\small\item\em copy\+\_\+all\+\_\+kernel\+\_\+properties uses the = operator to copy all properties from a given other \hyperlink{classOpenMesh_1_1BaseKernel}{Base\+Kernel}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a455d2f4a64a7dddd51ccd5a5bc015c21}\label{classOpenMesh_1_1BaseKernel_a455d2f4a64a7dddd51ccd5a5bc015c21}} 
size\+\_\+t {\bfseries n\+\_\+vprops} (void) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a0d9f63b38c5bd1186e42f8902b639269}\label{classOpenMesh_1_1BaseKernel_a0d9f63b38c5bd1186e42f8902b639269}} 
size\+\_\+t {\bfseries n\+\_\+eprops} (void) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a6ba017729d30b81984f4cd51c1c3e3c4}\label{classOpenMesh_1_1BaseKernel_a6ba017729d30b81984f4cd51c1c3e3c4}} 
size\+\_\+t {\bfseries n\+\_\+hprops} (void) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_afd1b7c86d3018977358b950bc9b0d3d9}\label{classOpenMesh_1_1BaseKernel_afd1b7c86d3018977358b950bc9b0d3d9}} 
size\+\_\+t {\bfseries n\+\_\+fprops} (void) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a2bb60a3e617c4e234dfbd0f1274f2a26}\label{classOpenMesh_1_1BaseKernel_a2bb60a3e617c4e234dfbd0f1274f2a26}} 
size\+\_\+t {\bfseries n\+\_\+mprops} (void) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aa4c6b8d019d9fd607d4051ba60d2e404}\label{classOpenMesh_1_1BaseKernel_aa4c6b8d019d9fd607d4051ba60d2e404}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+vprop} (const std\+::string \&\+\_\+name)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a3e0f8b2ca881470e5d0f14005b7f8319}\label{classOpenMesh_1_1BaseKernel_a3e0f8b2ca881470e5d0f14005b7f8319}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+eprop} (const std\+::string \&\+\_\+name)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aeeee2e65b2e50ce76439a8bfd880b706}\label{classOpenMesh_1_1BaseKernel_aeeee2e65b2e50ce76439a8bfd880b706}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+hprop} (const std\+::string \&\+\_\+name)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a4781550e55460ca3cc1e85a403b2b8b5}\label{classOpenMesh_1_1BaseKernel_a4781550e55460ca3cc1e85a403b2b8b5}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+fprop} (const std\+::string \&\+\_\+name)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a88505be81e823407ef5274a0fcd2fb94}\label{classOpenMesh_1_1BaseKernel_a88505be81e823407ef5274a0fcd2fb94}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+mprop} (const std\+::string \&\+\_\+name)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a138e6b681c6a09b108d236efa2f3792b}\label{classOpenMesh_1_1BaseKernel_a138e6b681c6a09b108d236efa2f3792b}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+vprop} (const std\+::string \&\+\_\+name) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a9376dd36589b4e3fbd32dea6affe537b}\label{classOpenMesh_1_1BaseKernel_a9376dd36589b4e3fbd32dea6affe537b}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+eprop} (const std\+::string \&\+\_\+name) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a49ce330b2249fa6983f059f492ddaf85}\label{classOpenMesh_1_1BaseKernel_a49ce330b2249fa6983f059f492ddaf85}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+hprop} (const std\+::string \&\+\_\+name) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a38830444c5f045401ff86beacf0a7940}\label{classOpenMesh_1_1BaseKernel_a38830444c5f045401ff86beacf0a7940}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+fprop} (const std\+::string \&\+\_\+name) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a41d0d464a81e89842370424c2cb6643c}\label{classOpenMesh_1_1BaseKernel_a41d0d464a81e89842370424c2cb6643c}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$ {\bfseries \+\_\+get\+\_\+mprop} (const std\+::string \&\+\_\+name) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a10148f6731c1c98d4f873c1686878416}\label{classOpenMesh_1_1BaseKernel_a10148f6731c1c98d4f873c1686878416}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+vprop} (size\+\_\+t \+\_\+idx)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_abe5c9d45e0948d6e0dad1f28cddc2f0e}\label{classOpenMesh_1_1BaseKernel_abe5c9d45e0948d6e0dad1f28cddc2f0e}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+eprop} (size\+\_\+t \+\_\+idx)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_abe11bc2deb05aefaa240fbf3e01ae398}\label{classOpenMesh_1_1BaseKernel_abe11bc2deb05aefaa240fbf3e01ae398}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+hprop} (size\+\_\+t \+\_\+idx)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a97edcef5462701f5d4f0969933d26a47}\label{classOpenMesh_1_1BaseKernel_a97edcef5462701f5d4f0969933d26a47}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+fprop} (size\+\_\+t \+\_\+idx)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a65fe0c5411e37a170f42c3fc72aed5b7}\label{classOpenMesh_1_1BaseKernel_a65fe0c5411e37a170f42c3fc72aed5b7}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+mprop} (size\+\_\+t \+\_\+idx)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_adad1c4ab042e2c630ae3bb589d343e42}\label{classOpenMesh_1_1BaseKernel_adad1c4ab042e2c630ae3bb589d343e42}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+vprop} (size\+\_\+t \+\_\+idx) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aaa79e36fb57e2964579be76b622d0088}\label{classOpenMesh_1_1BaseKernel_aaa79e36fb57e2964579be76b622d0088}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+eprop} (size\+\_\+t \+\_\+idx) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a55dc2242adbe0a85ad40f188c57369ba}\label{classOpenMesh_1_1BaseKernel_a55dc2242adbe0a85ad40f188c57369ba}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+hprop} (size\+\_\+t \+\_\+idx) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a159e9150745d0133cd991ebfa8091e5b}\label{classOpenMesh_1_1BaseKernel_a159e9150745d0133cd991ebfa8091e5b}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+fprop} (size\+\_\+t \+\_\+idx) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a334013ec971a26035535f45e0b848e61}\label{classOpenMesh_1_1BaseKernel_a334013ec971a26035535f45e0b848e61}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+mprop} (size\+\_\+t \+\_\+idx) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a6da0e496d7fdf02d6ff422b23749387e}\label{classOpenMesh_1_1BaseKernel_a6da0e496d7fdf02d6ff422b23749387e}} 
size\+\_\+t {\bfseries \+\_\+add\+\_\+vprop} (\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$\+\_\+bp)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a23a3d6eb92083c204bf019482c580965}\label{classOpenMesh_1_1BaseKernel_a23a3d6eb92083c204bf019482c580965}} 
size\+\_\+t {\bfseries \+\_\+add\+\_\+eprop} (\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$\+\_\+bp)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a8da22d93a5c56826a8ab7892054a6cd2}\label{classOpenMesh_1_1BaseKernel_a8da22d93a5c56826a8ab7892054a6cd2}} 
size\+\_\+t {\bfseries \+\_\+add\+\_\+hprop} (\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$\+\_\+bp)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ae3cd9b1cb1eb5d3765340b727d7ec233}\label{classOpenMesh_1_1BaseKernel_ae3cd9b1cb1eb5d3765340b727d7ec233}} 
size\+\_\+t {\bfseries \+\_\+add\+\_\+fprop} (\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$\+\_\+bp)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ade78fbb39296eb156b34a2676f9a3e69}\label{classOpenMesh_1_1BaseKernel_ade78fbb39296eb156b34a2676f9a3e69}} 
size\+\_\+t {\bfseries \+\_\+add\+\_\+mprop} (\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} $\ast$\+\_\+bp)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a0b6fc481afe983baf60501d3df28edb9}\label{classOpenMesh_1_1BaseKernel_a0b6fc481afe983baf60501d3df28edb9}} 
virtual size\+\_\+t {\bfseries n\+\_\+vertices} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a4bb579e43bef7e7c5b90aa73974eff94}\label{classOpenMesh_1_1BaseKernel_a4bb579e43bef7e7c5b90aa73974eff94}} 
virtual size\+\_\+t {\bfseries n\+\_\+halfedges} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a76a8ae1cd626d74fa91293a45d2a1835}\label{classOpenMesh_1_1BaseKernel_a76a8ae1cd626d74fa91293a45d2a1835}} 
virtual size\+\_\+t {\bfseries n\+\_\+edges} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aac0409a0c6a0060036623295035e4008}\label{classOpenMesh_1_1BaseKernel_aac0409a0c6a0060036623295035e4008}} 
virtual size\+\_\+t {\bfseries n\+\_\+faces} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_afccfbfb47fbfabd67dd3c74d208b65f0}\label{classOpenMesh_1_1BaseKernel_afccfbfb47fbfabd67dd3c74d208b65f0}} 
{\footnotesize template$<$typename HandleT $>$ }\\size\+\_\+t {\bfseries n\+\_\+elements} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a8ae3ad59e9a9af6eba67bd2814cab38c}\label{classOpenMesh_1_1BaseKernel_a8ae3ad59e9a9af6eba67bd2814cab38c}} 
void {\bfseries property\+\_\+stats} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a5cfec2c7818b9ebf6f49dd29b35b5a3f}\label{classOpenMesh_1_1BaseKernel_a5cfec2c7818b9ebf6f49dd29b35b5a3f}} 
void {\bfseries property\+\_\+stats} (std\+::ostream \&\+\_\+ostr) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a6b009094487f28bdb760f98363068287}\label{classOpenMesh_1_1BaseKernel_a6b009094487f28bdb760f98363068287}} 
void {\bfseries vprop\+\_\+stats} (std\+::string \&\+\_\+string) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ad4053f9a7df63e5e5a8a072d218ad5bc}\label{classOpenMesh_1_1BaseKernel_ad4053f9a7df63e5e5a8a072d218ad5bc}} 
void {\bfseries hprop\+\_\+stats} (std\+::string \&\+\_\+string) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a8e3ba44803ec1441ae0c0202be59ad6c}\label{classOpenMesh_1_1BaseKernel_a8e3ba44803ec1441ae0c0202be59ad6c}} 
void {\bfseries eprop\+\_\+stats} (std\+::string \&\+\_\+string) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ada06ff901a1188a47c75cf477a76b4fa}\label{classOpenMesh_1_1BaseKernel_ada06ff901a1188a47c75cf477a76b4fa}} 
void {\bfseries fprop\+\_\+stats} (std\+::string \&\+\_\+string) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_abefc23fca88208b07c0c668460cf3618}\label{classOpenMesh_1_1BaseKernel_abefc23fca88208b07c0c668460cf3618}} 
void {\bfseries mprop\+\_\+stats} (std\+::string \&\+\_\+string) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a0aea426234107dd5079394c6413a4ce9}\label{classOpenMesh_1_1BaseKernel_a0aea426234107dd5079394c6413a4ce9}} 
void {\bfseries vprop\+\_\+stats} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a960e63463a75ac973b75de61e9404b37}\label{classOpenMesh_1_1BaseKernel_a960e63463a75ac973b75de61e9404b37}} 
void {\bfseries hprop\+\_\+stats} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a49a7c85c2ea866916df94c759f6349ce}\label{classOpenMesh_1_1BaseKernel_a49a7c85c2ea866916df94c759f6349ce}} 
void {\bfseries eprop\+\_\+stats} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a5e6cda02dae6175803d8934f6c465c0d}\label{classOpenMesh_1_1BaseKernel_a5e6cda02dae6175803d8934f6c465c0d}} 
void {\bfseries fprop\+\_\+stats} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_af173653137d8c742a3c0f33ad4b6e265}\label{classOpenMesh_1_1BaseKernel_af173653137d8c742a3c0f33ad4b6e265}} 
void {\bfseries mprop\+\_\+stats} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a387935b808c442303ae0b3a52ce6d8e0}\label{classOpenMesh_1_1BaseKernel_a387935b808c442303ae0b3a52ce6d8e0}} 
void {\bfseries vprop\+\_\+stats} (std\+::ostream \&\+\_\+ostr) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a4a058b09a8bfdd7a18083d8c84298d21}\label{classOpenMesh_1_1BaseKernel_a4a058b09a8bfdd7a18083d8c84298d21}} 
void {\bfseries hprop\+\_\+stats} (std\+::ostream \&\+\_\+ostr) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a3503ef62140a1b80eaae0536973283bf}\label{classOpenMesh_1_1BaseKernel_a3503ef62140a1b80eaae0536973283bf}} 
void {\bfseries eprop\+\_\+stats} (std\+::ostream \&\+\_\+ostr) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a4e9c30426754ad021df87e60124635ab}\label{classOpenMesh_1_1BaseKernel_a4e9c30426754ad021df87e60124635ab}} 
void {\bfseries fprop\+\_\+stats} (std\+::ostream \&\+\_\+ostr) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ac75a4c5c5f55e999393b7b55b283e17f}\label{classOpenMesh_1_1BaseKernel_ac75a4c5c5f55e999393b7b55b283e17f}} 
void {\bfseries mprop\+\_\+stats} (std\+::ostream \&\+\_\+ostr) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a250a0db26ad3b6c77c5d942225fdfd04}\label{classOpenMesh_1_1BaseKernel_a250a0db26ad3b6c77c5d942225fdfd04}} 
prop\+\_\+iterator {\bfseries vprops\+\_\+begin} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a143161c7df019f5b457e2ed3bc4d7a2f}\label{classOpenMesh_1_1BaseKernel_a143161c7df019f5b457e2ed3bc4d7a2f}} 
prop\+\_\+iterator {\bfseries vprops\+\_\+end} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a28619daa1aa231e3f68b51b8b3c268be}\label{classOpenMesh_1_1BaseKernel_a28619daa1aa231e3f68b51b8b3c268be}} 
const\+\_\+prop\+\_\+iterator {\bfseries vprops\+\_\+begin} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a553a37e961ecd15f52bbeed9ed528e30}\label{classOpenMesh_1_1BaseKernel_a553a37e961ecd15f52bbeed9ed528e30}} 
const\+\_\+prop\+\_\+iterator {\bfseries vprops\+\_\+end} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aa6801ed83552fe7f258ff4d76c11190b}\label{classOpenMesh_1_1BaseKernel_aa6801ed83552fe7f258ff4d76c11190b}} 
prop\+\_\+iterator {\bfseries eprops\+\_\+begin} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ac4b7694e0c3ef7fe7aa4804901dcb1c7}\label{classOpenMesh_1_1BaseKernel_ac4b7694e0c3ef7fe7aa4804901dcb1c7}} 
prop\+\_\+iterator {\bfseries eprops\+\_\+end} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a5efc3982f1d20485028a91889b2affba}\label{classOpenMesh_1_1BaseKernel_a5efc3982f1d20485028a91889b2affba}} 
const\+\_\+prop\+\_\+iterator {\bfseries eprops\+\_\+begin} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a8a92409542ce860133ec75a209047405}\label{classOpenMesh_1_1BaseKernel_a8a92409542ce860133ec75a209047405}} 
const\+\_\+prop\+\_\+iterator {\bfseries eprops\+\_\+end} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a3ca80eedfe84dd3b75a0307a97ab3483}\label{classOpenMesh_1_1BaseKernel_a3ca80eedfe84dd3b75a0307a97ab3483}} 
prop\+\_\+iterator {\bfseries hprops\+\_\+begin} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a2d60dfbd90250c379084e58675e3b1aa}\label{classOpenMesh_1_1BaseKernel_a2d60dfbd90250c379084e58675e3b1aa}} 
prop\+\_\+iterator {\bfseries hprops\+\_\+end} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a75baeab18b39bae4bed79ea82268dca6}\label{classOpenMesh_1_1BaseKernel_a75baeab18b39bae4bed79ea82268dca6}} 
const\+\_\+prop\+\_\+iterator {\bfseries hprops\+\_\+begin} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a7d1cd2bf01f3d2ade0ada224c80c8410}\label{classOpenMesh_1_1BaseKernel_a7d1cd2bf01f3d2ade0ada224c80c8410}} 
const\+\_\+prop\+\_\+iterator {\bfseries hprops\+\_\+end} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a810348c30d7d88a6d13396239a66770c}\label{classOpenMesh_1_1BaseKernel_a810348c30d7d88a6d13396239a66770c}} 
prop\+\_\+iterator {\bfseries fprops\+\_\+begin} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_afbed4b5b662e6d592317afae73ae549e}\label{classOpenMesh_1_1BaseKernel_afbed4b5b662e6d592317afae73ae549e}} 
prop\+\_\+iterator {\bfseries fprops\+\_\+end} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a99b2c17b1da271edbf8c47bfa4d2eb6b}\label{classOpenMesh_1_1BaseKernel_a99b2c17b1da271edbf8c47bfa4d2eb6b}} 
const\+\_\+prop\+\_\+iterator {\bfseries fprops\+\_\+begin} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a52246e2639332fbf30ff94efb0c8e215}\label{classOpenMesh_1_1BaseKernel_a52246e2639332fbf30ff94efb0c8e215}} 
const\+\_\+prop\+\_\+iterator {\bfseries fprops\+\_\+end} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a04b9396b09fa0c951a25c992c68467f3}\label{classOpenMesh_1_1BaseKernel_a04b9396b09fa0c951a25c992c68467f3}} 
prop\+\_\+iterator {\bfseries mprops\+\_\+begin} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a952cc5558e0257bfad8324018f12a7c1}\label{classOpenMesh_1_1BaseKernel_a952cc5558e0257bfad8324018f12a7c1}} 
prop\+\_\+iterator {\bfseries mprops\+\_\+end} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aead88261264631f40f418a1215c73a07}\label{classOpenMesh_1_1BaseKernel_aead88261264631f40f418a1215c73a07}} 
const\+\_\+prop\+\_\+iterator {\bfseries mprops\+\_\+begin} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aab3f50a65facbe55556a45664b21f7ec}\label{classOpenMesh_1_1BaseKernel_aab3f50a65facbe55556a45664b21f7ec}} 
const\+\_\+prop\+\_\+iterator {\bfseries mprops\+\_\+end} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ad4998cdbe8bf2a85998de18115718139}\label{classOpenMesh_1_1BaseKernel_ad4998cdbe8bf2a85998de18115718139}} 
{\footnotesize template$<$$>$ }\\size\+\_\+t {\bfseries n\+\_\+elements} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ad4998cdbe8bf2a85998de18115718139}\label{classOpenMesh_1_1BaseKernel_ad4998cdbe8bf2a85998de18115718139}} 
{\footnotesize template$<$$>$ }\\size\+\_\+t {\bfseries n\+\_\+elements} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ad4998cdbe8bf2a85998de18115718139}\label{classOpenMesh_1_1BaseKernel_ad4998cdbe8bf2a85998de18115718139}} 
{\footnotesize template$<$$>$ }\\size\+\_\+t {\bfseries n\+\_\+elements} () const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ad4998cdbe8bf2a85998de18115718139}\label{classOpenMesh_1_1BaseKernel_ad4998cdbe8bf2a85998de18115718139}} 
{\footnotesize template$<$$>$ }\\size\+\_\+t {\bfseries n\+\_\+elements} () const
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Add a property to a mesh item}\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_a9930247356671a0ce4ceaef29b3c1a23}{add\+\_\+property} (\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name=\char`\"{}$<$vprop$>$\char`\"{})
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_ae5f70a08d5f10b464847ce2b60074f98}{add\+\_\+property} (\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name=\char`\"{}$<$hprop$>$\char`\"{})
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_af45115b38d63fa76a8224bbab11106f8}{add\+\_\+property} (\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name=\char`\"{}$<$eprop$>$\char`\"{})
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_ae4198ef048f05f50604492532d40c608}{add\+\_\+property} (\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name=\char`\"{}$<$fprop$>$\char`\"{})
\item 
{\footnotesize template$<$class T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_a20fb6fd47031cf5cc337fadc9cf163a6}{add\+\_\+property} (\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name=\char`\"{}$<$mprop$>$\char`\"{})
\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Removing a property from a mesh tiem}\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_a1e6ab3a90a233ced3fef7a1575766c17}{remove\+\_\+property} (\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph)
\item 
{\footnotesize template$<$typename T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_a4dc56cf217a1a58782a5c65d8d590710}{remove\+\_\+property} (\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph)
\item 
{\footnotesize template$<$typename T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_a0d525d1badf6c1dd6765630f1966b303}{remove\+\_\+property} (\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph)
\item 
{\footnotesize template$<$typename T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_a6454b0639cd0d6768392237359f25829}{remove\+\_\+property} (\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph)
\item 
{\footnotesize template$<$typename T $>$ }\\void \hyperlink{classOpenMesh_1_1BaseKernel_aceeae93f3f0a51cd2323148fcbe7eed0}{remove\+\_\+property} (\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph)
\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Get property handle by name}\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class T $>$ }\\bool \hyperlink{classOpenMesh_1_1BaseKernel_abf5af584fc22471b32461eeef7d5b3d4}{get\+\_\+property\+\_\+handle} (\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name) const
\item 
{\footnotesize template$<$class T $>$ }\\bool \hyperlink{classOpenMesh_1_1BaseKernel_a1922ea04fdfb10788bc119ec2782cbb4}{get\+\_\+property\+\_\+handle} (\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name) const
\item 
{\footnotesize template$<$class T $>$ }\\bool \hyperlink{classOpenMesh_1_1BaseKernel_a1d09a6f42deeac432cbfb51cc7a4c801}{get\+\_\+property\+\_\+handle} (\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name) const
\item 
{\footnotesize template$<$class T $>$ }\\bool \hyperlink{classOpenMesh_1_1BaseKernel_ac36ff1e5fe4802518298c893a278d5eb}{get\+\_\+property\+\_\+handle} (\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name) const
\item 
{\footnotesize template$<$class T $>$ }\\bool \hyperlink{classOpenMesh_1_1BaseKernel_a889abbfc81cc37f4662948032f9f6fe1}{get\+\_\+property\+\_\+handle} (\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \&\+\_\+ph, const std\+::string \&\+\_\+name) const
\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Access a property}\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_a2e2f14b6f08ae63173594555e0c94d57}{property} (\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \+\_\+ph)
\item 
{\footnotesize template$<$class T $>$ }\\const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_afb0fd968e3aa843556d512869c456669}{property} (\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \+\_\+ph) const
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_ac01aad67d28b841a377f06308511f17f}{property} (\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \+\_\+ph)
\item 
{\footnotesize template$<$class T $>$ }\\const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_a7cdc5f01e8292a63c6b8f5058784fd35}{property} (\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \+\_\+ph) const
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_aa8e3d10bd972dfb048b65ff361895eb9}{property} (\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \+\_\+ph)
\item 
{\footnotesize template$<$class T $>$ }\\const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_a3105610ad1af73c470d2e6c96026d57e}{property} (\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \+\_\+ph) const
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_a17aa4c33b2aa3ab9c522134b5451e986}{property} (\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \+\_\+ph)
\item 
{\footnotesize template$<$class T $>$ }\\const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_a8997cf83b3d7a14f1ca4770c576a9cb0}{property} (\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \+\_\+ph) const
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_a8256c16bf247547ae480344cd1c2ec2b}{mproperty} (\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \+\_\+ph)
\item 
{\footnotesize template$<$class T $>$ }\\const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$ T $>$ \& \hyperlink{classOpenMesh_1_1BaseKernel_a5eb6ddf1378f0203ca0b953a88119ed8}{mproperty} (\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \+\_\+ph) const
\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Access a property element using a handle to a mesh item}\par
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$\+::reference \hyperlink{classOpenMesh_1_1BaseKernel_a788712239e2f3e298be65a61939e6db7}{property} (\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh)
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$\+::const\+\_\+reference \hyperlink{classOpenMesh_1_1BaseKernel_aba2ef97b15a30ee7f5abb7a2dbd4f693}{property} (\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle} \+\_\+vh) const
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$\+::reference \hyperlink{classOpenMesh_1_1BaseKernel_aa308e3bd23356b6f90f3ea387a92e722}{property} (\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+hh)
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$\+::const\+\_\+reference \hyperlink{classOpenMesh_1_1BaseKernel_ac04ad9eb13ebc80fb3bcdf7ccfd6fd14}{property} (\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle} \+\_\+hh) const
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$\+::reference \hyperlink{classOpenMesh_1_1BaseKernel_a5d18c51ef506fb387a4cc8b4109b63f4}{property} (\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh)
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$\+::const\+\_\+reference \hyperlink{classOpenMesh_1_1BaseKernel_a184f428927068f5bf3a7ffc5b108d9dc}{property} (\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle} \+\_\+eh) const
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$\+::reference \hyperlink{classOpenMesh_1_1BaseKernel_a0a8c6cd2231f181de1d8a899f0018669}{property} (\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle} \+\_\+fh)
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$\+::const\+\_\+reference \hyperlink{classOpenMesh_1_1BaseKernel_ace3c48c883a84e00cc30a3dc96b4b35b}{property} (\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \+\_\+ph, \hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle} \+\_\+fh) const
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$\+::reference \hyperlink{classOpenMesh_1_1BaseKernel_a6212f4adf43f5d0db4cfeba208aa3936}{property} (\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \+\_\+ph)
\item 
{\footnotesize template$<$class T $>$ }\\\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$\+::const\+\_\+reference \hyperlink{classOpenMesh_1_1BaseKernel_a26ff15e6403c54a0a6dcef7ab29f01e6}{property} (\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \+\_\+ph) const
\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aaefc620a9935d5043366ab8eddbabbbb}\label{classOpenMesh_1_1BaseKernel_aaefc620a9935d5043366ab8eddbabbbb}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+vprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a77287e81a4ea3023e99c873ed1da2328}\label{classOpenMesh_1_1BaseKernel_a77287e81a4ea3023e99c873ed1da2328}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+eprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a34070eba18aa15de41ab962e9f5c02d0}\label{classOpenMesh_1_1BaseKernel_a34070eba18aa15de41ab962e9f5c02d0}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+hprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a2318a162448fc1eb741a34911e65234a}\label{classOpenMesh_1_1BaseKernel_a2318a162448fc1eb741a34911e65234a}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+fprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a785279cdd11415d5eb0618d815fa777e}\label{classOpenMesh_1_1BaseKernel_a785279cdd11415d5eb0618d815fa777e}} 
\hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+mprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h)
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a0d80d11fa3127d38968ce3a84ef07265}\label{classOpenMesh_1_1BaseKernel_a0d80d11fa3127d38968ce3a84ef07265}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+vprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a678d135e3b64fd6ab505a7da0a876c09}\label{classOpenMesh_1_1BaseKernel_a678d135e3b64fd6ab505a7da0a876c09}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+eprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aeca62a96e3f1c3198080970c5c2fd163}\label{classOpenMesh_1_1BaseKernel_aeca62a96e3f1c3198080970c5c2fd163}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+hprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a1d4af04e14cbf5e16c7e3cb945db6c94}\label{classOpenMesh_1_1BaseKernel_a1d4af04e14cbf5e16c7e3cb945db6c94}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+fprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a4c9bd4b367a5949e131a3a1fb0e7c39d}\label{classOpenMesh_1_1BaseKernel_a4c9bd4b367a5949e131a3a1fb0e7c39d}} 
const \hyperlink{classOpenMesh_1_1BaseProperty}{Base\+Property} \& {\bfseries \+\_\+mprop} (\hyperlink{classOpenMesh_1_1BaseHandle}{Base\+Handle} \+\_\+h) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a7c1f79021e411d94896e2fb04a1409df}\label{classOpenMesh_1_1BaseKernel_a7c1f79021e411d94896e2fb04a1409df}} 
void \hyperlink{classOpenMesh_1_1BaseKernel_a7c1f79021e411d94896e2fb04a1409df}{vprops\+\_\+reserve} (size\+\_\+t \+\_\+n) const
\begin{DoxyCompactList}\small\item\em Reserves space for {\ttfamily \+\_\+n} elements in all vertex property vectors. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ae4577ecec699960f2f8fd115ea7c588c}\label{classOpenMesh_1_1BaseKernel_ae4577ecec699960f2f8fd115ea7c588c}} 
void \hyperlink{classOpenMesh_1_1BaseKernel_ae4577ecec699960f2f8fd115ea7c588c}{vprops\+\_\+resize} (size\+\_\+t \+\_\+n) const
\begin{DoxyCompactList}\small\item\em Resizes all vertex property vectors to the specified size. \end{DoxyCompactList}\item 
void \hyperlink{classOpenMesh_1_1BaseKernel_a6124c80044fb0225e758bf8d15492af0}{vprops\+\_\+resize\+\_\+if\+\_\+smaller} (size\+\_\+t \+\_\+n) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a021928ea6c770f28ba684003fd9eaf89}\label{classOpenMesh_1_1BaseKernel_a021928ea6c770f28ba684003fd9eaf89}} 
void {\bfseries vprops\+\_\+clear} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a2aaf2ffb73466a0f1ec7e7be3a0d72d8}\label{classOpenMesh_1_1BaseKernel_a2aaf2ffb73466a0f1ec7e7be3a0d72d8}} 
void {\bfseries vprops\+\_\+swap} (unsigned int \+\_\+i0, unsigned int \+\_\+i1) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ade47f0cc39a1772debc9d6673af724e1}\label{classOpenMesh_1_1BaseKernel_ade47f0cc39a1772debc9d6673af724e1}} 
void {\bfseries hprops\+\_\+reserve} (size\+\_\+t \+\_\+n) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a52ec67c1aec40d58e0cbcc76e6c439f7}\label{classOpenMesh_1_1BaseKernel_a52ec67c1aec40d58e0cbcc76e6c439f7}} 
void {\bfseries hprops\+\_\+resize} (size\+\_\+t \+\_\+n) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a052a0b3932376df7f470197c17db45a5}\label{classOpenMesh_1_1BaseKernel_a052a0b3932376df7f470197c17db45a5}} 
void {\bfseries hprops\+\_\+clear} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a854912700a93900c2e87c9111e98d373}\label{classOpenMesh_1_1BaseKernel_a854912700a93900c2e87c9111e98d373}} 
void {\bfseries hprops\+\_\+swap} (unsigned int \+\_\+i0, unsigned int \+\_\+i1) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ae92d07ddc0a8fa7fab3ccb3d8d9fb5d6}\label{classOpenMesh_1_1BaseKernel_ae92d07ddc0a8fa7fab3ccb3d8d9fb5d6}} 
void {\bfseries eprops\+\_\+reserve} (size\+\_\+t \+\_\+n) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aabf459611b0a90796856d10dee3c0f48}\label{classOpenMesh_1_1BaseKernel_aabf459611b0a90796856d10dee3c0f48}} 
void {\bfseries eprops\+\_\+resize} (size\+\_\+t \+\_\+n) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ad0c5cbbca8314f6aab11494a2ed250fe}\label{classOpenMesh_1_1BaseKernel_ad0c5cbbca8314f6aab11494a2ed250fe}} 
void {\bfseries eprops\+\_\+clear} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a293ce68e33c923ff92794b8fd12103da}\label{classOpenMesh_1_1BaseKernel_a293ce68e33c923ff92794b8fd12103da}} 
void {\bfseries eprops\+\_\+swap} (unsigned int \+\_\+i0, unsigned int \+\_\+i1) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ab6a95b2cdf3a7e83a4ab9a5e19bb9d81}\label{classOpenMesh_1_1BaseKernel_ab6a95b2cdf3a7e83a4ab9a5e19bb9d81}} 
void {\bfseries fprops\+\_\+reserve} (size\+\_\+t \+\_\+n) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a8d87a3ad09a5ef06e65dd301346e4eb2}\label{classOpenMesh_1_1BaseKernel_a8d87a3ad09a5ef06e65dd301346e4eb2}} 
void {\bfseries fprops\+\_\+resize} (size\+\_\+t \+\_\+n) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a68a6a66bde10be861d5178086ae32794}\label{classOpenMesh_1_1BaseKernel_a68a6a66bde10be861d5178086ae32794}} 
void {\bfseries fprops\+\_\+clear} ()
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_abf2c26cf51a2a4793463ccc2bfbbac7f}\label{classOpenMesh_1_1BaseKernel_abf2c26cf51a2a4793463ccc2bfbbac7f}} 
void {\bfseries fprops\+\_\+swap} (unsigned int \+\_\+i0, unsigned int \+\_\+i1) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_adaa75abfbf0bc3274eeca35ac38fd9ed}\label{classOpenMesh_1_1BaseKernel_adaa75abfbf0bc3274eeca35ac38fd9ed}} 
void {\bfseries mprops\+\_\+resize} (size\+\_\+t \+\_\+n) const
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aa9c6aae4ea0c7f69460cda72e5071d8e}\label{classOpenMesh_1_1BaseKernel_aa9c6aae4ea0c7f69460cda72e5071d8e}} 
void {\bfseries mprops\+\_\+clear} ()
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_af385802f33a73380fb72fd5ad4d30fc2}\label{classOpenMesh_1_1BaseKernel_af385802f33a73380fb72fd5ad4d30fc2}} 
\hyperlink{classOpenMesh_1_1PropertyContainer}{Property\+Container} {\bfseries vprops\+\_\+}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ae21dff031556ec6444d7f179e9ccec40}\label{classOpenMesh_1_1BaseKernel_ae21dff031556ec6444d7f179e9ccec40}} 
\hyperlink{classOpenMesh_1_1PropertyContainer}{Property\+Container} {\bfseries hprops\+\_\+}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a7467b3e188cd12bb22756139958166ed}\label{classOpenMesh_1_1BaseKernel_a7467b3e188cd12bb22756139958166ed}} 
\hyperlink{classOpenMesh_1_1PropertyContainer}{Property\+Container} {\bfseries eprops\+\_\+}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a1003262537f4b0b69c9a5d3afa87f46e}\label{classOpenMesh_1_1BaseKernel_a1003262537f4b0b69c9a5d3afa87f46e}} 
\hyperlink{classOpenMesh_1_1PropertyContainer}{Property\+Container} {\bfseries fprops\+\_\+}
\item 
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aa87e622b84f968751cbec9df8d623bd3}\label{classOpenMesh_1_1BaseKernel_aa87e622b84f968751cbec9df8d623bd3}} 
\hyperlink{classOpenMesh_1_1PropertyContainer}{Property\+Container} {\bfseries mprops\+\_\+}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This class provides low-\/level property management like adding/removing properties and access to properties. Under most circumstances, it is advisable to use the high-\/level property management provided by \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager}, instead.

All operations provided by Base\+Kernel need at least a property handle (\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}, \hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}, \hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}, \hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}, \hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}). which keeps the data type of the property, too.

There are two types of properties\+:
\begin{DoxyEnumerate}
\item Standard properties -\/ mesh data (e.\+g. vertex normal or face color)
\item Custom properties -\/ user defined data
\end{DoxyEnumerate}

The differentiation is only semantically, technically both are equally handled. Therefore the methods provided by the Base\+Kernel are applicable to both property types.

\begin{DoxyAttention}{Attention}
Since the class \hyperlink{classOpenMesh_1_1PolyMeshT}{Poly\+MeshT} derives from a kernel, hence all public elements of Base\+Kernel are usable. 
\end{DoxyAttention}


Definition at line 97 of file Base\+Kernel.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a9930247356671a0ce4ceaef29b3c1a23}\label{classOpenMesh_1_1BaseKernel_a9930247356671a0ce4ceaef29b3c1a23}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!add\+\_\+property@{add\+\_\+property}}
\index{add\+\_\+property@{add\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{add\+\_\+property()}{add\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::add\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name = {\ttfamily \char`\"{}$<$vprop$>$\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and/or one of its helper functions such as make\+Property\+Manager\+From\+New, make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Adds a property

Depending on the property handle type a vertex, (half-\/)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with \hyperlink{classOpenMesh_1_1BaseKernel_a2e2f14b6f08ae63173594555e0c94d57}{property()}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Optional name of property. Following restrictions apply to the name\+:
\begin{DoxyEnumerate}
\item Maximum length of name is 256 characters
\item The prefixes matching \char`\"{}$^\wedge$\mbox{[}vhefm\mbox{]}\+:\char`\"{} are reserved for internal usage.
\item The expression \char`\"{}$^\wedge$$<$.$\ast$$>$\$\char`\"{} is reserved for internal usage. 
\end{DoxyEnumerate}\\
\hline
\end{DoxyParams}


Definition at line 141 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ae5f70a08d5f10b464847ce2b60074f98}\label{classOpenMesh_1_1BaseKernel_ae5f70a08d5f10b464847ce2b60074f98}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!add\+\_\+property@{add\+\_\+property}}
\index{add\+\_\+property@{add\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{add\+\_\+property()}{add\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::add\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name = {\ttfamily \char`\"{}$<$hprop$>$\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and/or one of its helper functions such as make\+Property\+Manager\+From\+New, make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Adds a property

Depending on the property handle type a vertex, (half-\/)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with \hyperlink{classOpenMesh_1_1BaseKernel_a2e2f14b6f08ae63173594555e0c94d57}{property()}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Optional name of property. Following restrictions apply to the name\+:
\begin{DoxyEnumerate}
\item Maximum length of name is 256 characters
\item The prefixes matching \char`\"{}$^\wedge$\mbox{[}vhefm\mbox{]}\+:\char`\"{} are reserved for internal usage.
\item The expression \char`\"{}$^\wedge$$<$.$\ast$$>$\$\char`\"{} is reserved for internal usage. 
\end{DoxyEnumerate}\\
\hline
\end{DoxyParams}


Definition at line 148 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_af45115b38d63fa76a8224bbab11106f8}\label{classOpenMesh_1_1BaseKernel_af45115b38d63fa76a8224bbab11106f8}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!add\+\_\+property@{add\+\_\+property}}
\index{add\+\_\+property@{add\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{add\+\_\+property()}{add\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::add\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name = {\ttfamily \char`\"{}$<$eprop$>$\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and/or one of its helper functions such as make\+Property\+Manager\+From\+New, make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Adds a property

Depending on the property handle type a vertex, (half-\/)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with \hyperlink{classOpenMesh_1_1BaseKernel_a2e2f14b6f08ae63173594555e0c94d57}{property()}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Optional name of property. Following restrictions apply to the name\+:
\begin{DoxyEnumerate}
\item Maximum length of name is 256 characters
\item The prefixes matching \char`\"{}$^\wedge$\mbox{[}vhefm\mbox{]}\+:\char`\"{} are reserved for internal usage.
\item The expression \char`\"{}$^\wedge$$<$.$\ast$$>$\$\char`\"{} is reserved for internal usage. 
\end{DoxyEnumerate}\\
\hline
\end{DoxyParams}


Definition at line 155 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ae4198ef048f05f50604492532d40c608}\label{classOpenMesh_1_1BaseKernel_ae4198ef048f05f50604492532d40c608}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!add\+\_\+property@{add\+\_\+property}}
\index{add\+\_\+property@{add\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{add\+\_\+property()}{add\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::add\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name = {\ttfamily \char`\"{}$<$fprop$>$\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and/or one of its helper functions such as make\+Property\+Manager\+From\+New, make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Adds a property

Depending on the property handle type a vertex, (half-\/)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with \hyperlink{classOpenMesh_1_1BaseKernel_a2e2f14b6f08ae63173594555e0c94d57}{property()}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Optional name of property. Following restrictions apply to the name\+:
\begin{DoxyEnumerate}
\item Maximum length of name is 256 characters
\item The prefixes matching \char`\"{}$^\wedge$\mbox{[}vhefm\mbox{]}\+:\char`\"{} are reserved for internal usage.
\item The expression \char`\"{}$^\wedge$$<$.$\ast$$>$\$\char`\"{} is reserved for internal usage. 
\end{DoxyEnumerate}\\
\hline
\end{DoxyParams}


Definition at line 162 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a20fb6fd47031cf5cc337fadc9cf163a6}\label{classOpenMesh_1_1BaseKernel_a20fb6fd47031cf5cc337fadc9cf163a6}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!add\+\_\+property@{add\+\_\+property}}
\index{add\+\_\+property@{add\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{add\+\_\+property()}{add\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::add\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name = {\ttfamily \char`\"{}$<$mprop$>$\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and/or one of its helper functions such as make\+Property\+Manager\+From\+New, make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Adds a property

Depending on the property handle type a vertex, (half-\/)edge, face or mesh property is added to the mesh. If the action fails the handle is invalid. On success the handle must be used to access the property data with \hyperlink{classOpenMesh_1_1BaseKernel_a2e2f14b6f08ae63173594555e0c94d57}{property()}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle defining the data type to bind to mesh. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Optional name of property. Following restrictions apply to the name\+:
\begin{DoxyEnumerate}
\item Maximum length of name is 256 characters
\item The prefixes matching \char`\"{}$^\wedge$\mbox{[}vhefm\mbox{]}\+:\char`\"{} are reserved for internal usage.
\item The expression \char`\"{}$^\wedge$$<$.$\ast$$>$\$\char`\"{} is reserved for internal usage. 
\end{DoxyEnumerate}\\
\hline
\end{DoxyParams}


Definition at line 169 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a675e3892d2896de654321d8ad7c0a178}\label{classOpenMesh_1_1BaseKernel_a675e3892d2896de654321d8ad7c0a178}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!copy\+\_\+all\+\_\+kernel\+\_\+properties@{copy\+\_\+all\+\_\+kernel\+\_\+properties}}
\index{copy\+\_\+all\+\_\+kernel\+\_\+properties@{copy\+\_\+all\+\_\+kernel\+\_\+properties}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{copy\+\_\+all\+\_\+kernel\+\_\+properties()}{copy\_all\_kernel\_properties()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Base\+Kernel\+::copy\+\_\+all\+\_\+kernel\+\_\+properties (\begin{DoxyParamCaption}\item[{const \hyperlink{classOpenMesh_1_1BaseKernel}{Base\+Kernel} \&}]{\+\_\+other }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



copy\+\_\+all\+\_\+kernel\+\_\+properties uses the = operator to copy all properties from a given other \hyperlink{classOpenMesh_1_1BaseKernel}{Base\+Kernel}. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+other} & Another \hyperlink{classOpenMesh_1_1BaseKernel}{Base\+Kernel}, to copy the properties from. \\
\hline
\end{DoxyParams}


Definition at line 585 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ab1b8cb02dfc4544f2762de962a2ce7ad}\label{classOpenMesh_1_1BaseKernel_ab1b8cb02dfc4544f2762de962a2ce7ad}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!copy\+\_\+all\+\_\+properties@{copy\+\_\+all\+\_\+properties}}
\index{copy\+\_\+all\+\_\+properties@{copy\+\_\+all\+\_\+properties}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{copy\+\_\+all\+\_\+properties()}{copy\_all\_properties()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Base\+Kernel\+::copy\+\_\+all\+\_\+properties (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh\+\_\+from,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh\+\_\+to,  }\item[{bool}]{\+\_\+copy\+Build\+In = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Copies all properties from one mesh element to another (of the same type)


\begin{DoxyParams}{Parameters}
{\em \+\_\+vh\+\_\+from} & A vertex handle -\/ source \\
\hline
{\em \+\_\+vh\+\_\+to} & A vertex handle -\/ target \\
\hline
{\em \+\_\+copy\+Build\+In} & Should the internal properties (position, normal, texture coordinate,..) be copied? \\
\hline
\end{DoxyParams}


Definition at line 511 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_abc7d6ef07804e9fa51acd045f44404ef}\label{classOpenMesh_1_1BaseKernel_abc7d6ef07804e9fa51acd045f44404ef}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!copy\+\_\+all\+\_\+properties@{copy\+\_\+all\+\_\+properties}}
\index{copy\+\_\+all\+\_\+properties@{copy\+\_\+all\+\_\+properties}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{copy\+\_\+all\+\_\+properties()}{copy\_all\_properties()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Base\+Kernel\+::copy\+\_\+all\+\_\+properties (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle}}]{\+\_\+hh\+\_\+from,  }\item[{\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle}}]{\+\_\+hh\+\_\+to,  }\item[{bool}]{\+\_\+copy\+Build\+In = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Copies all properties from one mesh element to another (of the same type)


\begin{DoxyParams}{Parameters}
{\em \+\_\+hh\+\_\+from} & A halfedge handle -\/ source \\
\hline
{\em \+\_\+hh\+\_\+to} & A halfedge handle -\/ target \\
\hline
{\em \+\_\+copy\+Build\+In} & Should the internal properties (position, normal, texture coordinate,..) be copied? \\
\hline
\end{DoxyParams}


Definition at line 530 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a677c217fd4439461dd3ecec6575040d3}\label{classOpenMesh_1_1BaseKernel_a677c217fd4439461dd3ecec6575040d3}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!copy\+\_\+all\+\_\+properties@{copy\+\_\+all\+\_\+properties}}
\index{copy\+\_\+all\+\_\+properties@{copy\+\_\+all\+\_\+properties}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{copy\+\_\+all\+\_\+properties()}{copy\_all\_properties()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Base\+Kernel\+::copy\+\_\+all\+\_\+properties (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh\+\_\+from,  }\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh\+\_\+to,  }\item[{bool}]{\+\_\+copy\+Build\+In = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Copies all properties from one mesh element to another (of the same type)


\begin{DoxyParams}{Parameters}
{\em \+\_\+eh\+\_\+from} & An edge handle -\/ source \\
\hline
{\em \+\_\+eh\+\_\+to} & An edge handle -\/ target \\
\hline
{\em \+\_\+copy\+Build\+In} & Should the internal properties (position, normal, texture coordinate,..) be copied? \\
\hline
\end{DoxyParams}


Definition at line 549 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a82c6c4245ef28da6973ccde436121ef3}\label{classOpenMesh_1_1BaseKernel_a82c6c4245ef28da6973ccde436121ef3}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!copy\+\_\+all\+\_\+properties@{copy\+\_\+all\+\_\+properties}}
\index{copy\+\_\+all\+\_\+properties@{copy\+\_\+all\+\_\+properties}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{copy\+\_\+all\+\_\+properties()}{copy\_all\_properties()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Base\+Kernel\+::copy\+\_\+all\+\_\+properties (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle}}]{\+\_\+fh\+\_\+from,  }\item[{\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle}}]{\+\_\+fh\+\_\+to,  }\item[{bool}]{\+\_\+copy\+Build\+In = {\ttfamily false} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

Copies all properties from one mesh element to another (of the same type)


\begin{DoxyParams}{Parameters}
{\em \+\_\+fh\+\_\+from} & A face handle -\/ source \\
\hline
{\em \+\_\+fh\+\_\+to} & A face handle -\/ target \\
\hline
{\em \+\_\+copy\+Build\+In} & Should the internal properties (position, normal, texture coordinate,..) be copied? \\
\hline
\end{DoxyParams}


Definition at line 568 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ae9277cd8341a7025951c3edd4961afef}\label{classOpenMesh_1_1BaseKernel_ae9277cd8341a7025951c3edd4961afef}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!copy\+\_\+property@{copy\+\_\+property}}
\index{copy\+\_\+property@{copy\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{copy\+\_\+property()}{copy\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::copy\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh\+\_\+from,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh\+\_\+to }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper (e.\+g. \hyperlink{classOpenMesh_1_1PropertyManager_adcbed3201fe66c0764c26d0a44724af1}{Property\+Manager\+::copy\+\_\+to} or \hyperlink{classOpenMesh_1_1PropertyManager_a905436f2131ac5811ad43400fb20fb54}{Property\+Manager\+::copy}).

Copies a single property from one mesh element to another (of the same type)


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A vertex property handle \\
\hline
{\em \+\_\+vh\+\_\+from} & From vertex handle \\
\hline
{\em \+\_\+vh\+\_\+to} & To vertex handle \\
\hline
\end{DoxyParams}


Definition at line 447 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_afc29ef76edcd1f2bfe0cea4ad3e5f1cd}\label{classOpenMesh_1_1BaseKernel_afc29ef76edcd1f2bfe0cea4ad3e5f1cd}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!copy\+\_\+property@{copy\+\_\+property}}
\index{copy\+\_\+property@{copy\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{copy\+\_\+property()}{copy\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::copy\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle}}]{\+\_\+hh\+\_\+from,  }\item[{\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle}}]{\+\_\+hh\+\_\+to }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper (e.\+g. \hyperlink{classOpenMesh_1_1PropertyManager_adcbed3201fe66c0764c26d0a44724af1}{Property\+Manager\+::copy\+\_\+to} or \hyperlink{classOpenMesh_1_1PropertyManager_a905436f2131ac5811ad43400fb20fb54}{Property\+Manager\+::copy}).

Copies a single property from one mesh element to another (of the same type)


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A halfedge property handle \\
\hline
{\em \+\_\+hh\+\_\+from} & From halfedge handle \\
\hline
{\em \+\_\+hh\+\_\+to} & To halfedge handle \\
\hline
\end{DoxyParams}


Definition at line 463 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a4b5fa77467c7d165a63445b899b44c63}\label{classOpenMesh_1_1BaseKernel_a4b5fa77467c7d165a63445b899b44c63}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!copy\+\_\+property@{copy\+\_\+property}}
\index{copy\+\_\+property@{copy\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{copy\+\_\+property()}{copy\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::copy\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh\+\_\+from,  }\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh\+\_\+to }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper (e.\+g. \hyperlink{classOpenMesh_1_1PropertyManager_adcbed3201fe66c0764c26d0a44724af1}{Property\+Manager\+::copy\+\_\+to} or \hyperlink{classOpenMesh_1_1PropertyManager_a905436f2131ac5811ad43400fb20fb54}{Property\+Manager\+::copy}).

Copies a single property from one mesh element to another (of the same type)


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & An edge property handle \\
\hline
{\em \+\_\+eh\+\_\+from} & From edge handle \\
\hline
{\em \+\_\+eh\+\_\+to} & To edge handle \\
\hline
\end{DoxyParams}


Definition at line 479 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_af1f118544aefd742f86780d61394522b}\label{classOpenMesh_1_1BaseKernel_af1f118544aefd742f86780d61394522b}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!copy\+\_\+property@{copy\+\_\+property}}
\index{copy\+\_\+property@{copy\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{copy\+\_\+property()}{copy\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::copy\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle}}]{\+\_\+fh\+\_\+from,  }\item[{\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle}}]{\+\_\+fh\+\_\+to }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper (e.\+g. \hyperlink{classOpenMesh_1_1PropertyManager_adcbed3201fe66c0764c26d0a44724af1}{Property\+Manager\+::copy\+\_\+to} or \hyperlink{classOpenMesh_1_1PropertyManager_a905436f2131ac5811ad43400fb20fb54}{Property\+Manager\+::copy}).

Copies a single property from one mesh element to another (of the same type)


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A face property handle \\
\hline
{\em \+\_\+fh\+\_\+from} & From face handle \\
\hline
{\em \+\_\+fh\+\_\+to} & To face handle \\
\hline
\end{DoxyParams}


Definition at line 495 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_abf5af584fc22471b32461eeef7d5b3d4}\label{classOpenMesh_1_1BaseKernel_abf5af584fc22471b32461eeef7d5b3d4}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}}
\index{get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{get\+\_\+property\+\_\+handle()}{get\_property\_handle()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
bool Open\+Mesh\+::\+Base\+Kernel\+::get\+\_\+property\+\_\+handle (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper (e.\+g. Property\+Manager\+::property\+Exists) or one of its higher level helper functions such as make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Retrieves the handle to a named property by it\textquotesingle{}s name.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Name of wanted property. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if such a named property is available, else {\ttfamily false}. 
\end{DoxyReturn}


Definition at line 254 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a1922ea04fdfb10788bc119ec2782cbb4}\label{classOpenMesh_1_1BaseKernel_a1922ea04fdfb10788bc119ec2782cbb4}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}}
\index{get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{get\+\_\+property\+\_\+handle()}{get\_property\_handle()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
bool Open\+Mesh\+::\+Base\+Kernel\+::get\+\_\+property\+\_\+handle (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper (e.\+g. Property\+Manager\+::property\+Exists) or one of its higher level helper functions such as make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Retrieves the handle to a named property by it\textquotesingle{}s name.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Name of wanted property. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if such a named property is available, else {\ttfamily false}. 
\end{DoxyReturn}


Definition at line 261 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a1d09a6f42deeac432cbfb51cc7a4c801}\label{classOpenMesh_1_1BaseKernel_a1d09a6f42deeac432cbfb51cc7a4c801}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}}
\index{get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{get\+\_\+property\+\_\+handle()}{get\_property\_handle()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
bool Open\+Mesh\+::\+Base\+Kernel\+::get\+\_\+property\+\_\+handle (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper (e.\+g. Property\+Manager\+::property\+Exists) or one of its higher level helper functions such as make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Retrieves the handle to a named property by it\textquotesingle{}s name.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Name of wanted property. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if such a named property is available, else {\ttfamily false}. 
\end{DoxyReturn}


Definition at line 268 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ac36ff1e5fe4802518298c893a278d5eb}\label{classOpenMesh_1_1BaseKernel_ac36ff1e5fe4802518298c893a278d5eb}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}}
\index{get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{get\+\_\+property\+\_\+handle()}{get\_property\_handle()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
bool Open\+Mesh\+::\+Base\+Kernel\+::get\+\_\+property\+\_\+handle (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper (e.\+g. Property\+Manager\+::property\+Exists) or one of its higher level helper functions such as make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Retrieves the handle to a named property by it\textquotesingle{}s name.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Name of wanted property. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if such a named property is available, else {\ttfamily false}. 
\end{DoxyReturn}


Definition at line 275 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a889abbfc81cc37f4662948032f9f6fe1}\label{classOpenMesh_1_1BaseKernel_a889abbfc81cc37f4662948032f9f6fe1}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}}
\index{get\+\_\+property\+\_\+handle@{get\+\_\+property\+\_\+handle}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{get\+\_\+property\+\_\+handle()}{get\_property\_handle()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
bool Open\+Mesh\+::\+Base\+Kernel\+::get\+\_\+property\+\_\+handle (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph,  }\item[{const std\+::string \&}]{\+\_\+name }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper (e.\+g. Property\+Manager\+::property\+Exists) or one of its higher level helper functions such as make\+Property\+Manager\+From\+Existing, or make\+Property\+Manager\+From\+Existing\+Or\+New.

Retrieves the handle to a named property by it\textquotesingle{}s name.


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A property handle. On success the handle is valid else invalid. \\
\hline
{\em \+\_\+name} & Name of wanted property. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if such a named property is available, else {\ttfamily false}. 
\end{DoxyReturn}


Definition at line 282 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a8256c16bf247547ae480344cd1c2ec2b}\label{classOpenMesh_1_1BaseKernel_a8256c16bf247547ae480344cd1c2ec2b}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!mproperty@{mproperty}}
\index{mproperty@{mproperty}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{mproperty()}{mproperty()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::mproperty (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 346 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a5eb6ddf1378f0203ca0b953a88119ed8}\label{classOpenMesh_1_1BaseKernel_a5eb6ddf1378f0203ca0b953a88119ed8}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!mproperty@{mproperty}}
\index{mproperty@{mproperty}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{mproperty()}{mproperty()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::mproperty (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 350 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a2e2f14b6f08ae63173594555e0c94d57}\label{classOpenMesh_1_1BaseKernel_a2e2f14b6f08ae63173594555e0c94d57}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [1/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 310 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_afb0fd968e3aa843556d512869c456669}\label{classOpenMesh_1_1BaseKernel_afb0fd968e3aa843556d512869c456669}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [2/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 314 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ac01aad67d28b841a377f06308511f17f}\label{classOpenMesh_1_1BaseKernel_ac01aad67d28b841a377f06308511f17f}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [3/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 319 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a7cdc5f01e8292a63c6b8f5058784fd35}\label{classOpenMesh_1_1BaseKernel_a7cdc5f01e8292a63c6b8f5058784fd35}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [4/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 323 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aa8e3d10bd972dfb048b65ff361895eb9}\label{classOpenMesh_1_1BaseKernel_aa8e3d10bd972dfb048b65ff361895eb9}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [5/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 328 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a3105610ad1af73c470d2e6c96026d57e}\label{classOpenMesh_1_1BaseKernel_a3105610ad1af73c470d2e6c96026d57e}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [6/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 332 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a17aa4c33b2aa3ab9c522134b5451e986}\label{classOpenMesh_1_1BaseKernel_a17aa4c33b2aa3ab9c522134b5451e986}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [7/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 337 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a8997cf83b3d7a14f1ca4770c576a9cb0}\label{classOpenMesh_1_1BaseKernel_a8997cf83b3d7a14f1ca4770c576a9cb0}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [8/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
const \hyperlink{classOpenMesh_1_1PropertyT}{PropertyT}$<$T$>$\& Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

In most cases you should use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper and use of this function should not be necessary. Under some circumstances, however (i.\+e. making a property persistent), it might be necessary to use this function.

Access a property

This method returns a reference to property. The property handle must be valid! The result is unpredictable if the handle is invalid!


\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & A {\itshape valid} (!) property handle. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The wanted property if the handle is valid. 
\end{DoxyReturn}


Definition at line 341 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a788712239e2f3e298be65a61939e6db7}\label{classOpenMesh_1_1BaseKernel_a788712239e2f3e298be65a61939e6db7}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [9/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$T$>$\+::reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 369 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aba2ef97b15a30ee7f5abb7a2dbd4f693}\label{classOpenMesh_1_1BaseKernel_aba2ef97b15a30ee7f5abb7a2dbd4f693}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [10/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$T$>$\+::const\+\_\+reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1VertexHandle}{Vertex\+Handle}}]{\+\_\+vh }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 375 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aa308e3bd23356b6f90f3ea387a92e722}\label{classOpenMesh_1_1BaseKernel_aa308e3bd23356b6f90f3ea387a92e722}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [11/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$T$>$\+::reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle}}]{\+\_\+hh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 382 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ac04ad9eb13ebc80fb3bcdf7ccfd6fd14}\label{classOpenMesh_1_1BaseKernel_ac04ad9eb13ebc80fb3bcdf7ccfd6fd14}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [12/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$T$>$\+::const\+\_\+reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1HalfedgeHandle}{Halfedge\+Handle}}]{\+\_\+hh }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 388 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a5d18c51ef506fb387a4cc8b4109b63f4}\label{classOpenMesh_1_1BaseKernel_a5d18c51ef506fb387a4cc8b4109b63f4}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [13/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$T$>$\+::reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 395 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a184f428927068f5bf3a7ffc5b108d9dc}\label{classOpenMesh_1_1BaseKernel_a184f428927068f5bf3a7ffc5b108d9dc}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [14/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$T$>$\+::const\+\_\+reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1EdgeHandle}{Edge\+Handle}}]{\+\_\+eh }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 401 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a0a8c6cd2231f181de1d8a899f0018669}\label{classOpenMesh_1_1BaseKernel_a0a8c6cd2231f181de1d8a899f0018669}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [15/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$T$>$\+::reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle}}]{\+\_\+fh }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 408 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_ace3c48c883a84e00cc30a3dc96b4b35b}\label{classOpenMesh_1_1BaseKernel_ace3c48c883a84e00cc30a3dc96b4b35b}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [16/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$T$>$\+::const\+\_\+reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph,  }\item[{\hyperlink{structOpenMesh_1_1FaceHandle}{Face\+Handle}}]{\+\_\+fh }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 414 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a6212f4adf43f5d0db4cfeba208aa3936}\label{classOpenMesh_1_1BaseKernel_a6212f4adf43f5d0db4cfeba208aa3936}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [17/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$T$>$\+::reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 421 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a26ff15e6403c54a0a6dcef7ab29f01e6}\label{classOpenMesh_1_1BaseKernel_a26ff15e6403c54a0a6dcef7ab29f01e6}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!property@{property}}
\index{property@{property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{property()}{property()}\hspace{0.1cm}{\footnotesize\ttfamily [18/18]}}
{\footnotesize\ttfamily template$<$class T $>$ \\
\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$T$>$\+::const\+\_\+reference Open\+Mesh\+::\+Base\+Kernel\+::property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$}]{\+\_\+ph }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper.

Return value of property for an item 

Definition at line 427 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a1e6ab3a90a233ced3fef7a1575766c17}\label{classOpenMesh_1_1BaseKernel_a1e6ab3a90a233ced3fef7a1575766c17}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!remove\+\_\+property@{remove\+\_\+property}}
\index{remove\+\_\+property@{remove\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{remove\+\_\+property()}{remove\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [1/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::remove\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1VPropHandleT}{V\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper to manage (and remove) properties.

Remove a property.

Removes the property represented by the handle from the apropriate mesh item. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & Property to be removed. The handle is invalid afterwords. \\
\hline
\end{DoxyParams}


Definition at line 194 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a4dc56cf217a1a58782a5c65d8d590710}\label{classOpenMesh_1_1BaseKernel_a4dc56cf217a1a58782a5c65d8d590710}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!remove\+\_\+property@{remove\+\_\+property}}
\index{remove\+\_\+property@{remove\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{remove\+\_\+property()}{remove\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [2/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::remove\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1HPropHandleT}{H\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper to manage (and remove) properties.

Remove a property.

Removes the property represented by the handle from the apropriate mesh item. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & Property to be removed. The handle is invalid afterwords. \\
\hline
\end{DoxyParams}


Definition at line 202 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a0d525d1badf6c1dd6765630f1966b303}\label{classOpenMesh_1_1BaseKernel_a0d525d1badf6c1dd6765630f1966b303}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!remove\+\_\+property@{remove\+\_\+property}}
\index{remove\+\_\+property@{remove\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{remove\+\_\+property()}{remove\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [3/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::remove\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1EPropHandleT}{E\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper to manage (and remove) properties.

Remove a property.

Removes the property represented by the handle from the apropriate mesh item. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & Property to be removed. The handle is invalid afterwords. \\
\hline
\end{DoxyParams}


Definition at line 210 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a6454b0639cd0d6768392237359f25829}\label{classOpenMesh_1_1BaseKernel_a6454b0639cd0d6768392237359f25829}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!remove\+\_\+property@{remove\+\_\+property}}
\index{remove\+\_\+property@{remove\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{remove\+\_\+property()}{remove\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [4/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::remove\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1FPropHandleT}{F\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper to manage (and remove) properties.

Remove a property.

Removes the property represented by the handle from the apropriate mesh item. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & Property to be removed. The handle is invalid afterwords. \\
\hline
\end{DoxyParams}


Definition at line 218 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_aceeae93f3f0a51cd2323148fcbe7eed0}\label{classOpenMesh_1_1BaseKernel_aceeae93f3f0a51cd2323148fcbe7eed0}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!remove\+\_\+property@{remove\+\_\+property}}
\index{remove\+\_\+property@{remove\+\_\+property}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{remove\+\_\+property()}{remove\_property()}\hspace{0.1cm}{\footnotesize\ttfamily [5/5]}}
{\footnotesize\ttfamily template$<$typename T $>$ \\
void Open\+Mesh\+::\+Base\+Kernel\+::remove\+\_\+property (\begin{DoxyParamCaption}\item[{\hyperlink{structOpenMesh_1_1MPropHandleT}{M\+Prop\+HandleT}$<$ T $>$ \&}]{\+\_\+ph }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

You should not use this function directly. Instead, use the convenient \hyperlink{classOpenMesh_1_1PropertyManager}{Property\+Manager} wrapper to manage (and remove) properties.

Remove a property.

Removes the property represented by the handle from the apropriate mesh item. 
\begin{DoxyParams}{Parameters}
{\em \+\_\+ph} & Property to be removed. The handle is invalid afterwords. \\
\hline
\end{DoxyParams}


Definition at line 226 of file Base\+Kernel.\+hh.

\mbox{\Hypertarget{classOpenMesh_1_1BaseKernel_a6124c80044fb0225e758bf8d15492af0}\label{classOpenMesh_1_1BaseKernel_a6124c80044fb0225e758bf8d15492af0}} 
\index{Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}!vprops\+\_\+resize\+\_\+if\+\_\+smaller@{vprops\+\_\+resize\+\_\+if\+\_\+smaller}}
\index{vprops\+\_\+resize\+\_\+if\+\_\+smaller@{vprops\+\_\+resize\+\_\+if\+\_\+smaller}!Open\+Mesh\+::\+Base\+Kernel@{Open\+Mesh\+::\+Base\+Kernel}}
\subsubsection{\texorpdfstring{vprops\+\_\+resize\+\_\+if\+\_\+smaller()}{vprops\_resize\_if\_smaller()}}
{\footnotesize\ttfamily void Open\+Mesh\+::\+Base\+Kernel\+::vprops\+\_\+resize\+\_\+if\+\_\+smaller (\begin{DoxyParamCaption}\item[{size\+\_\+t}]{\+\_\+n }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}}

Same as \hyperlink{classOpenMesh_1_1BaseKernel_ae4577ecec699960f2f8fd115ea7c588c}{vprops\+\_\+resize()} but ignores vertex property vectors that have a size larger than {\ttfamily \+\_\+n}.

Use this method instead of \hyperlink{classOpenMesh_1_1BaseKernel_ae4577ecec699960f2f8fd115ea7c588c}{vprops\+\_\+resize()} if you plan to frequently reduce and enlarge the property container and you don\textquotesingle{}t want to waste time reallocating the property vectors every time. 

Definition at line 713 of file Base\+Kernel.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Mesh/Base\+Kernel.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+Open\+Mesh/src/\+Open\+Mesh/\+Core/\+Mesh/Base\+Kernel.\+cc\end{DoxyCompactItemize}
