\hypertarget{a00788}{\section{A\+C\+G\+:\+:Scene\+Graph\+:\+:Manipulator\+Node Class Reference}
\label{a00788}\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\+C\+G\+:\+:Scene\+Graph\+:\+:Manipulator\+Node\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=4.000000cm]{a00788}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00788_a000a626454d67ef0a4e815d733895de6}{\hyperlink{a00788_a000a626454d67ef0a4e815d733895de6}{Manipulator\+Node} (\hyperlink{a00327}{Base\+Node} $\ast$\+\_\+parent=0, const std\+::string \&\+\_\+name=\char`\"{}$<$Manipulator\+Node$>$\char`\"{})}\label{a00788_a000a626454d67ef0a4e815d733895de6}

\begin{DoxyCompactList}\small\item\em Default constructor. \end{DoxyCompactList}\item 
\hypertarget{a00788_ad80af54f212b57b4cb7dcf46a4435657}{\hyperlink{a00788_ad80af54f212b57b4cb7dcf46a4435657}{$\sim$\+Manipulator\+Node} ()}\label{a00788_ad80af54f212b57b4cb7dcf46a4435657}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a00788_a3a099fbeb94dcfd09b5be29e73485938}{\hyperlink{a00788_a3a099fbeb94dcfd09b5be29e73485938}{A\+C\+G\+\_\+\+C\+L\+A\+S\+S\+N\+A\+M\+E} (\hyperlink{a00788}{Manipulator\+Node})}\label{a00788_a3a099fbeb94dcfd09b5be29e73485938}

\begin{DoxyCompactList}\small\item\em class name \end{DoxyCompactList}\item 
virtual void \hyperlink{a00788_a0b1241fcd57e7e473e1c68ed24a40be3}{set\+Identity} ()
\item 
\hypertarget{a00788_a3ff7e2ea4f6302021acaee8254097fee}{void \hyperlink{a00788_a3ff7e2ea4f6302021acaee8254097fee}{set\+\_\+draw\+\_\+cylinder} (bool \+\_\+b)}\label{a00788_a3ff7e2ea4f6302021acaee8254097fee}

\begin{DoxyCompactList}\small\item\em set draw\+\_\+cylinder\+\_\+ \end{DoxyCompactList}\item 
\hypertarget{a00788_a33f791dc2d4486fadb6c89537a4d482a}{bool \hyperlink{a00788_a33f791dc2d4486fadb6c89537a4d482a}{draw\+\_\+cylinder} () const }\label{a00788_a33f791dc2d4486fadb6c89537a4d482a}

\begin{DoxyCompactList}\small\item\em get draw\+Cylinder \end{DoxyCompactList}\item 
void \hyperlink{a00788_a17f4b85372a4d1ea815c3ae869a4f615}{set\+\_\+direction} (\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+v)
\item 
\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \hyperlink{a00788_a8d5a41c8654bfed76c3a5167471826fd}{direction} () const 
\item 
\hypertarget{a00788_a2b7b13913ca27ee75979b4588a099a38}{void \hyperlink{a00788_a2b7b13913ca27ee75979b4588a099a38}{set\+\_\+size} (double \+\_\+size)}\label{a00788_a2b7b13913ca27ee75979b4588a099a38}

\begin{DoxyCompactList}\small\item\em set cylindersize (height + radius) \end{DoxyCompactList}\item 
\hypertarget{a00788_a1876c88913a9da90f298f3306e992171}{double \hyperlink{a00788_a1876c88913a9da90f298f3306e992171}{size} () const }\label{a00788_a1876c88913a9da90f298f3306e992171}

\begin{DoxyCompactList}\small\item\em get cylindersize \end{DoxyCompactList}\item 
\hypertarget{a00788_acbda9e4702af2dac76ad2207eb4ca82c}{void \hyperlink{a00788_acbda9e4702af2dac76ad2207eb4ca82c}{translate} (double \+\_\+s)}\label{a00788_acbda9e4702af2dac76ad2207eb4ca82c}

\begin{DoxyCompactList}\small\item\em translate in cylinder direction \end{DoxyCompactList}\item 
\hypertarget{a00788_a3501d20fa365e654a3bd6ebbfef82724}{void \hyperlink{a00788_a3501d20fa365e654a3bd6ebbfef82724}{draw} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a00509}{Draw\+Modes\+::\+Draw\+Mode} \&\+\_\+draw\+Mode)}\label{a00788_a3501d20fa365e654a3bd6ebbfef82724}

\begin{DoxyCompactList}\small\item\em draw the cylinder (if enabled) \end{DoxyCompactList}\item 
\hypertarget{a00788_a56bf82d4b919cd7823ecfb20cd6cb1d8}{void \hyperlink{a00788_a56bf82d4b919cd7823ecfb20cd6cb1d8}{pick} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, \hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{Pick\+Target} \+\_\+target)}\label{a00788_a56bf82d4b919cd7823ecfb20cd6cb1d8}

\begin{DoxyCompactList}\small\item\em picking \end{DoxyCompactList}\item 
\hypertarget{a00788_af8cd0e4ca0ef6d37468a768f2c96e1bb}{virtual void \hyperlink{a00788_af8cd0e4ca0ef6d37468a768f2c96e1bb}{mouse\+Event} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, Q\+Mouse\+Event $\ast$\+\_\+event)}\label{a00788_af8cd0e4ca0ef6d37468a768f2c96e1bb}

\begin{DoxyCompactList}\small\item\em get mouse events \end{DoxyCompactList}\item 
bool \hyperlink{a00788_ad95048ca1a34bf02aa3eb10999bb724c}{touched} ()
\item 
\hypertarget{a00788_a0009a754d819f1e25f9e07fac39d8c3f}{void \hyperlink{a00788_a0009a754d819f1e25f9e07fac39d8c3f}{reset\+\_\+touched} ()}\label{a00788_a0009a754d819f1e25f9e07fac39d8c3f}

\begin{DoxyCompactList}\small\item\em Reset the touched flag ( see touched for details ) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00788_adc98768d67435f71733b8f2db150a7f3}{void {\bfseries setup\+\_\+sphere\+\_\+system} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state)}\label{a00788_adc98768d67435f71733b8f2db150a7f3}

\item 
\hypertarget{a00788_a0eed1603a74b7e369a7b6adcf2e50513}{void {\bfseries setup\+\_\+cylinder\+\_\+system} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state)}\label{a00788_a0eed1603a74b7e369a7b6adcf2e50513}

\item 
\hypertarget{a00788_accb3170c99d4b85a62596e5d9a6d5569}{bool {\bfseries map\+To\+Sphere} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} \&\+\_\+v3)}\label{a00788_accb3170c99d4b85a62596e5d9a6d5569}

\item 
\hypertarget{a00788_ae043bccfecddbf72aa31ad420bc37c04}{bool {\bfseries hit\+Sphere} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2)}\label{a00788_ae043bccfecddbf72aa31ad420bc37c04}

\item 
\hypertarget{a00788_adf35a2787164602a5011fa25864f5d9e}{bool {\bfseries map\+To\+Cylinder} (\hyperlink{a00643}{G\+L\+State} \&\+\_\+state, const \hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} \&\+\_\+v2, double \&axis\+\_\+hit)}\label{a00788_adf35a2787164602a5011fa25864f5d9e}

\end{DoxyCompactItemize}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00788_a8946eaf2a9942b795fd914c3feb61f65}{bool {\bfseries draw\+\_\+cylinder\+\_\+}}\label{a00788_a8946eaf2a9942b795fd914c3feb61f65}

\item 
\hypertarget{a00788_ae4a1451dc2de5cefe3d81c6c9891a6e5}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{Vec3d} {\bfseries direction\+\_\+}}\label{a00788_ae4a1451dc2de5cefe3d81c6c9891a6e5}

\item 
\hypertarget{a00788_a331959941a1482056898a5d2131c37dc}{\hyperlink{a00633}{G\+L\+Cylinder} $\ast$ {\bfseries cylinder\+\_\+}}\label{a00788_a331959941a1482056898a5d2131c37dc}

\item 
\hypertarget{a00788_aa77fb1153b46322a6a3b2431cc1e06da}{double {\bfseries cylinder\+\_\+radius\+\_\+}}\label{a00788_aa77fb1153b46322a6a3b2431cc1e06da}

\item 
\hypertarget{a00788_af09b1218d55c81d8fcea1999496da326}{double {\bfseries cylinder\+\_\+height\+\_\+}}\label{a00788_af09b1218d55c81d8fcea1999496da326}

\item 
\hypertarget{a00788_a6955aae2d2afb74f0673f7c0f6ee9e1d}{int {\bfseries cylinder\+\_\+slices\+\_\+}}\label{a00788_a6955aae2d2afb74f0673f7c0f6ee9e1d}

\item 
\hypertarget{a00788_a10a27f495cc47d81557fb6508b5d8898}{int {\bfseries cylinder\+\_\+stacks\+\_\+}}\label{a00788_a10a27f495cc47d81557fb6508b5d8898}

\item 
\hypertarget{a00788_a77b2a6406ceabd42ae627509d4db45c4}{bool {\bfseries cylinder\+\_\+clicked\+\_\+}}\label{a00788_a77b2a6406ceabd42ae627509d4db45c4}

\item 
\hypertarget{a00788_a901e7cb2e955c0accc057160159a29e8}{bool {\bfseries sphere\+\_\+clicked\+\_\+}}\label{a00788_a901e7cb2e955c0accc057160159a29e8}

\item 
\hypertarget{a00788_ad48684cf09935e4dfb9e4c0942d9602e}{\hyperlink{a03336_a72710dc6f55cd56f968f22bca0178e8c}{Vec2i} {\bfseries old\+Point2\+D\+\_\+}}\label{a00788_ad48684cf09935e4dfb9e4c0942d9602e}

\item 
\hypertarget{a00788_a2f5f085e86bc85595bec47c41a8313a6}{bool \hyperlink{a00788_a2f5f085e86bc85595bec47c41a8313a6}{touched\+\_\+}}\label{a00788_a2f5f085e86bc85595bec47c41a8313a6}

\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 91 of file Manipulator\+Node.\+hh.



\subsection{Member Function Documentation}
\hypertarget{a00788_a8d5a41c8654bfed76c3a5167471826fd}{\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[{direction}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Vec3d} A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node\+::direction (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const}}\label{a00788_a8d5a41c8654bfed76c3a5167471826fd}
Get direction in world coordinates. Will take the current rotation into account. 

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

\hypertarget{a00788_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[{set\+\_\+direction}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node\+::set\+\_\+direction (
\begin{DoxyParamCaption}
\item[{{\bf Vec3d} \&}]{\+\_\+v}
\end{DoxyParamCaption}
)}}\label{a00788_a17f4b85372a4d1ea815c3ae869a4f615}
Set direction in world coordinates. Will take the current rotation into account. 

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

\hypertarget{a00788_a0b1241fcd57e7e473e1c68ed24a40be3}{\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[{set\+Identity}]{\setlength{\rightskip}{0pt plus 5cm}void A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node\+::set\+Identity (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{a00788_a0b1241fcd57e7e473e1c68ed24a40be3}
set the current transformation to the identity transformation, i.\+e. change the \hyperlink{a01320_ac2fd8f1d69f78764a4aa310f767caa2a}{center()} to the transfomed center and \hyperlink{a01320_a29d9dbfbaaf43140b9fb1eb121246af3}{load\+Identity()}. 

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



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

\hypertarget{a00788_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[{touched}]{\setlength{\rightskip}{0pt plus 5cm}bool A\+C\+G\+::\+Scene\+Graph\+::\+Manipulator\+Node\+::touched (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00788_ad95048ca1a34bf02aa3eb10999bb724c}
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 155 of file Manipulator\+Node.\+hh.



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