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


This class manages the creation of Property\+Models.  




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

\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a10348}{Property\+Model} $\ast$ \hyperlink{a10352_a3051e9a28f39dadae9f138d1f172a33b}{get\+Model} (int object\+ID)
\begin{DoxyCompactList}\small\item\em Returns the \hyperlink{a10348}{Property\+Model}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a10352_ac584dd666ed50742cbfad6a63d810a74}\label{a10352_ac584dd666ed50742cbfad6a63d810a74}} 
void \hyperlink{a10352_ac584dd666ed50742cbfad6a63d810a74}{delete\+Model} (int object\+ID)
\begin{DoxyCompactList}\small\item\em Deletes the \hyperlink{a10348}{Property\+Model}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10352_aef441e56c9c64b9907f0f897131e855e}\label{a10352_aef441e56c9c64b9907f0f897131e855e}} 
typedef std\+::map$<$ int, \hyperlink{a10348}{Property\+Model} $\ast$ $>$ {\bfseries Property\+Model\+Map}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10352_a18d0ea5f57e4e5a937391e0f1e87c29f}\label{a10352_a18d0ea5f57e4e5a937391e0f1e87c29f}} 
{\bfseries \+\_\+\+\_\+\+Property\+Model\+Factory} (\hyperlink{a10352}{\+\_\+\+\_\+\+Property\+Model\+Factory} \&)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10352_af60200354eb902535c93ffca6f23bc78}\label{a10352_af60200354eb902535c93ffca6f23bc78}} 
Property\+Model\+Map {\bfseries property\+Model\+Map}
\end{DoxyCompactItemize}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a10352_a5bb0652a8534f758a5c8611ff6c655b0}\label{a10352_a5bb0652a8534f758a5c8611ff6c655b0}} 
class {\bfseries Open\+Mesh\+::\+Singleton\+T$<$ \+\_\+\+\_\+\+Property\+Model\+Factory $>$}
\end{DoxyCompactItemize}


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

This class is used to create the correct \hyperlink{a10348}{Property\+Model} for a given object. Using this factory the \hyperlink{a10460}{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{a10348}{Property\+Model}.

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

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

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



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a10352_a3051e9a28f39dadae9f138d1f172a33b}\label{a10352_a3051e9a28f39dadae9f138d1f172a33b}} 
\index{\+\_\+\+\_\+\+Property\+Model\+Factory@{\+\_\+\+\_\+\+Property\+Model\+Factory}!get\+Model@{get\+Model}}
\index{get\+Model@{get\+Model}!\+\_\+\+\_\+\+Property\+Model\+Factory@{\+\_\+\+\_\+\+Property\+Model\+Factory}}
\subsubsection{\texorpdfstring{get\+Model()}{getModel()}}
{\footnotesize\ttfamily \hyperlink{a10348}{Property\+Model} $\ast$ \+\_\+\+\_\+\+Property\+Model\+Factory\+::get\+Model (\begin{DoxyParamCaption}\item[{int}]{object\+ID }\end{DoxyParamCaption})}



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


\begin{DoxyParams}{Parameters}
{\em object\+ID} & The index of the object for which we want to get the property model \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The \hyperlink{a10348}{Property\+Model}.
\end{DoxyReturn}
For the given object\+ID this method finds out which type the object has and creates and return the \hyperlink{a10348}{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{a10348}{Property\+Model} with no functionality will be returned. 

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



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