\hypertarget{classPolyLineObject}{}\section{Poly\+Line\+Object Class Reference}
\label{classPolyLineObject}\index{Poly\+Line\+Object@{Poly\+Line\+Object}}


{\ttfamily \#include $<$Type-\/\+Poly\+Line/\+Object\+Types/\+Poly\+Line/\+Poly\+Line\+Object.\+hh$>$}

Inheritance diagram for Poly\+Line\+Object\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{classPolyLineObject}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classPolyLineObject_aaf3d7aec12c051ffce297f6f86511c71}\label{classPolyLineObject_aaf3d7aec12c051ffce297f6f86511c71}} 
typedef \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} {\bfseries Poly\+Line\+Type}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classPolyLineObject_a720cb86afaa1977ede9376050de499d1}{Poly\+Line\+Object} ()
\begin{DoxyCompactList}\small\item\em constructor \end{DoxyCompactList}\item 
\hyperlink{classPolyLineObject_a987d707d7cba170e3666e3a78dded3f4}{Poly\+Line\+Object} (const \hyperlink{classPolyLineObject}{Poly\+Line\+Object} \&\+\_\+object)
\begin{DoxyCompactList}\small\item\em copy constructor \end{DoxyCompactList}\item 
virtual \hyperlink{classPolyLineObject_aa2e4a5315a33a3597a3e20d3d9827e46}{$\sim$\+Poly\+Line\+Object} ()
\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
virtual void \hyperlink{classPolyLineObject_ad09632b07ed2be0496a81feb6e52196d}{cleanup} ()
\begin{DoxyCompactList}\small\item\em Reset current object, including all related nodes. \end{DoxyCompactList}\item 
\hyperlink{classBaseObject}{Base\+Object} $\ast$ \hyperlink{classPolyLineObject_a803503fc28a111d392b1f7a1553ee211}{copy} ()
\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Name and Path handling}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classPolyLineObject_a941b6a6f21d58a82817f5920c3e19926}{set\+Name} (Q\+String \+\_\+name)
\begin{DoxyCompactList}\small\item\em Set the name of the Object. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Object Information}\par
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{classPolyLineObject_a6db45f20226b95e2704a6ec27ee2c93a}{get\+Objectinfo} ()
\begin{DoxyCompactList}\small\item\em Get all Info for the Object as a string. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\begin{Indent}\textbf{ Picking}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{classPolyLineObject_ae7d2642deeb351e73e164462f46a47c6}{picked} (uint \+\_\+node\+\_\+idx)
\begin{DoxyCompactList}\small\item\em detect if the node has been picked \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classPolyLineObject_a1fdf3f769bbd5c8149f09d0b85287a7a}\label{classPolyLineObject_a1fdf3f769bbd5c8149f09d0b85287a7a}} 
void \hyperlink{classPolyLineObject_a1fdf3f769bbd5c8149f09d0b85287a7a}{enable\+Picking} (bool \+\_\+enable)
\begin{DoxyCompactList}\small\item\em Enable or disable picking for this Object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classPolyLineObject_af0e1e4d3f711248b01d2d64fd8543e48}\label{classPolyLineObject_af0e1e4d3f711248b01d2d64fd8543e48}} 
bool \hyperlink{classPolyLineObject_af0e1e4d3f711248b01d2d64fd8543e48}{picking\+Enabled} ()
\begin{DoxyCompactList}\small\item\em Check if picking is enabled for this Object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classPolyLineObject_a597c4adc917739d5ce141be3dbecf53e}\label{classPolyLineObject_a597c4adc917739d5ce141be3dbecf53e}} 
\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{classPolyLineObject_a597c4adc917739d5ce141be3dbecf53e}{refine\+Pick} (\hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target} \+\_\+pick\+Target, const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+hit\+Point, const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+start, const \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+dir, const unsigned int \+\_\+target\+Idx)
\begin{DoxyCompactList}\small\item\em Refine picking on triangle meshes. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classPolyLineObject_a2604ca1c02b35dc4ef3bb3d9de793f12}{init} (\hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $\ast$\+\_\+line=0)
\begin{DoxyCompactList}\small\item\em Initialise current object, including all related nodes. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}\textbf{ Update handling}\par
{\em This is mostly private. Updates have to be triggered via emit updated\+Object() }\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{classPolyLineObject_a4e56bcd26d63dd57134cb256483b983f}{update} (\hyperlink{classUpdateType}{Update\+Type} \+\_\+type=\hyperlink{group__DefaultUpdateTypes_ga4ce39b8d60eb78ada5080d032c9463a8}{U\+P\+D\+A\+T\+E\+\_\+\+A\+LL})
\begin{DoxyCompactList}\small\item\em This function is called to update the object. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classPolyLineObject_a0fc8b0d8f2e9977f5f707eb5f19c061e}\label{classPolyLineObject_a0fc8b0d8f2e9977f5f707eb5f19c061e}} 
class {\bfseries Type\+Poly\+Line\+Plugin}
\end{DoxyCompactItemize}
\subsection*{Content}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classPolyLineObject_a95914f4d59050f00ad0a9a5532026de7}\label{classPolyLineObject_a95914f4d59050f00ad0a9a5532026de7}} 
\hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $\ast$ \hyperlink{classPolyLineObject_a95914f4d59050f00ad0a9a5532026de7}{line\+\_\+}
\begin{DoxyCompactList}\small\item\em Pointer to the polyline. \end{DoxyCompactList}\item 
\hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $\ast$ \hyperlink{classPolyLineObject_aea2ec15634f63d19903cdca88b58adb8}{line} ()
\begin{DoxyCompactList}\small\item\em return a pointer to the line \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Visualization}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classPolyLineObject_aa8da673952e666a9650676c1fcf7156a}\label{classPolyLineObject_aa8da673952e666a9650676c1fcf7156a}} 
\hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}$<$ \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$ $\ast$ \hyperlink{classPolyLineObject_aa8da673952e666a9650676c1fcf7156a}{line\+Node\+\_\+}
\begin{DoxyCompactList}\small\item\em Scenegraph Mesh Node. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classPolyLineObject_a612e63f91e9ca104ccefe7f4718a52e5}\label{classPolyLineObject_a612e63f91e9ca104ccefe7f4718a52e5}} 
\hyperlink{classACG_1_1SceneGraph_1_1PolyLineNodeT}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+NodeT}$<$ \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$ $\ast$ \hyperlink{classPolyLineObject_a612e63f91e9ca104ccefe7f4718a52e5}{line\+Node} ()
\begin{DoxyCompactList}\small\item\em Get the scenegraph Node. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
This class provides the functionality for all kind of meshes for the framework 

Definition at line 76 of file Poly\+Line\+Object.\+hh.



\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classPolyLineObject_a720cb86afaa1977ede9376050de499d1}\label{classPolyLineObject_a720cb86afaa1977ede9376050de499d1}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{Poly\+Line\+Object()}{PolyLineObject()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily Poly\+Line\+Object\+::\+Poly\+Line\+Object (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



constructor 

Constructor for Poly\+Line Objects. This object class gets a Separator Node giving the root node to which it should be connected. The line is generated internally and all nodes for visualization will be added below the scenegraph node.~\newline
You dont need to create an object of this type manually. Use Plugin\+Functions\+::add\+Poly\+Line instead. ( see Types.\+hh\+::\+Data\+Type ) 

Definition at line 69 of file Poly\+Line\+Object.\+cc.

\mbox{\Hypertarget{classPolyLineObject_a987d707d7cba170e3666e3a78dded3f4}\label{classPolyLineObject_a987d707d7cba170e3666e3a78dded3f4}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{Poly\+Line\+Object()}{PolyLineObject()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily Poly\+Line\+Object\+::\+Poly\+Line\+Object (\begin{DoxyParamCaption}\item[{const \hyperlink{classPolyLineObject}{Poly\+Line\+Object} \&}]{\+\_\+object }\end{DoxyParamCaption})}



copy constructor 

Create a copy of this object

Copy Constructor -\/ generates a copy of the given object 

Definition at line 84 of file Poly\+Line\+Object.\+cc.

\mbox{\Hypertarget{classPolyLineObject_aa2e4a5315a33a3597a3e20d3d9827e46}\label{classPolyLineObject_aa2e4a5315a33a3597a3e20d3d9827e46}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!````~Poly\+Line\+Object@{$\sim$\+Poly\+Line\+Object}}
\index{````~Poly\+Line\+Object@{$\sim$\+Poly\+Line\+Object}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{$\sim$\+Poly\+Line\+Object()}{~PolyLineObject()}}
{\footnotesize\ttfamily Poly\+Line\+Object\+::$\sim$\+Poly\+Line\+Object (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



destructor 

Destructor for Poly\+Line Objects. The destructor deletes the Line and all Scenegraph nodes associated with the Line or the object. 

Definition at line 96 of file Poly\+Line\+Object.\+cc.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classPolyLineObject_ad09632b07ed2be0496a81feb6e52196d}\label{classPolyLineObject_ad09632b07ed2be0496a81feb6e52196d}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!cleanup@{cleanup}}
\index{cleanup@{cleanup}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{cleanup()}{cleanup()}}
{\footnotesize\ttfamily void Poly\+Line\+Object\+::cleanup (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Reset current object, including all related nodes. 

Cleanup Function for Line Objects. Deletes the contents of the whole object and calls \hyperlink{classPolyLineObject_a2604ca1c02b35dc4ef3bb3d9de793f12}{Poly\+Line\+Object\+::init} afterwards. 

Reimplemented from \hyperlink{classBaseObjectData_abdf84b94d4626b2a5e848afc152bc6e9}{Base\+Object\+Data}.



Definition at line 120 of file Poly\+Line\+Object.\+cc.

\mbox{\Hypertarget{classPolyLineObject_a803503fc28a111d392b1f7a1553ee211}\label{classPolyLineObject_a803503fc28a111d392b1f7a1553ee211}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!copy@{copy}}
\index{copy@{copy}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{copy()}{copy()}}
{\footnotesize\ttfamily \hyperlink{classBaseObject}{Base\+Object} $\ast$ Poly\+Line\+Object\+::copy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}

return a full copy of this object ( All scenegraph nodes will be created ) but the object will not be a part of the object tree.

Generate a copy 

Reimplemented from \hyperlink{classBaseObject_aa914502976b64d3048fe068cd0097e67}{Base\+Object}.



Definition at line 142 of file Poly\+Line\+Object.\+cc.

\mbox{\Hypertarget{classPolyLineObject_a6db45f20226b95e2704a6ec27ee2c93a}\label{classPolyLineObject_a6db45f20226b95e2704a6ec27ee2c93a}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!get\+Objectinfo@{get\+Objectinfo}}
\index{get\+Objectinfo@{get\+Objectinfo}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{get\+Objectinfo()}{getObjectinfo()}}
{\footnotesize\ttfamily Q\+String Poly\+Line\+Object\+::get\+Objectinfo (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Get all Info for the Object as a string. 

Returns a string containing all information about the current object. This also includes the information provided by \hyperlink{classBaseObject_a16966c1c32af694839bc4d31eed8759b}{Base\+Object\+Data\+::get\+Objectinfo}

\begin{DoxyReturn}{Returns}
String containing the object information 
\end{DoxyReturn}


Reimplemented from \hyperlink{classBaseObject_a16966c1c32af694839bc4d31eed8759b}{Base\+Object}.



Definition at line 225 of file Poly\+Line\+Object.\+cc.

\mbox{\Hypertarget{classPolyLineObject_a2604ca1c02b35dc4ef3bb3d9de793f12}\label{classPolyLineObject_a2604ca1c02b35dc4ef3bb3d9de793f12}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!init@{init}}
\index{init@{init}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{init()}{init()}}
{\footnotesize\ttfamily void Poly\+Line\+Object\+::init (\begin{DoxyParamCaption}\item[{\hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $\ast$}]{\+\_\+line = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}



Initialise current object, including all related nodes. 

This function initalizes the line object. It creates the scenegraph nodes, the line. 

Definition at line 150 of file Poly\+Line\+Object.\+cc.

\mbox{\Hypertarget{classPolyLineObject_aea2ec15634f63d19903cdca88b58adb8}\label{classPolyLineObject_aea2ec15634f63d19903cdca88b58adb8}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!line@{line}}
\index{line@{line}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{line()}{line()}}
{\footnotesize\ttfamily \hyperlink{PolyLineTypes_8hh_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $\ast$ Poly\+Line\+Object\+::line (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}



return a pointer to the line 

Get a pointer to the objects line. \begin{DoxyReturn}{Returns}
Pointer to the line 
\end{DoxyReturn}


Definition at line 199 of file Poly\+Line\+Object.\+cc.

\mbox{\Hypertarget{classPolyLineObject_ae7d2642deeb351e73e164462f46a47c6}\label{classPolyLineObject_ae7d2642deeb351e73e164462f46a47c6}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!picked@{picked}}
\index{picked@{picked}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{picked()}{picked()}}
{\footnotesize\ttfamily bool Poly\+Line\+Object\+::picked (\begin{DoxyParamCaption}\item[{uint}]{\+\_\+node\+\_\+idx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



detect if the node has been picked 

Given an node index from \hyperlink{namespacePluginFunctions_aa407abcd8a862ac0addd816e14ae5766}{Plugin\+Functions\+::scenegraph\+Pick} this function can be used to check if the poly\+Line\+Node of the object has been picked.


\begin{DoxyParams}{Parameters}
{\em \+\_\+node\+\_\+idx} & Index of the picked line node \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
bool if the line\+Node of this object is the picking target. 
\end{DoxyReturn}


Reimplemented from \hyperlink{classBaseObjectData_afdb0f57814b92dd4ad19c81b1601857c}{Base\+Object\+Data}.



Definition at line 255 of file Poly\+Line\+Object.\+cc.

\mbox{\Hypertarget{classPolyLineObject_a941b6a6f21d58a82817f5920c3e19926}\label{classPolyLineObject_a941b6a6f21d58a82817f5920c3e19926}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!set\+Name@{set\+Name}}
\index{set\+Name@{set\+Name}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{set\+Name()}{setName()}}
{\footnotesize\ttfamily void Poly\+Line\+Object\+::set\+Name (\begin{DoxyParamCaption}\item[{Q\+String}]{\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [virtual]}}



Set the name of the Object. 

Set the name of an object. All Scenegraph nodes are renamed too. It also calls \hyperlink{classBaseObjectData_aa99cbee24f472c3904aad4c7da0cd947}{Base\+Object\+Data\+::set\+Name}. 

Reimplemented from \hyperlink{classBaseObjectData_aa99cbee24f472c3904aad4c7da0cd947}{Base\+Object\+Data}.



Definition at line 185 of file Poly\+Line\+Object.\+cc.

\mbox{\Hypertarget{classPolyLineObject_a4e56bcd26d63dd57134cb256483b983f}\label{classPolyLineObject_a4e56bcd26d63dd57134cb256483b983f}} 
\index{Poly\+Line\+Object@{Poly\+Line\+Object}!update@{update}}
\index{update@{update}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection{\texorpdfstring{update()}{update()}}
{\footnotesize\ttfamily void Poly\+Line\+Object\+::update (\begin{DoxyParamCaption}\item[{\hyperlink{classUpdateType}{Update\+Type}}]{\+\_\+type = {\ttfamily \hyperlink{group__DefaultUpdateTypes_ga4ce39b8d60eb78ada5080d032c9463a8}{U\+P\+D\+A\+T\+E\+\_\+\+A\+LL}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}



This function is called to update the object. 

If the object changes, the core will call this function. Normally this will update the corresponding scenegraph nodes or trigger other data handling which has to be done when the object changes.

\begin{DoxyNote}{Note}
Do not call this function yourself to avoid unnecessary overhead(the core will call it when it is required) 
\end{DoxyNote}


Reimplemented from \hyperlink{classBaseObjectData_ab2bb7817a0fdb692c0444971620478f0}{Base\+Object\+Data}.



Definition at line 204 of file Poly\+Line\+Object.\+cc.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Type-\/\+Poly\+Line/\+Object\+Types/\+Poly\+Line/\hyperlink{PolyLineObject_8hh}{Poly\+Line\+Object.\+hh}\item 
Type-\/\+Poly\+Line/\+Object\+Types/\+Poly\+Line/Poly\+Line\+Object.\+cc\end{DoxyCompactItemize}
