\hypertarget{a00253}{\section{\+\_\+\+\_\+\+Property\+Model\+Factory Class Reference}
\label{a00253}\index{\+\_\+\+\_\+\+Property\+Model\+Factory@{\+\_\+\+\_\+\+Property\+Model\+Factory}}
}


This class manages the creation of Property\+Models.  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a01036}{Property\+Model} $\ast$ \hyperlink{a00253_a3051e9a28f39dadae9f138d1f172a33b}{get\+Model} (int object\+I\+D)
\begin{DoxyCompactList}\small\item\em Returns the \hyperlink{a01036}{Property\+Model}. \end{DoxyCompactList}\item 
\hypertarget{a00253_ac584dd666ed50742cbfad6a63d810a74}{void \hyperlink{a00253_ac584dd666ed50742cbfad6a63d810a74}{delete\+Model} (int object\+I\+D)}\label{a00253_ac584dd666ed50742cbfad6a63d810a74}

\begin{DoxyCompactList}\small\item\em Deletes the \hyperlink{a01036}{Property\+Model}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00253_aef441e56c9c64b9907f0f897131e855e}{typedef std\+::map$<$ int, \\*
\hyperlink{a01036}{Property\+Model} $\ast$ $>$ {\bfseries Property\+Model\+Map}}\label{a00253_aef441e56c9c64b9907f0f897131e855e}

\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00253_a18d0ea5f57e4e5a937391e0f1e87c29f}{{\bfseries \+\_\+\+\_\+\+Property\+Model\+Factory} (\hyperlink{a00253}{\+\_\+\+\_\+\+Property\+Model\+Factory} \&)}\label{a00253_a18d0ea5f57e4e5a937391e0f1e87c29f}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00253_af60200354eb902535c93ffca6f23bc78}{Property\+Model\+Map {\bfseries property\+Model\+Map}}\label{a00253_af60200354eb902535c93ffca6f23bc78}

\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00253_a5bb0652a8534f758a5c8611ff6c655b0}{class {\bfseries Open\+Mesh\+::\+Singleton\+T$<$ \+\_\+\+\_\+\+Property\+Model\+Factory $>$}}\label{a00253_a5bb0652a8534f758a5c8611ff6c655b0}

\end{DoxyCompactItemize}


\subsection{Detailed Description}
This class manages the creation of Property\+Models. 

This class is used to create the correct \hyperlink{a01036}{Property\+Model} for a given object. Using this factory the \hyperlink{a01046}{Property\+Vis\+Plugin} does not need to know about different object types such as Tri\+Mesh, Poly\+Mesh, Polyhedral\+Mesh etc. If in future a new type of object should be visualized only the factory needs to be updated in order to recognize the new type and create the correct \hyperlink{a01036}{Property\+Model}.

A map of Property\+Models is kept so that for each object only one \hyperlink{a01036}{Property\+Model} is created.

Note that this class is transformed to a Singleton and accessed via \hyperlink{a01181_a1cfb84dcdf0ebf3374fddaaec0655b9a}{Property\+Model\+Factory\+::\+Instance()}. 

Definition at line 76 of file Property\+Model\+Factory.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00253_a3051e9a28f39dadae9f138d1f172a33b}{\index{\+\_\+\+\_\+\+Property\+Model\+Factory@{\+\_\+\+\_\+\+Property\+Model\+Factory}!get\+Model@{get\+Model}}
\index{get\+Model@{get\+Model}!\+\_\+\+\_\+\+Property\+Model\+Factory@{\+\_\+\+\_\+\+Property\+Model\+Factory}}
\subsubsection[{get\+Model}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Property\+Model} $\ast$ \+\_\+\+\_\+\+Property\+Model\+Factory\+::get\+Model (
\begin{DoxyParamCaption}
\item[{int}]{object\+I\+D}
\end{DoxyParamCaption}
)}}\label{a00253_a3051e9a28f39dadae9f138d1f172a33b}


Returns the \hyperlink{a01036}{Property\+Model}. 


\begin{DoxyParams}{Parameters}
{\em object\+I\+D} & The index of the object for which we want to get the property model \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The \hyperlink{a01036}{Property\+Model}.
\end{DoxyReturn}
For the given object\+I\+D this method finds out which type the object has and creates and return the \hyperlink{a01036}{Property\+Model} for that type of object.

Currently supported are Tri\+Mesh, Poly\+Mesh and -\/ if found -\/ also Polyhedral\+Mesh and Hexahedral\+Mesh. For an unrecognized object a \hyperlink{a01036}{Property\+Model} with no functionality will be returned. 

Definition at line 81 of file Property\+Model\+Factory.\+cc.



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