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


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

Inheritance diagram for A\+CG\+:\+:Scene\+Graph\+:\+:Translation\+Manipulator\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{a08092}
\end{center}
\end{figure}
\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \hyperlink{a08096}{Element}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08092_a1c7bbbadae1931cbf8850a254614bdd3}\label{a08092_a1c7bbbadae1931cbf8850a254614bdd3}} 
enum {\bfseries Auto\+Size\+Mode} \{ {\bfseries Never}, 
{\bfseries Once}, 
{\bfseries Always}
 \}
\item 
enum \hyperlink{a08092_afc05aaad10d1b837793fbe59c3b36da9}{Manipulator\+Mode} \{ \newline
{\bfseries Rotation}, 
{\bfseries Translation\+Rotation}, 
{\bfseries Local\+Rotation}, 
{\bfseries Resize}, 
\newline
{\bfseries Place}
 \}\begin{DoxyCompactList}\small\item\em enum to define the manipulator mode \end{DoxyCompactList}
\item 
enum \hyperlink{a08092_a6044fabadd40ddcc3d6dedad3f32f0f2}{Active\+Rotations} \{ {\bfseries X\+\_\+\+A\+X\+IS} = 1, 
{\bfseries Y\+\_\+\+A\+X\+IS} = 1 $<$$<$ 1, 
{\bfseries Z\+\_\+\+A\+X\+IS} = 1 $<$$<$ 2, 
{\bfseries A\+L\+L\+\_\+\+A\+X\+IS} = X\+\_\+\+A\+X\+IS $\vert$ Y\+\_\+\+A\+X\+IS $\vert$ Z\+\_\+\+A\+X\+IS
 \}\begin{DoxyCompactList}\small\item\em enum to define which rotation axis should be enabled \end{DoxyCompactList}
\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08092_add7a3cb6e695ac4dd0ddce93c35119d0}\label{a08092_add7a3cb6e695ac4dd0ddce93c35119d0}} 
\hyperlink{a08092_add7a3cb6e695ac4dd0ddce93c35119d0}{Translation\+Manipulator\+Node} (\hyperlink{a07748}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Translation\+Translation\+Manipulator\+Node$>$\char`\"{})
\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a6f2be5319ee61c16f1706ead50c19bfe}\label{a08092_a6f2be5319ee61c16f1706ead50c19bfe}} 
\hyperlink{a08092_a6f2be5319ee61c16f1706ead50c19bfe}{$\sim$\+Translation\+Manipulator\+Node} ()
\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a4edce880b1df966a4acf3b25d4f23220}\label{a08092_a4edce880b1df966a4acf3b25d4f23220}} 
\hyperlink{a08092_a4edce880b1df966a4acf3b25d4f23220}{A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+ME} (\hyperlink{a08092}{Translation\+Manipulator\+Node})
\begin{DoxyCompactList}\small\item\em class name \end{DoxyCompactList}\item 
virtual void \hyperlink{a08092_a2efccfa938d54db24c82b6d370637065}{set\+Identity} ()
\item 
\mbox{\Hypertarget{a08092_a3170222a87b8162c2e9523a0ee1d6f76}\label{a08092_a3170222a87b8162c2e9523a0ee1d6f76}} 
void \hyperlink{a08092_a3170222a87b8162c2e9523a0ee1d6f76}{set\+\_\+draw\+\_\+cylinder} (bool \+\_\+b)
\begin{DoxyCompactList}\small\item\em set draw\+\_\+cylinder\+\_\+ \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a15f42e9cb23504b4a9f458c525d652cd}\label{a08092_a15f42e9cb23504b4a9f458c525d652cd}} 
bool \hyperlink{a08092_a15f42e9cb23504b4a9f458c525d652cd}{draw\+\_\+manipulator} () const
\begin{DoxyCompactList}\small\item\em get draw\+Cylinder \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_aea301161af317fd746953b97f2d509eb}\label{a08092_aea301161af317fd746953b97f2d509eb}} 
void \hyperlink{a08092_aea301161af317fd746953b97f2d509eb}{set\+\_\+direction} (const \hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+directionX, const \hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+directionY)
\begin{DoxyCompactList}\small\item\em Set direction in world coordinates. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a95b10b648a9e4eb5106cf1de3b747746}\label{a08092_a95b10b648a9e4eb5106cf1de3b747746}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a08092_a95b10b648a9e4eb5106cf1de3b747746}{directionX} () const
\begin{DoxyCompactList}\small\item\em Get current direction of x-\/\+Axis in world coordinates. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_ad96fad14ea5719914d3f356f4f0e7a7d}\label{a08092_ad96fad14ea5719914d3f356f4f0e7a7d}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a08092_ad96fad14ea5719914d3f356f4f0e7a7d}{directionY} () const
\begin{DoxyCompactList}\small\item\em Get current direction of y-\/\+Axis in world coordinates. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_aa85034691e72b8f3ac3fcc942641df08}\label{a08092_aa85034691e72b8f3ac3fcc942641df08}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a08092_aa85034691e72b8f3ac3fcc942641df08}{directionZ} () const
\begin{DoxyCompactList}\small\item\em Get current direction of z-\/\+Axis in world coordinates. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_ab7758e411c1aae962338b9c0b22f39fb}\label{a08092_ab7758e411c1aae962338b9c0b22f39fb}} 
void \hyperlink{a08092_ab7758e411c1aae962338b9c0b22f39fb}{set\+\_\+size} (double \+\_\+size)
\begin{DoxyCompactList}\small\item\em set cylindersize (height + radius). \+\_\+size parameter has to be greater than zero \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a4d0108321cdf6ea284403ebf23dfdead}\label{a08092_a4d0108321cdf6ea284403ebf23dfdead}} 
double \hyperlink{a08092_a4d0108321cdf6ea284403ebf23dfdead}{size} () const
\begin{DoxyCompactList}\small\item\em get cylindersize \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_ac4b329dafd597b6096611df8e134d801}\label{a08092_ac4b329dafd597b6096611df8e134d801}} 
void \hyperlink{a08092_ac4b329dafd597b6096611df8e134d801}{set\+\_\+autosize} (Auto\+Size\+Mode \+\_\+mode)
\begin{DoxyCompactList}\small\item\em set auto size mode \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a6cd9b18f72dc58d21b3520e01c8741ce}\label{a08092_a6cd9b18f72dc58d21b3520e01c8741ce}} 
Auto\+Size\+Mode \hyperlink{a08092_a6cd9b18f72dc58d21b3520e01c8741ce}{autosize} () const
\begin{DoxyCompactList}\small\item\em get autosize mode \end{DoxyCompactList}\item 
void \hyperlink{a08092_a117b1372a8b5b25a445f7f5dd15d5e72}{enable\+\_\+rotations} (\hyperlink{a08092_a6044fabadd40ddcc3d6dedad3f32f0f2}{Active\+Rotations} \+\_\+active)
\begin{DoxyCompactList}\small\item\em Enable or disable manipulator handles for specific orientations. \end{DoxyCompactList}\item 
\hyperlink{a08092_a6044fabadd40ddcc3d6dedad3f32f0f2}{Active\+Rotations} \hyperlink{a08092_a19ec719cb18a9ace9eac8ed45de830aa}{enabled\+\_\+rotations} () const
\begin{DoxyCompactList}\small\item\em Get the current setting, which rotation handles are active. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_aa7e9acebb34a9ae9648cd501c79434de}\label{a08092_aa7e9acebb34a9ae9648cd501c79434de}} 
void {\bfseries rotate} (double \+\_\+angle, \hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \+\_\+axis)
\item 
\mbox{\Hypertarget{a08092_a45a9c4480dc5b2b61ba18d8c9f66220c}\label{a08092_a45a9c4480dc5b2b61ba18d8c9f66220c}} 
void \hyperlink{a08092_a45a9c4480dc5b2b61ba18d8c9f66220c}{draw} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, const \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)
\begin{DoxyCompactList}\small\item\em draw the cylinder (if enabled) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a20d979d7521c69780fe7a48e511e6633}\label{a08092_a20d979d7521c69780fe7a48e511e6633}} 
void \hyperlink{a08092_a20d979d7521c69780fe7a48e511e6633}{get\+Render\+Objects} (\hyperlink{a07468}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a07452}{G\+L\+State} \&\+\_\+state, const \hyperlink{a07792}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode, const \hyperlink{a07828}{Material} $\ast$\+\_\+mat)
\begin{DoxyCompactList}\small\item\em create renderobjects for shaderpipeline renderer \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a65d16c30dee01b66d39ec3bf99a13e94}\label{a08092_a65d16c30dee01b66d39ec3bf99a13e94}} 
\hyperlink{a06176_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} \hyperlink{a08092_a65d16c30dee01b66d39ec3bf99a13e94}{compute\+World\+Matrix} ()
\begin{DoxyCompactList}\small\item\em computes world matrix, transforms from model to world space \end{DoxyCompactList}\item 
void \hyperlink{a08092_a6cdbe40b2bb3aa8ecfe6e0ef0b60a019}{pick} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, \hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target)
\begin{DoxyCompactList}\small\item\em leave node \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a0584e41bca9960a264ffddf8b8fd7ea4}\label{a08092_a0584e41bca9960a264ffddf8b8fd7ea4}} 
virtual void \hyperlink{a08092_a0584e41bca9960a264ffddf8b8fd7ea4}{mouse\+Event} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, Q\+Mouse\+Event $\ast$\+\_\+event)
\begin{DoxyCompactList}\small\item\em get mouse events \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a90a85206e4808e374a936cedacf11672}\label{a08092_a90a85206e4808e374a936cedacf11672}} 
void \hyperlink{a08092_a90a85206e4808e374a936cedacf11672}{bounding\+Box} (\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Min, \hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+bb\+Max)
\begin{DoxyCompactList}\small\item\em bounding box of node \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a295abb2110b4f69d0b4cfc487fc2b668}\label{a08092_a295abb2110b4f69d0b4cfc487fc2b668}} 
void \hyperlink{a08092_a295abb2110b4f69d0b4cfc487fc2b668}{set\+Mode} (\hyperlink{a08092_afc05aaad10d1b837793fbe59c3b36da9}{Manipulator\+Mode} \+\_\+mode)
\begin{DoxyCompactList}\small\item\em set current operation mode \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_acc23e224a1552cb98d49a5dc4cf837f4}\label{a08092_acc23e224a1552cb98d49a5dc4cf837f4}} 
\hyperlink{a08092_afc05aaad10d1b837793fbe59c3b36da9}{Manipulator\+Mode} \hyperlink{a08092_acc23e224a1552cb98d49a5dc4cf837f4}{get\+Mode} () const
\begin{DoxyCompactList}\small\item\em get current mode \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08092_a0c1008268819ce144ba42643bba6abe4}\label{a08092_a0c1008268819ce144ba42643bba6abe4}} 
bool \hyperlink{a08092_a0c1008268819ce144ba42643bba6abe4}{touched\+\_\+}
\begin{DoxyCompactList}\small\item\em stores if this manipulator was used in order to avoid emitting manipulator\+Moved unnecessarily \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Types}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08092_a4511493dd74ffeb5577c37800b03aa3b}\label{a08092_a4511493dd74ffeb5577c37800b03aa3b}} 
enum {\bfseries State\+Updates} \{ {\bfseries None}, 
{\bfseries Over}, 
{\bfseries Click}
 \}
\item 
\mbox{\Hypertarget{a08092_a86e9f718554e3d862a512143966fea0f}\label{a08092_a86e9f718554e3d862a512143966fea0f}} 
enum {\bfseries Elements} \{ \newline
{\bfseries Origin} = 0, 
{\bfseries X\+Top}, 
{\bfseries Y\+Top}, 
{\bfseries Z\+Top}, 
\newline
{\bfseries X\+Axis}, 
{\bfseries Y\+Axis}, 
{\bfseries Z\+Axis}, 
{\bfseries X\+Ring}, 
\newline
{\bfseries Y\+Ring}, 
{\bfseries Z\+Ring}, 
{\bfseries Num\+Elements}
 \}
\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08092_aa030bc7f672fecfcb44d36c11bb6d960}\label{a08092_aa030bc7f672fecfcb44d36c11bb6d960}} 
void \hyperlink{a08092_aa030bc7f672fecfcb44d36c11bb6d960}{update\+\_\+manipulator\+\_\+system} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em set the current state to follow manipulator transformation \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a96f565c8e30fc913d0218b51b6e4f7a2}\label{a08092_a96f565c8e30fc913d0218b51b6e4f7a2}} 
void \hyperlink{a08092_a96f565c8e30fc913d0218b51b6e4f7a2}{update\+\_\+rotation} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state)
\begin{DoxyCompactList}\small\item\em update the internal rotation matrix ( internal rotation may be changed without modifiing children of this node ) \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_adf933fc8865a28bd8364e3a2223cbdbe}\label{a08092_adf933fc8865a28bd8364e3a2223cbdbe}} 
bool \hyperlink{a08092_adf933fc8865a28bd8364e3a2223cbdbe}{hit\+Sphere} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2)
\begin{DoxyCompactList}\small\item\em Determine whether the origin sphere has been hit. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_a06820564f176ed96f10e7fa443d8bae6}\label{a08092_a06820564f176ed96f10e7fa443d8bae6}} 
bool \hyperlink{a08092_a06820564f176ed96f10e7fa443d8bae6}{hit\+Outer\+Sphere} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2)
\begin{DoxyCompactList}\small\item\em Determine whether the outer sphere has been hit by the cursor. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{a08092_add56573970707e3a556c9d9fe10d9c2f}\label{a08092_add56573970707e3a556c9d9fe10d9c2f}} 
void {\bfseries draw\+Manipulator} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, bool \+\_\+active)
\item 
\mbox{\Hypertarget{a08092_aaa58b61d059ff1c7b4d086cf7cc210f7}\label{a08092_aaa58b61d059ff1c7b4d086cf7cc210f7}} 
void {\bfseries add\+Manipulator\+To\+Renderer} (\hyperlink{a07468}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a07532}{Render\+Object} $\ast$\+\_\+base\+RO, bool \+\_\+active)
\item 
\mbox{\Hypertarget{a08092_a72e8c9416dd59bd7f5bd7950ef7cd6ec}\label{a08092_a72e8c9416dd59bd7f5bd7950ef7cd6ec}} 
void {\bfseries add\+Axis\+To\+Renderer} (\hyperlink{a07468}{I\+Renderer} $\ast$\+\_\+renderer, \hyperlink{a07532}{Render\+Object} $\ast$\+\_\+base\+RO, bool \+\_\+active, int \+\_\+axis)
\item 
bool \hyperlink{a08092_a0b65b9a158b5ff614c60e5292237c26e}{map\+To\+Cylinder} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2, State\+Updates \+\_\+update\+States=None)
\item 
bool \hyperlink{a08092_abecd9ecbbee99af00461ca12fbb173d5}{map\+To\+Cylinder\+Top} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2, State\+Updates \+\_\+update\+States=None)
\item 
bool \hyperlink{a08092_a3bf41ed93ef796d71b14eb7f5938018b}{map\+To\+Sphere} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2, \hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+v3, State\+Updates \+\_\+update\+States=None)
\item 
\mbox{\Hypertarget{a08092_a170e18a52bb30409803396b51a36b979}\label{a08092_a170e18a52bb30409803396b51a36b979}} 
void {\bfseries update\+Target\+Colors} ()
\item 
\mbox{\Hypertarget{a08092_aad25ff545b9bd068cb89050ae6ae954a}\label{a08092_aad25ff545b9bd068cb89050ae6ae954a}} 
bool {\bfseries update\+Current\+Colors} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state)
\item 
\mbox{\Hypertarget{a08092_a51de40a1e1dc40411dc3eccc94c9a7a8}\label{a08092_a51de40a1e1dc40411dc3eccc94c9a7a8}} 
double {\bfseries get\+\_\+screen\+\_\+length} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state, \hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+point) const
\item 
\mbox{\Hypertarget{a08092_ab549c7257d27a2f5e21f74a3b4180da0}\label{a08092_ab549c7257d27a2f5e21f74a3b4180da0}} 
void {\bfseries update\+Size} (\hyperlink{a07452}{G\+L\+State} \&\+\_\+state)
\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{a08092_a3d88989b62f53942515fc4798f7fa2f2}\label{a08092_a3d88989b62f53942515fc4798f7fa2f2}} 
bool {\bfseries draw\+\_\+manipulator\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a685c4d233e7eb072dd4f870e83ee7fb9}\label{a08092_a685c4d233e7eb072dd4f870e83ee7fb9}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries dir\+X\+\_\+}
\item 
\mbox{\Hypertarget{a08092_aced74cd05c05d53215790bcf62900bb6}\label{a08092_aced74cd05c05d53215790bcf62900bb6}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries dir\+Y\+\_\+}
\item 
\mbox{\Hypertarget{a08092_aacfe2d9a4eeb674c2ab7f72b697de23a}\label{a08092_aacfe2d9a4eeb674c2ab7f72b697de23a}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries dir\+Z\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a7442834ae4ecc02d677694d6279279ff}\label{a08092_a7442834ae4ecc02d677694d6279279ff}} 
\hyperlink{a07396}{A\+C\+G\+::\+G\+L\+Cone} $\ast$ {\bfseries axis\+Bottom\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a10c668cf3ef72d69636be836dfdc6721}\label{a08092_a10c668cf3ef72d69636be836dfdc6721}} 
\hyperlink{a07396}{A\+C\+G\+::\+G\+L\+Cone} $\ast$ {\bfseries axis\+Center\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a9c42f587784ff8f95d58bc55f60e422b}\label{a08092_a9c42f587784ff8f95d58bc55f60e422b}} 
\hyperlink{a07396}{A\+C\+G\+::\+G\+L\+Cone} $\ast$ {\bfseries axis\+Top\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a4a951e3a573af41dc9d96169b15728fd}\label{a08092_a4a951e3a573af41dc9d96169b15728fd}} 
\hyperlink{a07408}{A\+C\+G\+::\+G\+L\+Disk} $\ast$ {\bfseries circle\+\_\+}
\item 
\mbox{\Hypertarget{a08092_afa45656ccee6c3a0a2db5b8e0a53b497}\label{a08092_afa45656ccee6c3a0a2db5b8e0a53b497}} 
\hyperlink{a07392}{A\+C\+G\+::\+G\+L\+Sphere} $\ast$ {\bfseries sphere\+\_\+}
\item 
\mbox{\Hypertarget{a08092_aac39072a0a466fdeec341ff5d370f9f4}\label{a08092_aac39072a0a466fdeec341ff5d370f9f4}} 
double {\bfseries manipulator\+\_\+radius\+\_\+}
\item 
\mbox{\Hypertarget{a08092_af26d733bca92ada9770372d6d7a75d9e}\label{a08092_af26d733bca92ada9770372d6d7a75d9e}} 
double {\bfseries manipulator\+\_\+height\+\_\+}
\item 
\mbox{\Hypertarget{a08092_ab8a630add46d11e862eea31c998bd43b}\label{a08092_ab8a630add46d11e862eea31c998bd43b}} 
double {\bfseries set\+\_\+manipulator\+\_\+radius\+\_\+}
\item 
\mbox{\Hypertarget{a08092_abfd6b07333d55655bcd66c51feb0caed}\label{a08092_abfd6b07333d55655bcd66c51feb0caed}} 
double {\bfseries set\+\_\+manipulator\+\_\+height\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a84791d5cf912a466361637305f9501e6}\label{a08092_a84791d5cf912a466361637305f9501e6}} 
int {\bfseries manipulator\+\_\+slices\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a31c25bf2e1daf6753df4f4d23c28fee5}\label{a08092_a31c25bf2e1daf6753df4f4d23c28fee5}} 
int {\bfseries manipulator\+\_\+stacks\+\_\+}
\item 
\mbox{\Hypertarget{a08092_adece76fde49a15d0b46fe03af3f4a538}\label{a08092_adece76fde49a15d0b46fe03af3f4a538}} 
bool {\bfseries any\+\_\+axis\+\_\+clicked\+\_\+}
\item 
\mbox{\Hypertarget{a08092_ae48ec501f58cb7070bd5502c613e18da}\label{a08092_ae48ec501f58cb7070bd5502c613e18da}} 
bool {\bfseries any\+\_\+top\+\_\+clicked\+\_\+}
\item 
\mbox{\Hypertarget{a08092_af5b8aeaa736191d6e4a67df6f812018c}\label{a08092_af5b8aeaa736191d6e4a67df6f812018c}} 
bool {\bfseries outer\+\_\+ring\+\_\+clicked\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a8f0492ac818a76a32406ec7cfc9ee9e9}\label{a08092_a8f0492ac818a76a32406ec7cfc9ee9e9}} 
bool {\bfseries any\+\_\+axis\+\_\+over\+\_\+}
\item 
\mbox{\Hypertarget{a08092_ac22ba8e245c65666c84544d7317504bb}\label{a08092_ac22ba8e245c65666c84544d7317504bb}} 
bool {\bfseries any\+\_\+top\+\_\+over\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a658f0809dd88ec894b44f431092774a7}\label{a08092_a658f0809dd88ec894b44f431092774a7}} 
bool {\bfseries outer\+\_\+ring\+\_\+over\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a4808b66600326a6a8048827c186b0919}\label{a08092_a4808b66600326a6a8048827c186b0919}} 
\hyperlink{a08096}{Element} {\bfseries element\+\_\+} \mbox{[}Num\+Elements\mbox{]}
\item 
\mbox{\Hypertarget{a08092_ab84080938d297ad1b28f789051dea8be}\label{a08092_ab84080938d297ad1b28f789051dea8be}} 
float {\bfseries resize\+\_\+current\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a8038d53f32c7bfbd9089477b8808d4fa}\label{a08092_a8038d53f32c7bfbd9089477b8808d4fa}} 
\hyperlink{a08092_afc05aaad10d1b837793fbe59c3b36da9}{Manipulator\+Mode} {\bfseries mode\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a5dc56d0505a70081c45d44280453cc66}\label{a08092_a5dc56d0505a70081c45d44280453cc66}} 
bool {\bfseries ignore\+Time\+\_\+}
\item 
\mbox{\Hypertarget{a08092_aed18198df1cbe76f790ae69dcf91dc6c}\label{a08092_aed18198df1cbe76f790ae69dcf91dc6c}} 
\hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} {\bfseries old\+Point2\+D\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a4435543ccca60aa5a881a7449560b67f}\label{a08092_a4435543ccca60aa5a881a7449560b67f}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries dragging\+Origin3\+D\+\_\+}
\item 
\mbox{\Hypertarget{a08092_ade60af0032e6721044519b154c21272b}\label{a08092_ade60af0032e6721044519b154c21272b}} 
bool {\bfseries dragging\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a0649b4888a0bc2879c192cee8b23025b}\label{a08092_a0649b4888a0bc2879c192cee8b23025b}} 
\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries current\+Scale\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a488add9cf3bdd3c3d395df38e0c134e8}\label{a08092_a488add9cf3bdd3c3d395df38e0c134e8}} 
\hyperlink{a06176_a574eaee6f4eff166845ff5c654b0b852}{G\+L\+Matrixd} {\bfseries local\+Transformation\+\_\+}
\item 
\mbox{\Hypertarget{a08092_ac9af6dcbd3d3a79a01a16fde07f12835}\label{a08092_ac9af6dcbd3d3a79a01a16fde07f12835}} 
Auto\+Size\+Mode {\bfseries auto\+\_\+size\+\_\+}
\item 
\mbox{\Hypertarget{a08092_a046550bfff825051993e548bd3ae8639}\label{a08092_a046550bfff825051993e548bd3ae8639}} 
double {\bfseries auto\+\_\+size\+\_\+length\+\_\+}
\item 
\mbox{\Hypertarget{a08092_ab1bd851808b9795aad8b5abd71a6b2c6}\label{a08092_ab1bd851808b9795aad8b5abd71a6b2c6}} 
\hyperlink{a08092_a6044fabadd40ddcc3d6dedad3f32f0f2}{Active\+Rotations} {\bfseries active\+Rotations\+\_\+}
\end{DoxyCompactItemize}
\subsection*{Additional Inherited Members}


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

Definition at line 89 of file Translation\+Manipulator\+Node.\+hh.



\subsection{Member Enumeration Documentation}
\mbox{\Hypertarget{a08092_a6044fabadd40ddcc3d6dedad3f32f0f2}\label{a08092_a6044fabadd40ddcc3d6dedad3f32f0f2}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}!Active\+Rotations@{Active\+Rotations}}
\index{Active\+Rotations@{Active\+Rotations}!A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{Active\+Rotations}{ActiveRotations}}
{\footnotesize\ttfamily enum \hyperlink{a08092_a6044fabadd40ddcc3d6dedad3f32f0f2}{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node\+::\+Active\+Rotations}}



enum to define which rotation axis should be enabled 

This enum defines which rotation axis rings will be visible and available for picking. The modes can be combined. 

Definition at line 120 of file Translation\+Manipulator\+Node.\+hh.

\mbox{\Hypertarget{a08092_afc05aaad10d1b837793fbe59c3b36da9}\label{a08092_afc05aaad10d1b837793fbe59c3b36da9}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}!Manipulator\+Mode@{Manipulator\+Mode}}
\index{Manipulator\+Mode@{Manipulator\+Mode}!A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{Manipulator\+Mode}{ManipulatorMode}}
{\footnotesize\ttfamily enum \hyperlink{a08092_afc05aaad10d1b837793fbe59c3b36da9}{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node\+::\+Manipulator\+Mode}}



enum to define the manipulator mode 

This enum defines several modes of the manipulator.
\begin{DoxyItemize}
\item Translation\+Rotation\+: Full featured mode, rotations and translations will be possible
\item Local\+Rotation\+: The manipulator can be rotated, but no transformation is applied to the child node (use to re-\/align manipulator)
\item Resize\+: No rings, no rotation. The manipulator scales along each axis seperatly. Center sphere scales uniformly in all directions
\item Place\+: -- 
\end{DoxyItemize}

Definition at line 107 of file Translation\+Manipulator\+Node.\+hh.



\subsection{Member Function Documentation}
\mbox{\Hypertarget{a08092_a117b1372a8b5b25a445f7f5dd15d5e72}\label{a08092_a117b1372a8b5b25a445f7f5dd15d5e72}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}!enable\+\_\+rotations@{enable\+\_\+rotations}}
\index{enable\+\_\+rotations@{enable\+\_\+rotations}!A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{enable\+\_\+rotations()}{enable\_rotations()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node\+::enable\+\_\+rotations (\begin{DoxyParamCaption}\item[{\hyperlink{a08092_a6044fabadd40ddcc3d6dedad3f32f0f2}{Active\+Rotations}}]{\+\_\+active }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Enable or disable manipulator handles for specific orientations. 

This enum defines which rotation axis rings will be visible and available for picking. The modes can be combined.


\begin{DoxyParams}{Parameters}
{\em \+\_\+active} & The activated axis \\
\hline
\end{DoxyParams}


Definition at line 187 of file Translation\+Manipulator\+Node.\+hh.

\mbox{\Hypertarget{a08092_a19ec719cb18a9ace9eac8ed45de830aa}\label{a08092_a19ec719cb18a9ace9eac8ed45de830aa}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}!enabled\+\_\+rotations@{enabled\+\_\+rotations}}
\index{enabled\+\_\+rotations@{enabled\+\_\+rotations}!A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{enabled\+\_\+rotations()}{enabled\_rotations()}}
{\footnotesize\ttfamily \hyperlink{a08092_a6044fabadd40ddcc3d6dedad3f32f0f2}{Active\+Rotations} A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node\+::enabled\+\_\+rotations (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



Get the current setting, which rotation handles are active. 

\begin{DoxyReturn}{Returns}
\+\_\+active The activated axis 
\end{DoxyReturn}


Definition at line 196 of file Translation\+Manipulator\+Node.\+hh.

\mbox{\Hypertarget{a08092_a0b65b9a158b5ff614c60e5292237c26e}\label{a08092_a0b65b9a158b5ff614c60e5292237c26e}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}!map\+To\+Cylinder@{map\+To\+Cylinder}}
\index{map\+To\+Cylinder@{map\+To\+Cylinder}!A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{map\+To\+Cylinder()}{mapToCylinder()}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node\+::map\+To\+Cylinder (\begin{DoxyParamCaption}\item[{\hyperlink{a07452}{G\+L\+State} \&}]{\+\_\+state,  }\item[{const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&}]{\+\_\+v1,  }\item[{State\+Updates}]{\+\_\+update\+States = {\ttfamily None} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

If ray from mouse pointer intersects with one of the three axes? 

Definition at line 1661 of file Translation\+Manipulator\+Node.\+cc.

\mbox{\Hypertarget{a08092_abecd9ecbbee99af00461ca12fbb173d5}\label{a08092_abecd9ecbbee99af00461ca12fbb173d5}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}!map\+To\+Cylinder\+Top@{map\+To\+Cylinder\+Top}}
\index{map\+To\+Cylinder\+Top@{map\+To\+Cylinder\+Top}!A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{map\+To\+Cylinder\+Top()}{mapToCylinderTop()}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node\+::map\+To\+Cylinder\+Top (\begin{DoxyParamCaption}\item[{\hyperlink{a07452}{G\+L\+State} \&}]{\+\_\+state,  }\item[{const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&}]{\+\_\+v1,  }\item[{State\+Updates}]{\+\_\+update\+States = {\ttfamily None} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

If ray from mouse pointer intersects with one of the three tops? 

Definition at line 1772 of file Translation\+Manipulator\+Node.\+cc.

\mbox{\Hypertarget{a08092_a3bf41ed93ef796d71b14eb7f5938018b}\label{a08092_a3bf41ed93ef796d71b14eb7f5938018b}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}!map\+To\+Sphere@{map\+To\+Sphere}}
\index{map\+To\+Sphere@{map\+To\+Sphere}!A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{map\+To\+Sphere()}{mapToSphere()}}
{\footnotesize\ttfamily bool A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node\+::map\+To\+Sphere (\begin{DoxyParamCaption}\item[{\hyperlink{a07452}{G\+L\+State} \&}]{\+\_\+state,  }\item[{const \hyperlink{a06176_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&}]{\+\_\+v2,  }\item[{\hyperlink{a06176_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&}]{\+\_\+v3,  }\item[{State\+Updates}]{\+\_\+update\+States = {\ttfamily None} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}

Determine whether one of the outer rings has been hit. Return true if intersection with either of the rings occurs. \+\_\+v3 contains the point in world coordinates 

Definition at line 1888 of file Translation\+Manipulator\+Node.\+cc.

\mbox{\Hypertarget{a08092_a6cdbe40b2bb3aa8ecfe6e0ef0b60a019}\label{a08092_a6cdbe40b2bb3aa8ecfe6e0ef0b60a019}} 
\index{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}!pick@{pick}}
\index{pick@{pick}!A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node@{A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node}}
\subsubsection{\texorpdfstring{pick()}{pick()}}
{\footnotesize\ttfamily void A\+C\+G\+::\+Scene\+Graph\+::\+Translation\+Manipulator\+Node\+::pick (\begin{DoxyParamCaption}\item[{\hyperlink{a07452}{G\+L\+State} \&}]{\+\_\+state,  }\item[{\hyperlink{a06177_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target}}]{\+\_\+target }\end{DoxyParamCaption})}



leave node 

picking 

Definition at line 1998 of file Translation\+Manipulator\+Node.\+cc.

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

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

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



Definition at line 213 of file Translation\+Manipulator\+Node.\+cc.



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