\hypertarget{classSingleObjectPropertyModel}{}\section{Single\+Object\+Property\+Model Class Reference}
\label{classSingleObjectPropertyModel}\index{Single\+Object\+Property\+Model@{Single\+Object\+Property\+Model}}


This class manages the visualizers for a single object.  




{\ttfamily \#include $<$Plugin-\/\+Property\+Vis/\+Models/\+Single\+Object\+Property\+Model.\+hh$>$}

Inheritance diagram for Single\+Object\+Property\+Model\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=5.000000cm]{classSingleObjectPropertyModel}
\end{center}
\end{figure}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a1904a4b5856b221d78881a581316c003}\label{classSingleObjectPropertyModel_a1904a4b5856b221d78881a581316c003}} 
void {\bfseries log} (\hyperlink{LoggingInterface_8hh_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_aedf6db3ab5d650ce38805ad75babca18}\label{classSingleObjectPropertyModel_aedf6db3ab5d650ce38805ad75babca18}} 
void {\bfseries log} (Q\+String \+\_\+message)
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_aebdebeded17621487d209c502fa62e3e}\label{classSingleObjectPropertyModel_aebdebeded17621487d209c502fa62e3e}} 
virtual void {\bfseries pick\+Mode\+Changed} (const std\+::string \&\+\_\+mode) override
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a3a18ab2b5673dae830f55a4b7d7efe43}\label{classSingleObjectPropertyModel_a3a18ab2b5673dae830f55a4b7d7efe43}} 
virtual void {\bfseries mouse\+Event} (Q\+Mouse\+Event $\ast$\+\_\+event) override
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a85c4f700e7220dff7b968d02662ce62b}\label{classSingleObjectPropertyModel_a85c4f700e7220dff7b968d02662ce62b}} 
{\bfseries Single\+Object\+Property\+Model} (Q\+Object $\ast$parent=0)
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a5f5996722168ece5494976ba4d1d6a64}\label{classSingleObjectPropertyModel_a5f5996722168ece5494976ba4d1d6a64}} 
virtual int {\bfseries row\+Count} (const Q\+Model\+Index \&parent=Q\+Model\+Index()) const override
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_addd5feb1036c112ed00c2d5890215c5e}\label{classSingleObjectPropertyModel_addd5feb1036c112ed00c2d5890215c5e}} 
virtual Q\+Variant {\bfseries data} (const Q\+Model\+Index \&index, int role=Qt\+::\+Display\+Role) const override
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_ae1608b3c6c430501571d1c9edaf1e6de}\label{classSingleObjectPropertyModel_ae1608b3c6c430501571d1c9edaf1e6de}} 
virtual Q\+Variant {\bfseries header\+Data} (int section, Qt\+::\+Orientation orientation, int role=Qt\+::\+Display\+Role) const override
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a549f650dcf2e23164994927eaf252a8c}\label{classSingleObjectPropertyModel_a549f650dcf2e23164994927eaf252a8c}} 
virtual void \hyperlink{classSingleObjectPropertyModel_a549f650dcf2e23164994927eaf252a8c}{object\+Updated} () override
\begin{DoxyCompactList}\small\item\em Revisualizes visualized properties. \end{DoxyCompactList}\item 
virtual void \hyperlink{classSingleObjectPropertyModel_ae4027457c4638bcbfefc93665add7ecb}{visualize} (Q\+Model\+Index\+List selected\+Indices, Q\+Widget\+List widgets=Q\+Widget\+List()) override
\begin{DoxyCompactList}\small\item\em Visualizes the selected properties. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a56b2ce7ca50187928717887861ab636e}\label{classSingleObjectPropertyModel_a56b2ce7ca50187928717887861ab636e}} 
virtual void \hyperlink{classSingleObjectPropertyModel_a56b2ce7ca50187928717887861ab636e}{remove\+Property} (Q\+Model\+Index\+List selected\+Indices) override
\begin{DoxyCompactList}\small\item\em Removes the selected properties. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a7c628e6f82edfbfc6315fc11abe70777}\label{classSingleObjectPropertyModel_a7c628e6f82edfbfc6315fc11abe70777}} 
virtual void \hyperlink{classSingleObjectPropertyModel_a7c628e6f82edfbfc6315fc11abe70777}{duplicate\+Property} (Q\+Model\+Index\+List selected\+Indices) override
\begin{DoxyCompactList}\small\item\em Duplicates the selected properties. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a25f3ee7b3d5c6d27e7f735bfd92fe9e0}\label{classSingleObjectPropertyModel_a25f3ee7b3d5c6d27e7f735bfd92fe9e0}} 
virtual void \hyperlink{classSingleObjectPropertyModel_a25f3ee7b3d5c6d27e7f735bfd92fe9e0}{gather\+Properties} () override
\begin{DoxyCompactList}\small\item\em Searches for properties and creates Property\+Visualizers. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_aee843b3745348fa996e85fa1c2b2cc76}\label{classSingleObjectPropertyModel_aee843b3745348fa996e85fa1c2b2cc76}} 
virtual void \hyperlink{classSingleObjectPropertyModel_aee843b3745348fa996e85fa1c2b2cc76}{clear} (Q\+Model\+Index\+List selected\+Indices) override
\begin{DoxyCompactList}\small\item\em Clears the selected property visualization. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_ab95e9e5b1ea1d7434936cd0124d5f49b}\label{classSingleObjectPropertyModel_ab95e9e5b1ea1d7434936cd0124d5f49b}} 
void \hyperlink{classSingleObjectPropertyModel_ab95e9e5b1ea1d7434936cd0124d5f49b}{hide\+Widget} () override
\begin{DoxyCompactList}\small\item\em Hides the widget. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_ab052fe5bf19eafbab7a874a58c56a772}\label{classSingleObjectPropertyModel_ab052fe5bf19eafbab7a874a58c56a772}} 
Q\+Widget $\ast$ \hyperlink{classSingleObjectPropertyModel_ab052fe5bf19eafbab7a874a58c56a772}{get\+Widget} () override
\begin{DoxyCompactList}\small\item\em Returns the widget. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a1630b903bfd0111b595b9c99bd1ee8af}\label{classSingleObjectPropertyModel_a1630b903bfd0111b595b9c99bd1ee8af}} 
virtual void \hyperlink{classSingleObjectPropertyModel_a1630b903bfd0111b595b9c99bd1ee8af}{update\+Widget} (const Q\+Model\+Index\+List \&selected\+Indices) override
\begin{DoxyCompactList}\small\item\em Updates the widget. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a05d213d29919bd9a773e7ee33d6229a2}\label{classSingleObjectPropertyModel_a05d213d29919bd9a773e7ee33d6229a2}} 
void \hyperlink{classSingleObjectPropertyModel_a05d213d29919bd9a773e7ee33d6229a2}{connect\+Logs} (\hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$prop\+Viz) override
\begin{DoxyCompactList}\small\item\em Connects the \hyperlink{classPropertyVisualizer}{Property\+Visualizer} log signals with the log slot. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_afa52d2da4aedbd78e52362847b785e13}\label{classSingleObjectPropertyModel_afa52d2da4aedbd78e52362847b785e13}} 
virtual \hyperlink{classPropertyInfo}{Property\+Info} \hyperlink{classSingleObjectPropertyModel_afa52d2da4aedbd78e52362847b785e13}{get\+Property\+Info} (const Q\+Model\+Index index) const override
\begin{DoxyCompactList}\small\item\em Returns the property info for the property with the given index. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a6fd300656a28763e9d50e7504743b6b2}\label{classSingleObjectPropertyModel_a6fd300656a28763e9d50e7504743b6b2}} 
virtual Q\+Script\+Value \hyperlink{classSingleObjectPropertyModel_a6fd300656a28763e9d50e7504743b6b2}{get\+Script\+Object} (const Q\+Model\+Index index, Q\+Script\+Context $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Returns a qscript object that can be used to access visualisation parameters. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_af4bde9346ac29fbdef5f5eef397e9c46}\label{classSingleObjectPropertyModel_af4bde9346ac29fbdef5f5eef397e9c46}} 
\hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$ \hyperlink{classSingleObjectPropertyModel_af4bde9346ac29fbdef5f5eef397e9c46}{get\+Property\+Visualizer} (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 Returns a \hyperlink{classPropertyVisualizer}{Property\+Visualizer}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a6c132671fa304e7de5a7392da87e5d49}\label{classSingleObjectPropertyModel_a6c132671fa304e7de5a7392da87e5d49}} 
bool \hyperlink{classSingleObjectPropertyModel_a6c132671fa304e7de5a7392da87e5d49}{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 the property name is still available. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_af07e86f89f01effb47f7e0268677d42e}\label{classSingleObjectPropertyModel_af07e86f89f01effb47f7e0268677d42e}} 
Q\+String \hyperlink{classSingleObjectPropertyModel_af07e86f89f01effb47f7e0268677d42e}{get\+Load\+Filename} ()
\begin{DoxyCompactList}\small\item\em Asks the user for a file to load. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_abc68e43d317e65eaaffe0c56a6938d55}\label{classSingleObjectPropertyModel_abc68e43d317e65eaaffe0c56a6938d55}} 
virtual Q\+String \hyperlink{classSingleObjectPropertyModel_abc68e43d317e65eaaffe0c56a6938d55}{get\+Load\+Filename\+Filter} ()
\begin{DoxyCompactList}\small\item\em Returns the filename filter for loading. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_abca7489be4214a9bfea3a41a5a8835da}\label{classSingleObjectPropertyModel_abca7489be4214a9bfea3a41a5a8835da}} 
Q\+String \hyperlink{classSingleObjectPropertyModel_abca7489be4214a9bfea3a41a5a8835da}{get\+Save\+Filename} (unsigned int prop\+Id)
\begin{DoxyCompactList}\small\item\em Asks the user for a file to load. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a56d38e86456411852c3a9e86ec4c28ff}\label{classSingleObjectPropertyModel_a56d38e86456411852c3a9e86ec4c28ff}} 
virtual Q\+String \hyperlink{classSingleObjectPropertyModel_a56d38e86456411852c3a9e86ec4c28ff}{get\+Save\+Filename\+Filter} (unsigned int prop\+Id)
\begin{DoxyCompactList}\small\item\em Returns the filename filter for saving. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_adfb8922a43daaea18b4a81633b4a97fb}\label{classSingleObjectPropertyModel_adfb8922a43daaea18b4a81633b4a97fb}} 
virtual Q\+String \hyperlink{classSingleObjectPropertyModel_adfb8922a43daaea18b4a81633b4a97fb}{get\+Default\+Save\+Filename} (unsigned int prop\+Id)
\begin{DoxyCompactList}\small\item\em Returns the default file name. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a8c8069d7a5d6cfc2a90e44f87edade58}\label{classSingleObjectPropertyModel_a8c8069d7a5d6cfc2a90e44f87edade58}} 
void \hyperlink{classSingleObjectPropertyModel_a8c8069d7a5d6cfc2a90e44f87edade58}{save\+Property} (unsigned int prop\+Id)
\begin{DoxyCompactList}\small\item\em Saves property. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_ab6253f64fd0769bf618f269506cc3cff}\label{classSingleObjectPropertyModel_ab6253f64fd0769bf618f269506cc3cff}} 
void \hyperlink{classSingleObjectPropertyModel_ab6253f64fd0769bf618f269506cc3cff}{load\+Property} ()
\begin{DoxyCompactList}\small\item\em Loads property. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_af7d0100876d9e83904a9d85daeae3fa0}\label{classSingleObjectPropertyModel_af7d0100876d9e83904a9d85daeae3fa0}} 
virtual void \hyperlink{classSingleObjectPropertyModel_af7d0100876d9e83904a9d85daeae3fa0}{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 
virtual bool \hyperlink{classSingleObjectPropertyModel_a6790c49b36b219d9e746024109f675fc}{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*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a3ad3d6bdc84b26c39a1225ebf7eba427}\label{classSingleObjectPropertyModel_a3ad3d6bdc84b26c39a1225ebf7eba427}} 
std\+::vector$<$ \hyperlink{classPropertyVisualizer}{Property\+Visualizer} $\ast$ $>$ {\bfseries property\+Visualizers}
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a361b836616273776221980bf0e6ab558}\label{classSingleObjectPropertyModel_a361b836616273776221980bf0e6ab558}} 
Q\+Widget $\ast$ {\bfseries widgets}
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_ab26563594fc53f97ce2398d0299a9de8}\label{classSingleObjectPropertyModel_ab26563594fc53f97ce2398d0299a9de8}} 
Q\+Model\+Index\+List {\bfseries currently\+Selected\+Indices}
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a97e5d84e2d8f55c0f594f808c8f44e82}\label{classSingleObjectPropertyModel_a97e5d84e2d8f55c0f594f808c8f44e82}} 
std\+::vector$<$ unsigned int $>$ {\bfseries currently\+Visualized\+Indices}
\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a4f55a4c58907b3c64e48b786e054937b}\label{classSingleObjectPropertyModel_a4f55a4c58907b3c64e48b786e054937b}} 
void {\bfseries slot\+Log} (\hyperlink{LoggingInterface_8hh_a595b2880f3ae74561ba390e3fd8c0e7c}{Logtype} \+\_\+type, Q\+String \+\_\+message)
\item 
\mbox{\Hypertarget{classSingleObjectPropertyModel_a9bed71e3d3791db2877ffec13c3f33e1}\label{classSingleObjectPropertyModel_a9bed71e3d3791db2877ffec13c3f33e1}} 
void {\bfseries slot\+Log} (Q\+String \+\_\+message)
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This class manages the visualizers for a single object. 

For each mesh object a \hyperlink{classSingleObjectPropertyModel}{Single\+Object\+Property\+Model} is created. It searches for properties and creates a \hyperlink{classPropertyVisualizer}{Property\+Visualizer} for each of them. It provides the G\+UI for all selected properties. Also loading and saving of properties is handled here.

Note that for each type of object (\hyperlink{namespaceOpenMesh}{Open\+Mesh}, Open\+Volume\+Mesh and others that might follow) a subclass should be derived from this class. 

Definition at line 74 of file Single\+Object\+Property\+Model.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classSingleObjectPropertyModel_a6790c49b36b219d9e746024109f675fc}\label{classSingleObjectPropertyModel_a6790c49b36b219d9e746024109f675fc}} 
\index{Single\+Object\+Property\+Model@{Single\+Object\+Property\+Model}!parse\+Header@{parse\+Header}}
\index{parse\+Header@{parse\+Header}!Single\+Object\+Property\+Model@{Single\+Object\+Property\+Model}}
\subsubsection{\texorpdfstring{parse\+Header()}{parseHeader()}}
{\footnotesize\ttfamily virtual bool Single\+Object\+Property\+Model\+::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 [inline]}, {\ttfamily [protected]}, {\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 in \hyperlink{classOVMPropertyModel_ad4b2dcecf85ae6159fc370d0fac43f41}{O\+V\+M\+Property\+Model$<$ Mesh\+T $>$}, and \hyperlink{classOMPropertyModel_a6e2002586e5a7eaea735b290a546da2f}{O\+M\+Property\+Model$<$ Mesh\+T $>$}.



Definition at line 178 of file Single\+Object\+Property\+Model.\+hh.

\mbox{\Hypertarget{classSingleObjectPropertyModel_ae4027457c4638bcbfefc93665add7ecb}\label{classSingleObjectPropertyModel_ae4027457c4638bcbfefc93665add7ecb}} 
\index{Single\+Object\+Property\+Model@{Single\+Object\+Property\+Model}!visualize@{visualize}}
\index{visualize@{visualize}!Single\+Object\+Property\+Model@{Single\+Object\+Property\+Model}}
\subsubsection{\texorpdfstring{visualize()}{visualize()}}
{\footnotesize\ttfamily void Single\+Object\+Property\+Model\+::visualize (\begin{DoxyParamCaption}\item[{Q\+Model\+Index\+List}]{selected\+Indices,  }\item[{Q\+Widget\+List}]{widgets = {\ttfamily QWidgetList()} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}



Visualizes the selected properties. 


\begin{DoxyParams}{Parameters}
{\em selected\+Indices} & The \\
\hline
\end{DoxyParams}


Implements \hyperlink{classPropertyModel_a54ad170a5c5a1de2f4ba038b7626822a}{Property\+Model}.



Definition at line 70 of file Single\+Object\+Property\+Model.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Plugin-\/\+Property\+Vis/\+Models/Single\+Object\+Property\+Model.\+hh\item 
Plugin-\/\+Property\+Vis/\+Models/Single\+Object\+Property\+Model.\+cc\end{DoxyCompactItemize}
