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


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

Inheritance diagram for Poly\+Line\+Object\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{a00984}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00984_aaf3d7aec12c051ffce297f6f86511c71}{typedef \hyperlink{a02341_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} {\bfseries Poly\+Line\+Type}}\label{a00984_aaf3d7aec12c051ffce297f6f86511c71}

\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a00984_a720cb86afaa1977ede9376050de499d1}{Poly\+Line\+Object} ()
\begin{DoxyCompactList}\small\item\em constructor \end{DoxyCompactList}\item 
\hyperlink{a00984_a987d707d7cba170e3666e3a78dded3f4}{Poly\+Line\+Object} (const \hyperlink{a00984}{Poly\+Line\+Object} \&\+\_\+object)
\begin{DoxyCompactList}\small\item\em copy constructor \end{DoxyCompactList}\item 
virtual \hyperlink{a00984_aa2e4a5315a33a3597a3e20d3d9827e46}{$\sim$\+Poly\+Line\+Object} ()
\begin{DoxyCompactList}\small\item\em destructor \end{DoxyCompactList}\item 
virtual void \hyperlink{a00984_ad09632b07ed2be0496a81feb6e52196d}{cleanup} ()
\begin{DoxyCompactList}\small\item\em Reset current object, including all related nodes. \end{DoxyCompactList}\item 
\hyperlink{a00329}{Base\+Object} $\ast$ \hyperlink{a00984_a803503fc28a111d392b1f7a1553ee211}{copy} ()
\end{DoxyCompactItemize}
\begin{Indent}{\bf Name and Path handling}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00984_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}{\bf Object Information}\par
\begin{DoxyCompactItemize}
\item 
Q\+String \hyperlink{a00984_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}{\bf Picking}\par
\begin{DoxyCompactItemize}
\item 
bool \hyperlink{a00984_ae7d2642deeb351e73e164462f46a47c6}{picked} (uint \+\_\+node\+\_\+idx)
\begin{DoxyCompactList}\small\item\em detect if the node has been picked \end{DoxyCompactList}\item 
\hypertarget{a00984_a1fdf3f769bbd5c8149f09d0b85287a7a}{void \hyperlink{a00984_a1fdf3f769bbd5c8149f09d0b85287a7a}{enable\+Picking} (bool \+\_\+enable)}\label{a00984_a1fdf3f769bbd5c8149f09d0b85287a7a}

\begin{DoxyCompactList}\small\item\em Enable or disable picking for this Object. \end{DoxyCompactList}\item 
\hypertarget{a00984_af0e1e4d3f711248b01d2d64fd8543e48}{bool \hyperlink{a00984_af0e1e4d3f711248b01d2d64fd8543e48}{picking\+Enabled} ()}\label{a00984_af0e1e4d3f711248b01d2d64fd8543e48}

\begin{DoxyCompactList}\small\item\em Check if picking is enabled for this Object. \end{DoxyCompactList}\item 
\hypertarget{a00984_a597c4adc917739d5ce141be3dbecf53e}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00984_a597c4adc917739d5ce141be3dbecf53e}{refine\+Pick} (\hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target} \+\_\+pick\+Target, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+hit\+Point, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+start, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+dir, const unsigned int \+\_\+target\+Idx)}\label{a00984_a597c4adc917739d5ce141be3dbecf53e}

\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{a00984_a2604ca1c02b35dc4ef3bb3d9de793f12}{init} (\hyperlink{a02341_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $\ast$\+\_\+line=0)
\begin{DoxyCompactList}\small\item\em Initialise current object, including all related nodes. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf Update handling}\par
{\em This is mostly private. Updates have to be triggered via emit updated\+Object() }\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a00984_a4e56bcd26d63dd57134cb256483b983f}{update} (\hyperlink{a01393}{Update\+Type} \+\_\+type=\hyperlink{a03407_ga4ce39b8d60eb78ada5080d032c9463a8}{U\+P\+D\+A\+T\+E\+\_\+\+A\+L\+L})
\begin{DoxyCompactList}\small\item\em This function is called to update the object. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00984_a0fc8b0d8f2e9977f5f707eb5f19c061e}{class {\bfseries Type\+Poly\+Line\+Plugin}}\label{a00984_a0fc8b0d8f2e9977f5f707eb5f19c061e}

\end{DoxyCompactItemize}
\subsection*{Content}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00984_a95914f4d59050f00ad0a9a5532026de7}{\hyperlink{a02341_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $\ast$ \hyperlink{a00984_a95914f4d59050f00ad0a9a5532026de7}{line\+\_\+}}\label{a00984_a95914f4d59050f00ad0a9a5532026de7}

\begin{DoxyCompactList}\small\item\em Pointer to the polyline. \end{DoxyCompactList}\item 
\hyperlink{a02341_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $\ast$ \hyperlink{a00984_aea2ec15634f63d19903cdca88b58adb8}{line} ()
\begin{DoxyCompactList}\small\item\em return a pointer to the line \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Visualization}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00984_aa8da673952e666a9650676c1fcf7156a}{\hyperlink{a00983}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T}\\*
$<$ \hyperlink{a02341_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$ $\ast$ \hyperlink{a00984_aa8da673952e666a9650676c1fcf7156a}{line\+Node\+\_\+}}\label{a00984_aa8da673952e666a9650676c1fcf7156a}

\begin{DoxyCompactList}\small\item\em Scenegraph Mesh Node. \end{DoxyCompactList}\item 
\hypertarget{a00984_a612e63f91e9ca104ccefe7f4718a52e5}{\hyperlink{a00983}{A\+C\+G\+::\+Scene\+Graph\+::\+Poly\+Line\+Node\+T}\\*
$<$ \hyperlink{a02341_ab54c407eed4ac40b810973a3f9f397bf}{Poly\+Line} $>$ $\ast$ \hyperlink{a00984_a612e63f91e9ca104ccefe7f4718a52e5}{line\+Node} ()}\label{a00984_a612e63f91e9ca104ccefe7f4718a52e5}

\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 82 of file Poly\+Line\+Object.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00984_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[{Poly\+Line\+Object}]{\setlength{\rightskip}{0pt plus 5cm}Poly\+Line\+Object\+::\+Poly\+Line\+Object (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a00984_a720cb86afaa1977ede9376050de499d1}


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 75 of file Poly\+Line\+Object.\+cc.

\hypertarget{a00984_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[{Poly\+Line\+Object}]{\setlength{\rightskip}{0pt plus 5cm}Poly\+Line\+Object\+::\+Poly\+Line\+Object (
\begin{DoxyParamCaption}
\item[{const {\bf Poly\+Line\+Object} \&}]{\+\_\+object}
\end{DoxyParamCaption}
)}}\label{a00984_a987d707d7cba170e3666e3a78dded3f4}


copy constructor 

Create a copy of this object

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

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

\hypertarget{a00984_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[{$\sim$\+Poly\+Line\+Object}]{\setlength{\rightskip}{0pt plus 5cm}Poly\+Line\+Object\+::$\sim$\+Poly\+Line\+Object (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00984_aa2e4a5315a33a3597a3e20d3d9827e46}


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 102 of file Poly\+Line\+Object.\+cc.



\subsection{Member Function Documentation}
\hypertarget{a00984_ad09632b07ed2be0496a81feb6e52196d}{\index{Poly\+Line\+Object@{Poly\+Line\+Object}!cleanup@{cleanup}}
\index{cleanup@{cleanup}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection[{cleanup}]{\setlength{\rightskip}{0pt plus 5cm}void Poly\+Line\+Object\+::cleanup (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00984_ad09632b07ed2be0496a81feb6e52196d}


Reset current object, including all related nodes. 

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

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



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

\hypertarget{a00984_a803503fc28a111d392b1f7a1553ee211}{\index{Poly\+Line\+Object@{Poly\+Line\+Object}!copy@{copy}}
\index{copy@{copy}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection[{copy}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Base\+Object} $\ast$ Poly\+Line\+Object\+::copy (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00984_a803503fc28a111d392b1f7a1553ee211}
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{a00329_aa914502976b64d3048fe068cd0097e67}{Base\+Object}.



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

\hypertarget{a00984_a6db45f20226b95e2704a6ec27ee2c93a}{\index{Poly\+Line\+Object@{Poly\+Line\+Object}!get\+Objectinfo@{get\+Objectinfo}}
\index{get\+Objectinfo@{get\+Objectinfo}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection[{get\+Objectinfo}]{\setlength{\rightskip}{0pt plus 5cm}Q\+String Poly\+Line\+Object\+::get\+Objectinfo (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00984_a6db45f20226b95e2704a6ec27ee2c93a}


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{a00329_a16966c1c32af694839bc4d31eed8759b}{Base\+Object\+Data\+::get\+Objectinfo}

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


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



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

\hypertarget{a00984_a2604ca1c02b35dc4ef3bb3d9de793f12}{\index{Poly\+Line\+Object@{Poly\+Line\+Object}!init@{init}}
\index{init@{init}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection[{init}]{\setlength{\rightskip}{0pt plus 5cm}void Poly\+Line\+Object\+::init (
\begin{DoxyParamCaption}
\item[{{\bf Poly\+Line} $\ast$}]{\+\_\+line = {\ttfamily 0}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}}\label{a00984_a2604ca1c02b35dc4ef3bb3d9de793f12}


Initialise current object, including all related nodes. 

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

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

\hypertarget{a00984_aea2ec15634f63d19903cdca88b58adb8}{\index{Poly\+Line\+Object@{Poly\+Line\+Object}!line@{line}}
\index{line@{line}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection[{line}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Poly\+Line} $\ast$ Poly\+Line\+Object\+::line (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)}}\label{a00984_aea2ec15634f63d19903cdca88b58adb8}


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 205 of file Poly\+Line\+Object.\+cc.

\hypertarget{a00984_ae7d2642deeb351e73e164462f46a47c6}{\index{Poly\+Line\+Object@{Poly\+Line\+Object}!picked@{picked}}
\index{picked@{picked}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection[{picked}]{\setlength{\rightskip}{0pt plus 5cm}bool Poly\+Line\+Object\+::picked (
\begin{DoxyParamCaption}
\item[{uint}]{\+\_\+node\+\_\+idx}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00984_ae7d2642deeb351e73e164462f46a47c6}


detect if the node has been picked 

Given an node index from \hyperlink{a03393_a0ae515c8553f9e7f671bd2627bbecf6a}{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{a00330_afdb0f57814b92dd4ad19c81b1601857c}{Base\+Object\+Data}.



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

\hypertarget{a00984_a941b6a6f21d58a82817f5920c3e19926}{\index{Poly\+Line\+Object@{Poly\+Line\+Object}!set\+Name@{set\+Name}}
\index{set\+Name@{set\+Name}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection[{set\+Name}]{\setlength{\rightskip}{0pt plus 5cm}void Poly\+Line\+Object\+::set\+Name (
\begin{DoxyParamCaption}
\item[{Q\+String}]{\+\_\+name}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00984_a941b6a6f21d58a82817f5920c3e19926}


Set the name of the Object. 

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

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



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

\hypertarget{a00984_a4e56bcd26d63dd57134cb256483b983f}{\index{Poly\+Line\+Object@{Poly\+Line\+Object}!update@{update}}
\index{update@{update}!Poly\+Line\+Object@{Poly\+Line\+Object}}
\subsubsection[{update}]{\setlength{\rightskip}{0pt plus 5cm}void Poly\+Line\+Object\+::update (
\begin{DoxyParamCaption}
\item[{{\bf Update\+Type}}]{\+\_\+type = {\ttfamily {\bf U\+P\+D\+A\+T\+E\+\_\+\+A\+L\+L}}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}}\label{a00984_a4e56bcd26d63dd57134cb256483b983f}


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{a00330_a26063c9234d22ec1306e4f163e3f88be}{Base\+Object\+Data}.



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



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