\hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode}{}\section{A\+CG\+:\+:Scene\+Graph\+:\+:Manipulator\+Node Class Reference}
\label{classACG_1_1SceneGraph_1_1ManipulatorNode}\index{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node}}


{\ttfamily \#include $<$A\+C\+G/\+Scenegraph/\+Manipulator\+Node.\+hh$>$}

Inheritance diagram for A\+CG\+:\+:Scene\+Graph\+:\+:Manipulator\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{classACG_1_1SceneGraph_1_1ManipulatorNode}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a000a626454d67ef0a4e815d733895de6}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a000a626454d67ef0a4e815d733895de6}} 
\hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a000a626454d67ef0a4e815d733895de6}{Manipulator\+Node} (\hyperlink{classACG_1_1SceneGraph_1_1BaseNode}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Manipulator\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_ad80af54f212b57b4cb7dcf46a4435657}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_ad80af54f212b57b4cb7dcf46a4435657}} 
\hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_ad80af54f212b57b4cb7dcf46a4435657}{$\sim$\+Manipulator\+Node} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a3a099fbeb94dcfd09b5be29e73485938}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a3a099fbeb94dcfd09b5be29e73485938}} 
\hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a3a099fbeb94dcfd09b5be29e73485938}{A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+ME} (\hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode}{Manipulator\+Node})
\begin{DoxyCompactList}\small\item\em class name \end{DoxyCompactList}\item 
virtual void \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_ac2a325cdedcdbac5aac7e452c9e74971}{set\+Identity} () override
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a3ff7e2ea4f6302021acaee8254097fee}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a3ff7e2ea4f6302021acaee8254097fee}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a3ff7e2ea4f6302021acaee8254097fee}{set\+\_\+draw\+\_\+cylinder} (bool \+\_\+b)
\begin{DoxyCompactList}\small\item\em set draw\+\_\+cylinder\+\_\+ \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a6e335c13dbc2923c0b110da36696da97}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a6e335c13dbc2923c0b110da36696da97}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a6e335c13dbc2923c0b110da36696da97}{draw\+\_\+cylinder} () const
\begin{DoxyCompactList}\small\item\em get draw\+Cylinder \end{DoxyCompactList}\item 
void \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a17f4b85372a4d1ea815c3ae869a4f615}{set\+\_\+direction} (\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+v)
\item 
\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_abff170b62e13aad10150938beab90894}{direction} () const
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a2b7b13913ca27ee75979b4588a099a38}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a2b7b13913ca27ee75979b4588a099a38}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a2b7b13913ca27ee75979b4588a099a38}{set\+\_\+size} (double \+\_\+size)
\begin{DoxyCompactList}\small\item\em set cylindersize (height + radius) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_ae5ca0c87e2cbd7db0799db9aa96a6a6c}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_ae5ca0c87e2cbd7db0799db9aa96a6a6c}} 
double \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_ae5ca0c87e2cbd7db0799db9aa96a6a6c}{size} () const
\begin{DoxyCompactList}\small\item\em get cylindersize \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_acbda9e4702af2dac76ad2207eb4ca82c}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_acbda9e4702af2dac76ad2207eb4ca82c}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_acbda9e4702af2dac76ad2207eb4ca82c}{translate} (double \+\_\+s)
\begin{DoxyCompactList}\small\item\em translate in cylinder direction \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a41b6fd06e8b2494141796126829beab1}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a41b6fd06e8b2494141796126829beab1}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a41b6fd06e8b2494141796126829beab1}{draw} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, const \hyperlink{classACG_1_1SceneGraph_1_1DrawModes_1_1DrawMode}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode) override
\begin{DoxyCompactList}\small\item\em draw the cylinder (if enabled) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_aa037239ce7d540d252045483954d8a7a}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_aa037239ce7d540d252045483954d8a7a}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_aa037239ce7d540d252045483954d8a7a}{pick} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, \hyperlink{namespaceACG_1_1SceneGraph_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target) override
\begin{DoxyCompactList}\small\item\em picking \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a66fb90e8f8d605441bb3aa87fcfd40df}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a66fb90e8f8d605441bb3aa87fcfd40df}} 
virtual void \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a66fb90e8f8d605441bb3aa87fcfd40df}{mouse\+Event} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, Q\+Mouse\+Event $\ast$\+\_\+event) override
\begin{DoxyCompactList}\small\item\em get mouse events \end{DoxyCompactList}\item 
bool \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_ad95048ca1a34bf02aa3eb10999bb724c}{touched} ()
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a0009a754d819f1e25f9e07fac39d8c3f}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a0009a754d819f1e25f9e07fac39d8c3f}} 
void \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a0009a754d819f1e25f9e07fac39d8c3f}{reset\+\_\+touched} ()
\begin{DoxyCompactList}\small\item\em Reset the touched flag ( see touched for details ) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_adc98768d67435f71733b8f2db150a7f3}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_adc98768d67435f71733b8f2db150a7f3}} 
void {\bfseries setup\+\_\+sphere\+\_\+system} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a0eed1603a74b7e369a7b6adcf2e50513}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a0eed1603a74b7e369a7b6adcf2e50513}} 
void {\bfseries setup\+\_\+cylinder\+\_\+system} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_accb3170c99d4b85a62596e5d9a6d5569}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_accb3170c99d4b85a62596e5d9a6d5569}} 
bool {\bfseries map\+To\+Sphere} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, const \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2, \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+v3)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_ae043bccfecddbf72aa31ad420bc37c04}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_ae043bccfecddbf72aa31ad420bc37c04}} 
bool {\bfseries hit\+Sphere} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, const \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2)
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_adf35a2787164602a5011fa25864f5d9e}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_adf35a2787164602a5011fa25864f5d9e}} 
bool {\bfseries map\+To\+Cylinder} (\hyperlink{classACG_1_1GLState}{G\+L\+State} \&\+\_\+state, const \hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2, double \&axis\+\_\+hit)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a8946eaf2a9942b795fd914c3feb61f65}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a8946eaf2a9942b795fd914c3feb61f65}} 
bool {\bfseries draw\+\_\+cylinder\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_ae4a1451dc2de5cefe3d81c6c9891a6e5}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_ae4a1451dc2de5cefe3d81c6c9891a6e5}} 
\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries direction\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a331959941a1482056898a5d2131c37dc}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a331959941a1482056898a5d2131c37dc}} 
\hyperlink{classACG_1_1GLCylinder}{G\+L\+Cylinder} $\ast$ {\bfseries cylinder\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_aa77fb1153b46322a6a3b2431cc1e06da}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_aa77fb1153b46322a6a3b2431cc1e06da}} 
double {\bfseries cylinder\+\_\+radius\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_af09b1218d55c81d8fcea1999496da326}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_af09b1218d55c81d8fcea1999496da326}} 
double {\bfseries cylinder\+\_\+height\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a6955aae2d2afb74f0673f7c0f6ee9e1d}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a6955aae2d2afb74f0673f7c0f6ee9e1d}} 
int {\bfseries cylinder\+\_\+slices\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a10a27f495cc47d81557fb6508b5d8898}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a10a27f495cc47d81557fb6508b5d8898}} 
int {\bfseries cylinder\+\_\+stacks\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a77b2a6406ceabd42ae627509d4db45c4}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a77b2a6406ceabd42ae627509d4db45c4}} 
bool {\bfseries cylinder\+\_\+clicked\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a901e7cb2e955c0accc057160159a29e8}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a901e7cb2e955c0accc057160159a29e8}} 
bool {\bfseries sphere\+\_\+clicked\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_ad48684cf09935e4dfb9e4c0942d9602e}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_ad48684cf09935e4dfb9e4c0942d9602e}} 
\hyperlink{namespaceACG_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} {\bfseries old\+Point2\+D\+\_\+}
\item 
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a2f5f085e86bc85595bec47c41a8313a6}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a2f5f085e86bc85595bec47c41a8313a6}} 
bool \hyperlink{classACG_1_1SceneGraph_1_1ManipulatorNode_a2f5f085e86bc85595bec47c41a8313a6}{touched\+\_\+}
\begin{DoxyCompactList}\small\item\em if the manipulator is cklicked with a mouse, this flag will be set to true \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


\subsection{Detailed Description}
Use a manipulator to rotate, translate and scale the children of this node. 

Definition at line 86 of file Manipulator\+Node.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_abff170b62e13aad10150938beab90894}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_abff170b62e13aad10150938beab90894}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node}!direction@{direction}}
\index{direction@{direction}!A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{direction()}{direction()}}
{\footnotesize\ttfamily \hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node\+::direction (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const}

Get direction in world coordinates. Will take the current rotation into account. 

Definition at line 598 of file Manipulator\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_a17f4b85372a4d1ea815c3ae869a4f615}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_a17f4b85372a4d1ea815c3ae869a4f615}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node}!set\+\_\+direction@{set\+\_\+direction}}
\index{set\+\_\+direction@{set\+\_\+direction}!A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{set\+\_\+direction()}{set\_direction()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node\+::set\+\_\+direction (\begin{DoxyParamCaption}\item[{\hyperlink{namespaceACG_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&}]{\+\_\+v }\end{DoxyParamCaption})}

Set direction in world coordinates. Will take the current rotation into account. 

Definition at line 590 of file Manipulator\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_ac2a325cdedcdbac5aac7e452c9e74971}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_ac2a325cdedcdbac5aac7e452c9e74971}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node}!set\+Identity@{set\+Identity}}
\index{set\+Identity@{set\+Identity}!A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{set\+Identity()}{setIdentity()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node\+::set\+Identity (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [override]}, {\ttfamily [virtual]}}

set the current transformation to the identity transformation, i.\+e. change the \hyperlink{classACG_1_1SceneGraph_1_1TransformNode_aa6f0f3c2bf7919e606044c4d4be7b9c8}{center()} to the transfomed center and \hyperlink{classACG_1_1SceneGraph_1_1TransformNode_a29d9dbfbaaf43140b9fb1eb121246af3}{load\+Identity()}. 

Reimplemented from \hyperlink{classACG_1_1SceneGraph_1_1TransformNode_a03c77db3e04b239e622a4bc8dfb19c5e}{A\+C\+G\+::\+Scene\+Graph\+::\+Transform\+Node}.



Definition at line 111 of file Manipulator\+Node.\+cc.

\mbox{\Hypertarget{classACG_1_1SceneGraph_1_1ManipulatorNode_ad95048ca1a34bf02aa3eb10999bb724c}\label{classACG_1_1SceneGraph_1_1ManipulatorNode_ad95048ca1a34bf02aa3eb10999bb724c}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node}!touched@{touched}}
\index{touched@{touched}!A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{touched()}{touched()}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node\+::touched (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

if the manipulator node has been clicked by the mouse, this function will return true. Use reset\+\_\+touched to reset this flag 

Definition at line 150 of file Manipulator\+Node.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/Manipulator\+Node.\+hh\item 
Open\+Flipper/libs\+\_\+required/\+A\+C\+G/\+Scenegraph/Manipulator\+Node.\+cc\end{DoxyCompactItemize}
