\hypertarget{classOVMPropertyModel}{}\section{O\+V\+M\+Property\+Model$<$ MeshT $>$ Class Template Reference}
\label{classOVMPropertyModel}\index{O\+V\+M\+Property\+Model$<$ Mesh\+T $>$@{O\+V\+M\+Property\+Model$<$ Mesh\+T $>$}}
Inheritance diagram for O\+V\+M\+Property\+Model$<$ MeshT $>$\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5.000000cm]{classOVMPropertyModel}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a80aa1c354fd968054121fe6755e97d61}\label{classOVMPropertyModel_a80aa1c354fd968054121fe6755e97d61}} 
{\bfseries O\+V\+M\+Property\+Model} (MeshT $\ast$mesh, int object\+ID, Q\+Object $\ast$parent=0)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_af005acf3fdf8c0ff51d87b3f1dd25bda}\label{classOVMPropertyModel_af005acf3fdf8c0ff51d87b3f1dd25bda}} 
virtual void \hyperlink{classOVMPropertyModel_af005acf3fdf8c0ff51d87b3f1dd25bda}{update\+Widget} (const Q\+Model\+Index\+List \&selected\+Indices)
\begin{DoxyCompactList}\small\item\em Updates the widget. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOVMPropertyModel_a4006d103feea385f36340c4af6a2cf93}\label{classOVMPropertyModel_a4006d103feea385f36340c4af6a2cf93}} 
void \hyperlink{classOVMPropertyModel_a4006d103feea385f36340c4af6a2cf93}{reset\+Picking} ()
\begin{DoxyCompactList}\small\item\em Disables picking. \end{DoxyCompactList}\item 
virtual void \hyperlink{classOVMPropertyModel_a87b41b01ad7764eeee962477270b802e}{pick\+Property} ()
\begin{DoxyCompactList}\small\item\em Toggle picking on and off. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOVMPropertyModel_abcf4f295f20662d2aac7812a5104af67}\label{classOVMPropertyModel_abcf4f295f20662d2aac7812a5104af67}} 
virtual void \hyperlink{classOVMPropertyModel_abcf4f295f20662d2aac7812a5104af67}{pick\+Mode\+Changed} (const std\+::string \&\+\_\+mode)
\begin{DoxyCompactList}\small\item\em Handles changing of pick mode. \end{DoxyCompactList}\item 
virtual void \hyperlink{classOVMPropertyModel_ae7b74823356f35c044d1fbb99bef4c75}{mouse\+Event} (Q\+Mouse\+Event $\ast$\+\_\+event)
\begin{DoxyCompactList}\small\item\em Handles mouse events for picking. \end{DoxyCompactList}\item 
virtual bool \hyperlink{classOVMPropertyModel_ad4b2dcecf85ae6159fc370d0fac43f41}{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}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_af496ec0c22c3f971e83ea5db6f4bf8c9}\label{classOVMPropertyModel_af496ec0c22c3f971e83ea5db6f4bf8c9}} 
static bool {\bfseries is\+Bool\+Type} (const \hyperlink{classPropertyInfo}{Property\+Info} \&prop\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a100831b6ddc8c2e5062965a1e94ae00d}\label{classOVMPropertyModel_a100831b6ddc8c2e5062965a1e94ae00d}} 
static bool {\bfseries is\+Bool\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a9cd68873e7d06ca8ef409b659f28bcd3}\label{classOVMPropertyModel_a9cd68873e7d06ca8ef409b659f28bcd3}} 
static bool {\bfseries is\+Int\+Type} (const \hyperlink{classPropertyInfo}{Property\+Info} \&prop\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_af80656f165ba35907cf69534cd9b1c89}\label{classOVMPropertyModel_af80656f165ba35907cf69534cd9b1c89}} 
static bool {\bfseries is\+Int\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_abf90bdd73f4d7cccd994885d98eaee07}\label{classOVMPropertyModel_abf90bdd73f4d7cccd994885d98eaee07}} 
static bool {\bfseries is\+Double\+Type} (const \hyperlink{classPropertyInfo}{Property\+Info} \&prop\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_affbf51d42871fe8a91597f24b5f6233a}\label{classOVMPropertyModel_affbf51d42871fe8a91597f24b5f6233a}} 
static bool {\bfseries is\+Double\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_ae830e454998021eae9f22aadc51926da}\label{classOVMPropertyModel_ae830e454998021eae9f22aadc51926da}} 
static bool {\bfseries is\+Unsigned\+Int\+Type} (const \hyperlink{classPropertyInfo}{Property\+Info} \&prop\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a30ac83664c37e7a006a2d3f71c3b5c86}\label{classOVMPropertyModel_a30ac83664c37e7a006a2d3f71c3b5c86}} 
static bool {\bfseries is\+Unsigned\+Int\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_ad04c0145f5ed6dcdec6c6d6689f8755e}\label{classOVMPropertyModel_ad04c0145f5ed6dcdec6c6d6689f8755e}} 
static bool {\bfseries is\+Vec3d\+Type} (const \hyperlink{classPropertyInfo}{Property\+Info} \&prop\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_ad75996b77d2bcd12ad573afdca029860}\label{classOVMPropertyModel_ad75996b77d2bcd12ad573afdca029860}} 
static bool {\bfseries is\+Vec3d\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a4e4eefaa511c5c829b37b8a2ec04944d}\label{classOVMPropertyModel_a4e4eefaa511c5c829b37b8a2ec04944d}} 
static bool {\bfseries is\+Vec3f\+Type} (const \hyperlink{classPropertyInfo}{Property\+Info} \&prop\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a666de5fca1e3087895353e0a4630e7ba}\label{classOVMPropertyModel_a666de5fca1e3087895353e0a4630e7ba}} 
static bool {\bfseries is\+Vec3f\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a254a985a238891dceee15fa646dc694a}\label{classOVMPropertyModel_a254a985a238891dceee15fa646dc694a}} 
static bool {\bfseries is\+Vector\+Type} (const \hyperlink{classPropertyInfo}{Property\+Info} \&prop\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a03c49b3d3d2e05c3d4955b397a7e6169}\label{classOVMPropertyModel_a03c49b3d3d2e05c3d4955b397a7e6169}} 
static bool {\bfseries is\+Vector\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_ab2fa31da6c22eba10e54c1e9bcf66b98}\label{classOVMPropertyModel_ab2fa31da6c22eba10e54c1e9bcf66b98}} 
static bool {\bfseries is\+Matrix3x3\+Type} (const \hyperlink{classPropertyInfo}{Property\+Info} \&prop\+Info)
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a3455987b447d3ff1778a2868f7a3c803}\label{classOVMPropertyModel_a3455987b447d3ff1778a2868f7a3c803}} 
static bool {\bfseries is\+Matrix3x3\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info)
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_af5ce257c0f6cbf5747f0adc5805522e7}\label{classOVMPropertyModel_af5ce257c0f6cbf5747f0adc5805522e7}} 
virtual Q\+String \hyperlink{classOVMPropertyModel_af5ce257c0f6cbf5747f0adc5805522e7}{get\+Load\+Filename\+Filter} ()
\begin{DoxyCompactList}\small\item\em Returns the filename filter for loading. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOVMPropertyModel_a263869da4e91a76262343bbcbaec12d3}\label{classOVMPropertyModel_a263869da4e91a76262343bbcbaec12d3}} 
virtual Q\+String \hyperlink{classOVMPropertyModel_a263869da4e91a76262343bbcbaec12d3}{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{classOVMPropertyModel_ab5438b7dab77e1bfe247dcd3a6880d6d}\label{classOVMPropertyModel_ab5438b7dab77e1bfe247dcd3a6880d6d}} 
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{classOVMPropertyModel_af297a4cc11203e44a8ddc9c1302ae1d4}{combine} ()
\begin{DoxyCompactList}\small\item\em Combines two properties. \end{DoxyCompactList}\item 
bool \hyperlink{classOVMPropertyModel_aa01e929b933e0ef888287de83489b8b7}{combinable} (\hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$property\+Visualizer1, \hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$property\+Visualizer2) const
\begin{DoxyCompactList}\small\item\em Checks if two properties are combinable. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOVMPropertyModel_a17f1f1ca5e0f1c6f0debc83dc912c62d}\label{classOVMPropertyModel_a17f1f1ca5e0f1c6f0debc83dc912c62d}} 
virtual void \hyperlink{classOVMPropertyModel_a17f1f1ca5e0f1c6f0debc83dc912c62d}{save\+Property} ()
\begin{DoxyCompactList}\small\item\em Saves the currently slected properties. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOVMPropertyModel_ab69c5030d4f5b66382dc83ea94f1b443}\label{classOVMPropertyModel_ab69c5030d4f5b66382dc83ea94f1b443}} 
void \hyperlink{classOVMPropertyModel_ab69c5030d4f5b66382dc83ea94f1b443}{gather\+Properties} (MeshT $\ast$mesh, typename Mesh\+T\+::\+Properties\+::const\+\_\+iterator props\+\_\+first, typename Mesh\+T\+::\+Properties\+::const\+\_\+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{classOVMPropertyModel_a1868add06059ef383ccea08ca8761801}\label{classOVMPropertyModel_a1868add06059ef383ccea08ca8761801}} 
void \hyperlink{classOVMPropertyModel_a1868add06059ef383ccea08ca8761801}{gather\+Properties} ()
\begin{DoxyCompactList}\small\item\em Searches for all properties and creates the visualizers. \end{DoxyCompactList}\item 
bool \hyperlink{classOVMPropertyModel_a553efdd6728d9aec7d2367b7a30a12e0}{is\+Supported} (\hyperlink{classOpenVolumeMesh_1_1BaseProperty}{Open\+Volume\+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{classOVMPropertyModel_ad4f8e50b536cd63407777919e3849e53}{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{classOVMPropertyModel_a747d62c42ea0a664641fa4ac94379d0f}{is\+New} (\hyperlink{classOpenVolumeMesh_1_1BaseProperty}{Open\+Volume\+Mesh\+::\+Base\+Property} $\ast$const base\+Prop, Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER filter) const
\begin{DoxyCompactList}\small\item\em Checks if we already created a \hyperlink{classPropertyVisualizer}{Property\+Visualizer} for this property. \end{DoxyCompactList}\item 
bool \hyperlink{classOVMPropertyModel_a9847df97d0b9cda21a28447cc4b3535a}{is\+Property\+Free} (Q\+String prop\+Name, Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER filter, \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} type\+Info)
\begin{DoxyCompactList}\small\item\em Checks if a property name is still available for an entity type and a property type. \end{DoxyCompactList}\item 
\hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \hyperlink{classOVMPropertyModel_a44091ea1b40cc67250e339819d5f3a8b}{get\+Supported\+Type\+Info\+Wrapper} (\hyperlink{classOpenVolumeMesh_1_1BaseProperty}{Open\+Volume\+Mesh\+::\+Base\+Property} $\ast$const base\+Prop) const
\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{classOVMPropertyModel_a678816ac56b9b27cfd6a25e1dfec5ff4}{get\+Supported\+Type\+Info\+Wrapper} (Q\+String friendly\+Name, Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER filter) const
\begin{DoxyCompactList}\small\item\em Returns the \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} for the type of property if it is supported. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classOVMPropertyModel_a114df4116c1027373343cadabba3a5fd}\label{classOVMPropertyModel_a114df4116c1027373343cadabba3a5fd}} 
bool {\bfseries is\+Entity\+Type} (const \hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper} \&type\+Info, Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER entity\+\_\+type) const
\item 
void \hyperlink{classOVMPropertyModel_a2aceb4ef2cf8f9ed7c73e5ccd6f9ea57}{add\+Property\+Visualizer} (\hyperlink{classOpenVolumeMesh_1_1BaseProperty}{Open\+Volume\+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{classOVMPropertyModel_a971ef3bc9ac2bd0f11772bfc8b785541}{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{classOVMPropertyModel_afc562deb10688d4ad870a9fafaa37fb9}\label{classOVMPropertyModel_afc562deb10688d4ad870a9fafaa37fb9}} 
void {\bfseries initialize\+Supported\+Property\+Types} ()
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a9e636cbad6cf5fc97e18b82ae1002c84}\label{classOVMPropertyModel_a9e636cbad6cf5fc97e18b82ae1002c84}} 
MeshT $\ast$ {\bfseries mesh\+\_\+}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a869c8567be88a8b30f358a1d431074e6}\label{classOVMPropertyModel_a869c8567be88a8b30f358a1d431074e6}} 
int {\bfseries object\+I\+D\+\_\+}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a4bc656f5e7d74b301e4186673a78f31c}\label{classOVMPropertyModel_a4bc656f5e7d74b301e4186673a78f31c}} 
Q\+Push\+Button {\bfseries b\+Combine}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a2aefb927b8a40ab1b6b2a66af778fca9}\label{classOVMPropertyModel_a2aefb927b8a40ab1b6b2a66af778fca9}} 
const \hyperlink{classPropertyInfo}{Property\+Info} $\ast$ {\bfseries m\+Combine\+Property1}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a0d1bd353523a639c608c53433daa7ab7}\label{classOVMPropertyModel_a0d1bd353523a639c608c53433daa7ab7}} 
const \hyperlink{classPropertyInfo}{Property\+Info} $\ast$ {\bfseries m\+Combine\+Property2}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a845c6edacf026c92209493928b2b878e}\label{classOVMPropertyModel_a845c6edacf026c92209493928b2b878e}} 
\hyperlink{classLoadSaveWidget}{Load\+Save\+Widget} {\bfseries m\+Load\+Save\+Widget}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a1afa3bf5745b994b7e0bf36005eed44b}\label{classOVMPropertyModel_a1afa3bf5745b994b7e0bf36005eed44b}} 
\hyperlink{classPickWidget}{Pick\+Widget} {\bfseries m\+Pick\+Widget}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a79070e6eb3a71f6f8d796f40019c34ff}\label{classOVMPropertyModel_a79070e6eb3a71f6f8d796f40019c34ff}} 
bool {\bfseries pick\+Mode\+Active}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a52fbbc873ccca758f47bbf68e901ec31}\label{classOVMPropertyModel_a52fbbc873ccca758f47bbf68e901ec31}} 
std\+::string {\bfseries last\+Pick\+Mode}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a8bf27b2f5f2f7ae700e94b3aeb8e92ec}\label{classOVMPropertyModel_a8bf27b2f5f2f7ae700e94b3aeb8e92ec}} 
\hyperlink{ViewerProperties_8hh_a23df76c69888d15a460c61ef853567d8}{Viewer\+::\+Action\+Mode} {\bfseries last\+Action\+Mode}
\item 
\mbox{\Hypertarget{classOVMPropertyModel_a36b619507dfa6a390fbbdbc234e2e7f9}\label{classOVMPropertyModel_a36b619507dfa6a390fbbdbc234e2e7f9}} 
Type\+Info\+Wrapper\+Set {\bfseries supported\+Property\+Types}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


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



Definition at line 72 of file O\+V\+M\+Property\+Model\+T.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classOVMPropertyModel_a971ef3bc9ac2bd0f11772bfc8b785541}\label{classOVMPropertyModel_a971ef3bc9ac2bd0f11772bfc8b785541}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!add\+Property@{add\+Property}}
\index{add\+Property@{add\+Property}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{add\+Property()}{addProperty()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void \hyperlink{classOVMPropertyModel}{O\+V\+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. 

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

\mbox{\Hypertarget{classOVMPropertyModel_a2aceb4ef2cf8f9ed7c73e5ccd6f9ea57}\label{classOVMPropertyModel_a2aceb4ef2cf8f9ed7c73e5ccd6f9ea57}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!add\+Property\+Visualizer@{add\+Property\+Visualizer}}
\index{add\+Property\+Visualizer@{add\+Property\+Visualizer}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{add\+Property\+Visualizer()}{addPropertyVisualizer()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void \hyperlink{classOVMPropertyModel}{O\+V\+M\+Property\+Model}$<$ MeshT $>$\+::add\+Property\+Visualizer (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenVolumeMesh_1_1BaseProperty}{Open\+Volume\+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 739 of file O\+V\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOVMPropertyModel_aa01e929b933e0ef888287de83489b8b7}\label{classOVMPropertyModel_aa01e929b933e0ef888287de83489b8b7}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!combinable@{combinable}}
\index{combinable@{combinable}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{combinable()}{combinable()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOVMPropertyModel}{O\+V\+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}) const\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 393 of file O\+V\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOVMPropertyModel_af297a4cc11203e44a8ddc9c1302ae1d4}\label{classOVMPropertyModel_af297a4cc11203e44a8ddc9c1302ae1d4}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!combine@{combine}}
\index{combine@{combine}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{combine()}{combine()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void \hyperlink{classOVMPropertyModel}{O\+V\+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\+V\+M\+Property\+Visualizer\+Vector\+Field\+Difference$<$\+Mesh\+T$>$ to be exact) but not an additional property. 

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



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

\mbox{\Hypertarget{classOVMPropertyModel_a44091ea1b40cc67250e339819d5f3a8b}\label{classOVMPropertyModel_a44091ea1b40cc67250e339819d5f3a8b}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+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\+V\+M\+Property\+Model@{O\+V\+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{classOVMPropertyModel}{O\+V\+M\+Property\+Model}$<$ MeshT $>$\+::get\+Supported\+Type\+Info\+Wrapper (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenVolumeMesh_1_1BaseProperty}{Open\+Volume\+Mesh\+::\+Base\+Property} $\ast$const}]{base\+Prop }\end{DoxyParamCaption}) const\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 500 of file O\+V\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOVMPropertyModel_a678816ac56b9b27cfd6a25e1dfec5ff4}\label{classOVMPropertyModel_a678816ac56b9b27cfd6a25e1dfec5ff4}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+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\+V\+M\+Property\+Model@{O\+V\+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{classOVMPropertyModel}{O\+V\+M\+Property\+Model}$<$ MeshT $>$\+::get\+Supported\+Type\+Info\+Wrapper (\begin{DoxyParamCaption}\item[{Q\+String}]{friendly\+Name,  }\item[{Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER}]{filter }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [private]}}



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

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


\begin{DoxyParams}{Parameters}
{\em friendly\+Name} & The type we want to visualize in text form. \\
\hline
{\em filter} & The type of the entity\\
\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 522 of file O\+V\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOVMPropertyModel_a747d62c42ea0a664641fa4ac94379d0f}\label{classOVMPropertyModel_a747d62c42ea0a664641fa4ac94379d0f}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!is\+New@{is\+New}}
\index{is\+New@{is\+New}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{is\+New()}{isNew()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOVMPropertyModel}{O\+V\+M\+Property\+Model}$<$ MeshT $>$\+::is\+New (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenVolumeMesh_1_1BaseProperty}{Open\+Volume\+Mesh\+::\+Base\+Property} $\ast$const}]{base\+Prop,  }\item[{Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER}]{filter }\end{DoxyParamCaption}) const\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 480 of file O\+V\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOVMPropertyModel_a9847df97d0b9cda21a28447cc4b3535a}\label{classOVMPropertyModel_a9847df97d0b9cda21a28447cc4b3535a}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!is\+Property\+Free@{is\+Property\+Free}}
\index{is\+Property\+Free@{is\+Property\+Free}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{is\+Property\+Free()}{isPropertyFree()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOVMPropertyModel}{O\+V\+M\+Property\+Model}$<$ MeshT $>$\+::is\+Property\+Free (\begin{DoxyParamCaption}\item[{Q\+String}]{prop\+Name,  }\item[{Property\+Info\+::\+E\+N\+T\+I\+T\+Y\+\_\+\+F\+I\+L\+T\+ER}]{filter,  }\item[{\hyperlink{classTypeInfoWrapper}{Type\+Info\+Wrapper}}]{type\+Info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Checks if a property name is still available for an entity type and a property type. 


\begin{DoxyParams}{Parameters}
{\em prop\+Name} & The name of the property. \\
\hline
{\em filter} & The entity type of the property. \\
\hline
{\em type\+Info} & The type of the property.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if the name is still available, False if already in use. 
\end{DoxyReturn}


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

\mbox{\Hypertarget{classOVMPropertyModel_a553efdd6728d9aec7d2367b7a30a12e0}\label{classOVMPropertyModel_a553efdd6728d9aec7d2367b7a30a12e0}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!is\+Supported@{is\+Supported}}
\index{is\+Supported@{is\+Supported}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{is\+Supported()}{isSupported()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOVMPropertyModel}{O\+V\+M\+Property\+Model}$<$ MeshT $>$\+::is\+Supported (\begin{DoxyParamCaption}\item[{\hyperlink{classOpenVolumeMesh_1_1BaseProperty}{Open\+Volume\+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 441 of file O\+V\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOVMPropertyModel_ad4f8e50b536cd63407777919e3849e53}\label{classOVMPropertyModel_ad4f8e50b536cd63407777919e3849e53}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!is\+Supported@{is\+Supported}}
\index{is\+Supported@{is\+Supported}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{is\+Supported()}{isSupported()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOVMPropertyModel}{O\+V\+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`\"{} and \char`\"{}\+Vec3f\char`\"{} 

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

\mbox{\Hypertarget{classOVMPropertyModel_ae7b74823356f35c044d1fbb99bef4c75}\label{classOVMPropertyModel_ae7b74823356f35c044d1fbb99bef4c75}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!mouse\+Event@{mouse\+Event}}
\index{mouse\+Event@{mouse\+Event}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{mouse\+Event()}{mouseEvent()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
void \hyperlink{classOVMPropertyModel}{O\+V\+M\+Property\+Model}$<$ MeshT $>$\+::mouse\+Event (\begin{DoxyParamCaption}\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event }\end{DoxyParamCaption})\hspace{0.3cm}{\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 167 of file O\+V\+M\+Property\+Model\+T\+\_\+impl.\+hh.

\mbox{\Hypertarget{classOVMPropertyModel_ad4b2dcecf85ae6159fc370d0fac43f41}\label{classOVMPropertyModel_ad4b2dcecf85ae6159fc370d0fac43f41}} 
\index{O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}!parse\+Header@{parse\+Header}}
\index{parse\+Header@{parse\+Header}!O\+V\+M\+Property\+Model@{O\+V\+M\+Property\+Model}}
\subsubsection{\texorpdfstring{parse\+Header()}{parseHeader()}}
{\footnotesize\ttfamily template$<$typename MeshT $>$ \\
bool \hyperlink{classOVMPropertyModel}{O\+V\+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 [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 213 of file O\+V\+M\+Property\+Model\+T\+\_\+impl.\+hh.

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



Toggle picking on and off. 

This method will start and stop the picking. 

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



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



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