\hypertarget{classOMPropertyModel}{}\section{O\+M\+Property\+Model$<$ MeshT $>$ Class Template Reference}
\label{classOMPropertyModel}\index{O\+M\+Property\+Model$<$ Mesh\+T $>$@{O\+M\+Property\+Model$<$ Mesh\+T $>$}}
Inheritance diagram for O\+M\+Property\+Model$<$ MeshT $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5.000000cm]{classOMPropertyModel}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a2d1b9469a537490825200990c92a758f}\label{classOMPropertyModel_a2d1b9469a537490825200990c92a758f}} 
{\bfseries O\+M\+Property\+Model} (MeshT $\ast$mesh, int object\+ID, Q\+Object $\ast$parent=0)
\item 
\mbox{\Hypertarget{classOMPropertyModel_a70152ec0030ab5d9c40fa0cb96d810f2}\label{classOMPropertyModel_a70152ec0030ab5d9c40fa0cb96d810f2}} 
virtual void \hyperlink{classOMPropertyModel_a70152ec0030ab5d9c40fa0cb96d810f2}{update\+Widget} (const Q\+Model\+Index\+List \&selected\+Indices)
\begin{DoxyCompactList}\small\item\em Updates the widget. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOMPropertyModel_ab5678834c018a3e91947c8424671bada}\label{classOMPropertyModel_ab5678834c018a3e91947c8424671bada}} 
static const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} {\bfseries proptype\+\_\+bool} = \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}(typeid(\hyperlink{classOpenMesh_1_1PropertyT}{Open\+Mesh\+::\+PropertyT}$<$bool$>$), \char`\"{}bool\char`\"{})
\item 
\mbox{\Hypertarget{classOMPropertyModel_a1945b6bde976894b1aac0889814bf8fb}\label{classOMPropertyModel_a1945b6bde976894b1aac0889814bf8fb}} 
static const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} {\bfseries proptype\+\_\+int} = \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}(typeid(\hyperlink{classOpenMesh_1_1PropertyT}{Open\+Mesh\+::\+PropertyT}$<$int$>$), \char`\"{}int\char`\"{})
\item 
\mbox{\Hypertarget{classOMPropertyModel_a4c44a208126341fa01d43f1a8c1b2df7}\label{classOMPropertyModel_a4c44a208126341fa01d43f1a8c1b2df7}} 
static const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} {\bfseries proptype\+\_\+uint} = \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}(typeid(\hyperlink{classOpenMesh_1_1PropertyT}{Open\+Mesh\+::\+PropertyT}$<$unsigned int$>$), \char`\"{}unsigned int\char`\"{})
\item 
\mbox{\Hypertarget{classOMPropertyModel_ae68d1e7d10d313fff7461229cf5facfb}\label{classOMPropertyModel_ae68d1e7d10d313fff7461229cf5facfb}} 
static const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} {\bfseries proptype\+\_\+uint8\+\_\+t} = \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}(typeid(\hyperlink{classOpenMesh_1_1PropertyT}{Open\+Mesh\+::\+PropertyT}$<$uint8\+\_\+t$>$), \char`\"{}uint8\+\_\+t\char`\"{})
\item 
\mbox{\Hypertarget{classOMPropertyModel_ad53cde34315a5632c601b533f5398d91}\label{classOMPropertyModel_ad53cde34315a5632c601b533f5398d91}} 
static const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} {\bfseries proptype\+\_\+double} = \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}(typeid(\hyperlink{classOpenMesh_1_1PropertyT}{Open\+Mesh\+::\+PropertyT}$<$double$>$), \char`\"{}double\char`\"{})
\item 
\mbox{\Hypertarget{classOMPropertyModel_aed47a4853c1b68b9b50c3f06019d0233}\label{classOMPropertyModel_aed47a4853c1b68b9b50c3f06019d0233}} 
static const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} {\bfseries proptype\+\_\+\+Vec3d} = \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}(typeid(\hyperlink{classOpenMesh_1_1PropertyT}{Open\+Mesh\+::\+PropertyT}$<$\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d}$>$), \char`\"{}Vec3d\char`\"{})
\item 
\mbox{\Hypertarget{classOMPropertyModel_a13eae4071ea3d596f462cdca096ac70f}\label{classOMPropertyModel_a13eae4071ea3d596f462cdca096ac70f}} 
static const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} {\bfseries proptype\+\_\+\+Vec3f} = \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}(typeid(\hyperlink{classOpenMesh_1_1PropertyT}{Open\+Mesh\+::\+PropertyT}$<$\hyperlink{namespaceACG_a86c28120e8596ee7d03e58b7300f59bc}{A\+C\+G\+::\+Vec3f}$>$), \char`\"{}Vec3f\char`\"{})
\item 
\mbox{\Hypertarget{classOMPropertyModel_a8c746d9519e5a69bc0e00a74c18109c8}\label{classOMPropertyModel_a8c746d9519e5a69bc0e00a74c18109c8}} 
static const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} {\bfseries proptype\+\_\+\+Vec2d} = \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}(typeid(\hyperlink{classOpenMesh_1_1PropertyT}{Open\+Mesh\+::\+PropertyT}$<$\hyperlink{namespaceACG_abdbb3513d29b2c3cc161185bc8a2e6da}{A\+C\+G\+::\+Vec2d}$>$), \char`\"{}Vec2d\char`\"{})
\item 
\mbox{\Hypertarget{classOMPropertyModel_af15ed5f9b1c928a4c785626704810597}\label{classOMPropertyModel_af15ed5f9b1c928a4c785626704810597}} 
static const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} {\bfseries proptype\+\_\+\+Vec2f} = \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}(typeid(\hyperlink{classOpenMesh_1_1PropertyT}{Open\+Mesh\+::\+PropertyT}$<$\hyperlink{namespaceACG_a8b858737aebd55e312149cf208a0b3f3}{A\+C\+G\+::\+Vec2f}$>$), \char`\"{}Vec2f\char`\"{})
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a200c043279453671695efcf0808daa0e}\label{classOMPropertyModel_a200c043279453671695efcf0808daa0e}} 
virtual Q\+String \hyperlink{classOMPropertyModel_a200c043279453671695efcf0808daa0e}{get\+Load\+Filename\+Filter} ()
\begin{DoxyCompactList}\small\item\em Returns the filename filter for loading. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOMPropertyModel_a984fc87a0b890c9062e8fca1551b6750}\label{classOMPropertyModel_a984fc87a0b890c9062e8fca1551b6750}} 
virtual Q\+String \hyperlink{classOMPropertyModel_a984fc87a0b890c9062e8fca1551b6750}{get\+Save\+Filename\+Filter} (unsigned int prop\+Id)
\begin{DoxyCompactList}\small\item\em Returns the filename filter for saving. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a0c491f601cd724622a75245e9bfe8ad0}\label{classOMPropertyModel_a0c491f601cd724622a75245e9bfe8ad0}} 
typedef std\+::set$<$ \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} $>$ {\bfseries Type\+Info\+Wrapper\+Set}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classOMPropertyModel_aa34d9cf97246508f9372c4c752942978}{combine} ()
\begin{DoxyCompactList}\small\item\em Combines two properties. \end{DoxyCompactList}\item 
bool \hyperlink{classOMPropertyModel_afd3b08219db687322649abc70c6acc5c}{combinable} (\hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$property\+Visualizer1, \hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$property\+Visualizer2)
\begin{DoxyCompactList}\small\item\em Checks if two properties are combinable. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOMPropertyModel_a0c763b883be64dcf503b117f3c57bd98}\label{classOMPropertyModel_a0c763b883be64dcf503b117f3c57bd98}} 
virtual void \hyperlink{classOMPropertyModel_a0c763b883be64dcf503b117f3c57bd98}{save\+Property} ()
\begin{DoxyCompactList}\small\item\em Saves the currently slected properties. \end{DoxyCompactList}\item 
virtual bool \hyperlink{classOMPropertyModel_a6e2002586e5a7eaea735b290a546da2f}{parse\+Header} (Q\+String header, \hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$\&prop\+Vis, unsigned int \&n)
\begin{DoxyCompactList}\small\item\em Parses the property file header. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOMPropertyModel_af8a22f29322bd7aa3b82760e32ee7c18}\label{classOMPropertyModel_af8a22f29322bd7aa3b82760e32ee7c18}} 
virtual void \hyperlink{classOMPropertyModel_af8a22f29322bd7aa3b82760e32ee7c18}{set\+Property\+From\+File} (Q\+Text\+Stream \&file\+\_\+stream, unsigned int n, \hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$prop\+Vis)
\begin{DoxyCompactList}\small\item\em Sets the property values from a given file. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOMPropertyModel_a93eaed86c7284946a48a7216ef9154c6}\label{classOMPropertyModel_a93eaed86c7284946a48a7216ef9154c6}} 
void \hyperlink{classOMPropertyModel_a93eaed86c7284946a48a7216ef9154c6}{reset\+Picking} ()
\begin{DoxyCompactList}\small\item\em Disables picking. \end{DoxyCompactList}\item 
virtual void \hyperlink{classOMPropertyModel_aec2491ed20782dfbe04355363b979bf1}{pick\+Property} ()
\begin{DoxyCompactList}\small\item\em Toggle picking on and off. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOMPropertyModel_a36737e0d3fc79726afbf0e5be1276c85}\label{classOMPropertyModel_a36737e0d3fc79726afbf0e5be1276c85}} 
virtual void \hyperlink{classOMPropertyModel_a36737e0d3fc79726afbf0e5be1276c85}{pick\+Mode\+Changed} (const std\+::string \&\+\_\+mode)
\begin{DoxyCompactList}\small\item\em Handles changing of pick mode. \end{DoxyCompactList}\item 
virtual void \hyperlink{classOMPropertyModel_a433c08ac6522ab9c266296fab8445dd1}{mouse\+Event} (Q\+Mouse\+Event $\ast$\+\_\+event)
\begin{DoxyCompactList}\small\item\em Handles mouse events for picking. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOMPropertyModel_aafa268d8c717f370ce2a481e9aa9e553}\label{classOMPropertyModel_aafa268d8c717f370ce2a481e9aa9e553}} 
bool {\bfseries is\+Vector\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info) const
\item 
\mbox{\Hypertarget{classOMPropertyModel_aa0a3a2f06eb7d3b86ce8582fb7ac705e}\label{classOMPropertyModel_aa0a3a2f06eb7d3b86ce8582fb7ac705e}} 
void \hyperlink{classOMPropertyModel_aa0a3a2f06eb7d3b86ce8582fb7ac705e}{gather\+Properties} (MeshT $\ast$mesh, typename Mesh\+T\+::prop\+\_\+iterator props\+\_\+first, typename Mesh\+T\+::prop\+\_\+iterator props\+\_\+last, Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER filter)
\begin{DoxyCompactList}\small\item\em Searches for properties with a specific entity type and creates visualizers. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOMPropertyModel_a5bd8ce4bca2d4cf60adc00d6f33ce04f}\label{classOMPropertyModel_a5bd8ce4bca2d4cf60adc00d6f33ce04f}} 
void \hyperlink{classOMPropertyModel_a5bd8ce4bca2d4cf60adc00d6f33ce04f}{gather\+Properties} ()
\begin{DoxyCompactList}\small\item\em Searches for all properties and creates the visualizers. \end{DoxyCompactList}\item 
bool \hyperlink{classOMPropertyModel_ab7a018b631bce949dba677283526fa8f}{is\+Supported} (\hyperlink{classOpenMesh_1_1BaseProperty}{Open\+Mesh\+::\+Base\+Property} $\ast$const base\+Prop) const
\begin{DoxyCompactList}\small\item\em Checks if visualizing this property is supported. \end{DoxyCompactList}\item 
bool \hyperlink{classOMPropertyModel_a7bd3be8eca346b6f3061438d2b8723f8}{is\+Supported} (Q\+String friendly\+Name) const
\begin{DoxyCompactList}\small\item\em Checks if visualizing this type of property is supported. \end{DoxyCompactList}\item 
bool \hyperlink{classOMPropertyModel_a4c3468bd29d9f2d803f972300668f0fd}{is\+New} (\hyperlink{classOpenMesh_1_1BaseProperty}{Open\+Mesh\+::\+Base\+Property} $\ast$const base\+Prop, Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER filter)
\begin{DoxyCompactList}\small\item\em Checks if we already created a \hyperlink{classPropertyVisualizer}{Property\+Visualizer} for this property. \end{DoxyCompactList}\item 
\hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \hyperlink{classOMPropertyModel_ab24e24f73231bde4e5e45fdaaa0be67e}{get\+Supported\+Type\+Info\+Wrapper} (\hyperlink{classOpenMesh_1_1BaseProperty}{Open\+Mesh\+::\+Base\+Property} $\ast$const base\+Prop)
\begin{DoxyCompactList}\small\item\em Returns the \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} for the property if it is supported. \end{DoxyCompactList}\item 
\hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \hyperlink{classOMPropertyModel_a8acce130c4297b13c8a583abec88a69b}{get\+Supported\+Type\+Info\+Wrapper} (Q\+String friendly\+Name)
\begin{DoxyCompactList}\small\item\em Returns the \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} for the type of property if it is supported. \end{DoxyCompactList}\item 
void \hyperlink{classOMPropertyModel_a944874b8d3c0e0dec219c8e8a07bbae9}{add\+Property\+Visualizer} (\hyperlink{classOpenMesh_1_1BaseProperty}{Open\+Mesh\+::\+Base\+Property} $\ast$const base\+Prop, MeshT $\ast$mesh, Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER filter)
\begin{DoxyCompactList}\small\item\em Adds a new \hyperlink{classPropertyVisualizer}{Property\+Visualizer}. \end{DoxyCompactList}\item 
void \hyperlink{classOMPropertyModel_ae8cd66b5576ce05beedb3335c15ec985}{add\+Property} (Q\+String prop\+Name, Q\+String friendly\+Type\+Name, Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER filter)
\begin{DoxyCompactList}\small\item\em Adds a new property to the mesh. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOMPropertyModel_afea8fa4171514ef72a3bae1a9db3aac5}\label{classOMPropertyModel_afea8fa4171514ef72a3bae1a9db3aac5}} 
void {\bfseries initialize\+Supported\+Property\+Types} ()
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOMPropertyModel_aa11619e69d6638ac0cc9ab392f509975}\label{classOMPropertyModel_aa11619e69d6638ac0cc9ab392f509975}} 
MeshT $\ast$ {\bfseries mesh\+\_\+}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a834524ef518816a01b19bf6ca174c10f}\label{classOMPropertyModel_a834524ef518816a01b19bf6ca174c10f}} 
int {\bfseries object\+I\+D\+\_\+}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a511a5d4c861e648ae118ed2c01bc4f50}\label{classOMPropertyModel_a511a5d4c861e648ae118ed2c01bc4f50}} 
Q\+Push\+Button {\bfseries b\+Combine}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a162f7ac9924ce9d0a3c843dafa83a6e8}\label{classOMPropertyModel_a162f7ac9924ce9d0a3c843dafa83a6e8}} 
const \hyperlink{classPropertyInfo}{Property\+Info} $\ast$ {\bfseries m\+Combine\+Property1}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a9f6d209cbf9be7a969d134a43b686eae}\label{classOMPropertyModel_a9f6d209cbf9be7a969d134a43b686eae}} 
const \hyperlink{classPropertyInfo}{Property\+Info} $\ast$ {\bfseries m\+Combine\+Property2}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a8de7fe78ec468bc7b90b34b32b87e585}\label{classOMPropertyModel_a8de7fe78ec468bc7b90b34b32b87e585}} 
\hyperlink{classLoadSaveWidget}{Load\+Save\+Widget} {\bfseries m\+Load\+Save\+Widget}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a736d4739ba9c126fb612c6aff0b9a357}\label{classOMPropertyModel_a736d4739ba9c126fb612c6aff0b9a357}} 
\hyperlink{classPickWidget}{Pick\+Widget} {\bfseries m\+Pick\+Widget}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a9b4aa67c4c3e3a2ec35f8fe93bb179ff}\label{classOMPropertyModel_a9b4aa67c4c3e3a2ec35f8fe93bb179ff}} 
bool {\bfseries pick\+Mode\+Active}
\item 
\mbox{\Hypertarget{classOMPropertyModel_acafa3ce5831f572b133959457cf36019}\label{classOMPropertyModel_acafa3ce5831f572b133959457cf36019}} 
std\+::string {\bfseries last\+Pick\+Mode}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a100100583ddca53f78f4b3ebd9198428}\label{classOMPropertyModel_a100100583ddca53f78f4b3ebd9198428}} 
\hyperlink{ViewerProperties_8hh_a23df76c69888d15a460c61ef853567d8}{Viewer\+::\+Action\+Mode} {\bfseries last\+Action\+Mode}
\item 
\mbox{\Hypertarget{classOMPropertyModel_a8884eb14e18ff09a6fcdf2944eb5e0a2}\label{classOMPropertyModel_a8884eb14e18ff09a6fcdf2944eb5e0a2}} 
Type\+Info\+Wrapper\+Set {\bfseries supported\+Property\+Types}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
\subsubsection*{template$<$typename MeshT$>$\newline
class O\+M\+Property\+Model$<$ Mesh\+T $>$}



Definition at line 56 of file O\+M\+Property\+Model.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOMPropertyModel_ae8cd66b5576ce05beedb3335c15ec985}\label{classOMPropertyModel_ae8cd66b5576ce05beedb3335c15ec985}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!add\+Property@{add\+Property}}
\index{add\+Property@{add\+Property}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{add\+Property()}{addProperty()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::add\+Property (\begin{DoxyParamCaption}\item[{Q\+String}]{prop\+Name,  }\item[{Q\+String}]{friendly\+Type\+Name,  }\item[{Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER}]{filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Adds a new property to the mesh. 


\begin{DoxyParams}{Parameters}
{\em prop\+Name} & The name of the property that should be added. \\
\hline
{\em friendly\+Type\+Name} & The type of the property. \\
\hline
{\em filter} & The entity type of the property.\\
\hline
\end{DoxyParams}
This method adds a new property to the mesh. The types \char`\"{}\+Vec3d\char`\"{}, \char`\"{}\+Vec3d\char`\"{}, \char`\"{}double\char`\"{}, \char`\"{}unsigned int\char`\"{}, \char`\"{}int\char`\"{} and \char`\"{}bool\char`\"{} can be added for every entity type. \char`\"{}\+Skin\+Weights\char`\"{} can only be added for vertices. 

Definition at line 577 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_a944874b8d3c0e0dec219c8e8a07bbae9}\label{classOMPropertyModel_a944874b8d3c0e0dec219c8e8a07bbae9}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!add\+Property\+Visualizer@{add\+Property\+Visualizer}}
\index{add\+Property\+Visualizer@{add\+Property\+Visualizer}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{add\+Property\+Visualizer()}{addPropertyVisualizer()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::add\+Property\+Visualizer (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1BaseProperty}{Open\+Mesh\+::\+Base\+Property} $\ast$const}]{base\+Prop,  }\item[{MeshT $\ast$}]{mesh,  }\item[{Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER}]{filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Adds a new \hyperlink{classPropertyVisualizer}{Property\+Visualizer}. 


\begin{DoxyParams}{Parameters}
{\em base\+Prop} & A pointer to the property that should be visualized. \\
\hline
{\em mesh} & A pointer to the mesh whose properties should be visualized. \\
\hline
{\em filter} & The entity type that should be visualized.\\
\hline
\end{DoxyParams}
This method creates a new \hyperlink{classPropertyVisualizer}{Property\+Visualizer} depending on the provieded parameters and adds it to the list of Property\+Visualizers. 

Definition at line 540 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_afd3b08219db687322649abc70c6acc5c}\label{classOMPropertyModel_afd3b08219db687322649abc70c6acc5c}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!combinable@{combinable}}
\index{combinable@{combinable}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{combinable()}{combinable()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::combinable (\begin{DoxyParamCaption}\item[{\hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$}]{property\+Visualizer1,  }\item[{\hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$}]{property\+Visualizer2 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Checks if two properties are combinable. 


\begin{DoxyParams}{Parameters}
{\em property\+Visualizer1} & First \hyperlink{classPropertyVisualizer}{Property\+Visualizer} for combination. \\
\hline
{\em property\+Visualizer2} & Second \hyperlink{classPropertyVisualizer}{Property\+Visualizer} for combination.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if the two properties are combinable, False if not.
\end{DoxyReturn}
If the user selects two properties which are both of a vector type (Vec3f or Vec3d) they can be combined. This method will check if the two provided Property\+Visualizers can be comined. Currently Property\+Visualizers can only be combined if both visualize a property with a vector type and the same entity type. 

Definition at line 201 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_aa34d9cf97246508f9372c4c752942978}\label{classOMPropertyModel_aa34d9cf97246508f9372c4c752942978}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!combine@{combine}}
\index{combine@{combine}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{combine()}{combine()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::combine (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}



Combines two properties. 

If the user selects two properties which are both of a vector type (Vec3f or Vec3d) they can be combined. This method will create a new \hyperlink{classPropertyVisualizer}{Property\+Visualizer} (an O\+M\+Property\+Visualizer\+Vector\+Field\+Difference$<$\+Mesh\+T$>$ to be exact) but not an additional property. 

Reimplemented from \hyperlink{classOMPropertyModelSubclass}{O\+M\+Property\+Model\+Subclass}.



Definition at line 179 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_ab24e24f73231bde4e5e45fdaaa0be67e}\label{classOMPropertyModel_ab24e24f73231bde4e5e45fdaaa0be67e}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!get\+Supported\+Type\+Info\+Wrapper@{get\+Supported\+Type\+Info\+Wrapper}}
\index{get\+Supported\+Type\+Info\+Wrapper@{get\+Supported\+Type\+Info\+Wrapper}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{get\+Supported\+Type\+Info\+Wrapper()}{getSupportedTypeInfoWrapper()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
\hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::get\+Supported\+Type\+Info\+Wrapper (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1BaseProperty}{Open\+Mesh\+::\+Base\+Property} $\ast$const}]{base\+Prop }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Returns the \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} for the property if it is supported. 


\begin{DoxyParams}{Parameters}
{\em base\+Prop} & A pointer to the property.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} containing all the type information for the provided property. 
\end{DoxyReturn}


Definition at line 501 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_a8acce130c4297b13c8a583abec88a69b}\label{classOMPropertyModel_a8acce130c4297b13c8a583abec88a69b}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!get\+Supported\+Type\+Info\+Wrapper@{get\+Supported\+Type\+Info\+Wrapper}}
\index{get\+Supported\+Type\+Info\+Wrapper@{get\+Supported\+Type\+Info\+Wrapper}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{get\+Supported\+Type\+Info\+Wrapper()}{getSupportedTypeInfoWrapper()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
\hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::get\+Supported\+Type\+Info\+Wrapper (\begin{DoxyParamCaption}\item[{Q\+String}]{friendly\+Name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Returns the \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} for the type of property if it is supported. 


\begin{DoxyParams}{Parameters}
{\em friendly\+Name} & The type we want to visualize in text form.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} containing all the type information for the property type. 
\end{DoxyReturn}


Definition at line 516 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_a4c3468bd29d9f2d803f972300668f0fd}\label{classOMPropertyModel_a4c3468bd29d9f2d803f972300668f0fd}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!is\+New@{is\+New}}
\index{is\+New@{is\+New}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{is\+New()}{isNew()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::is\+New (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1BaseProperty}{Open\+Mesh\+::\+Base\+Property} $\ast$const}]{base\+Prop,  }\item[{Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER}]{filter }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Checks if we already created a \hyperlink{classPropertyVisualizer}{Property\+Visualizer} for this property. 


\begin{DoxyParams}{Parameters}
{\em base\+Prop} & A pointer to the property. \\
\hline
{\em filter} & The entity type.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if we do not have \hyperlink{classPropertyVisualizer}{Property\+Visualizer} yet for that property, False if we do 
\end{DoxyReturn}


Definition at line 482 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_ab7a018b631bce949dba677283526fa8f}\label{classOMPropertyModel_ab7a018b631bce949dba677283526fa8f}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!is\+Supported@{is\+Supported}}
\index{is\+Supported@{is\+Supported}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{is\+Supported()}{isSupported()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::is\+Supported (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenMesh_1_1BaseProperty}{Open\+Mesh\+::\+Base\+Property} $\ast$const}]{base\+Prop }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [private]}}



Checks if visualizing this property is supported. 


\begin{DoxyParams}{Parameters}
{\em base\+Prop} & A pointer to the property that we want to visualize.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if the property can be visualized, False if not. 
\end{DoxyReturn}


Definition at line 443 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_a7bd3be8eca346b6f3061438d2b8723f8}\label{classOMPropertyModel_a7bd3be8eca346b6f3061438d2b8723f8}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!is\+Supported@{is\+Supported}}
\index{is\+Supported@{is\+Supported}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{is\+Supported()}{isSupported()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::is\+Supported (\begin{DoxyParamCaption}\item[{Q\+String}]{friendly\+Name }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [private]}}



Checks if visualizing this type of property is supported. 

Checks if visualizing this property is supported.


\begin{DoxyParams}{Parameters}
{\em friendly\+Name} & The type we want to visualize in text form.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if the property type can be visualized, False if not.
\end{DoxyReturn}
Currently supported are the types \char`\"{}bool\char`\"{}, \char`\"{}int\char`\"{}, \char`\"{}unsigned int\char`\"{}, \char`\"{}double\char`\"{}, \char`\"{}\+Vec3d\char`\"{}, \char`\"{}\+Vec3f\char`\"{} and \char`\"{}\+Skin\+Weights\char`\"{} 

Definition at line 461 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_a433c08ac6522ab9c266296fab8445dd1}\label{classOMPropertyModel_a433c08ac6522ab9c266296fab8445dd1}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!mouse\+Event@{mouse\+Event}}
\index{mouse\+Event@{mouse\+Event}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{mouse\+Event()}{mouseEvent()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::mouse\+Event (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}



Handles mouse events for picking. 

If picking mode is active this method will find the picked entity and display its handle and value in the \hyperlink{classPickWidget}{Pick\+Widget}. 

Reimplemented from \hyperlink{classSingleObjectPropertyModel}{Single\+Object\+Property\+Model}.



Definition at line 376 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_a6e2002586e5a7eaea735b290a546da2f}\label{classOMPropertyModel_a6e2002586e5a7eaea735b290a546da2f}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!parse\+Header@{parse\+Header}}
\index{parse\+Header@{parse\+Header}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{parse\+Header()}{parseHeader()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::parse\+Header (\begin{DoxyParamCaption}\item[{Q\+String}]{header,  }\item[{\hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$\&}]{prop\+Vis,  }\item[{unsigned int \&}]{n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}



Parses the property file header. 


\begin{DoxyParams}[1]{Parameters}
 & {\em header} & The header. \\
\hline
\mbox{\tt out}  & {\em prop\+Vis} & The \hyperlink{classPropertyVisualizer}{Property\+Visualizer} that will visualize the new property. \\
\hline
\mbox{\tt out}  & {\em n} & The number of values stored in the file \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if parsing was successfull, False if not.
\end{DoxyReturn}
When loading a property from a file this method parses the header placed in the file\textquotesingle{}s first line. If parsing was successfull a new property and a \hyperlink{classPropertyVisualizer}{Property\+Visualizer} will be created. 

Reimplemented from \hyperlink{classSingleObjectPropertyModel_a6790c49b36b219d9e746024109f675fc}{Single\+Object\+Property\+Model}.



Definition at line 221 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOMPropertyModel_aec2491ed20782dfbe04355363b979bf1}\label{classOMPropertyModel_aec2491ed20782dfbe04355363b979bf1}} 
\index{O\+M\+Property\+Model@{O\+M\+Property\+Model}!pick\+Property@{pick\+Property}}
\index{pick\+Property@{pick\+Property}!O\+M\+Property\+Model@{O\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{pick\+Property()}{pickProperty()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void \hyperlink{classOMPropertyModel}{O\+M\+Property\+Model}$<$ MeshT $>$\+::pick\+Property (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [virtual]}}



Toggle picking on and off. 

This method will start and stop the picking. 

Reimplemented from \hyperlink{classOMPropertyModelSubclass}{O\+M\+Property\+Model\+Subclass}.



Definition at line 340 of file O\+M\+Property\+Model\+T\+\_\+impl.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin-\/\+Property\+Vis/\+Open\+Mesh/O\+M\+Property\+Model.\+hh\item 
Plugin-\/\+Property\+Vis/\+Open\+Mesh/O\+M\+Property\+Model\+T\+\_\+impl.\+hh\end{DoxyCompactItemize}
