\hypertarget{classSPL_1_1Arcball}{}\section{S\+P\+L\+:\+:Arcball$<$ T $>$ Class Template Reference}
\label{classSPL_1_1Arcball}\index{S\+P\+L\+::\+Arcball$<$ T $>$@{S\+P\+L\+::\+Arcball$<$ T $>$}}


\hyperlink{classSPL_1_1Arcball}{Arcball}.  




{\ttfamily \#include $<$Arcball.\+hpp$>$}

\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef T \hyperlink{classSPL_1_1Arcball_a7fe6ca55ac054eb6b89f8465eb415a53}{Kernel}
\begin{DoxyCompactList}\small\item\em The C\+G\+A\+L kernel. \end{DoxyCompactList}\item 
typedef Kernel\+::\+Point\+\_\+3 \hyperlink{classSPL_1_1Arcball_a132dd18a53e7a785b2566920ce4141c5}{Point}
\begin{DoxyCompactList}\small\item\em The point type. \end{DoxyCompactList}\item 
typedef Kernel\+::\+Vector\+\_\+3 \hyperlink{classSPL_1_1Arcball_aad78c5f05521d7298d3c65a9599ac120}{Vector}
\begin{DoxyCompactList}\small\item\em The vector type. \end{DoxyCompactList}\item 
typedef \hyperlink{structSPL_1_1Rotation__3}{Rotation\+\_\+3}$<$ \hyperlink{classSPL_1_1Arcball_a7fe6ca55ac054eb6b89f8465eb415a53}{Kernel} $>$ \hyperlink{classSPL_1_1Arcball_aebc0585440ca9c5c464e2fedbc8123c0}{Rotation}
\begin{DoxyCompactList}\small\item\em The representation of a rotation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__CGAL__util_ga1440ad4b0f6e8eee0a72fa82460efb5b}{Arcball} ()
\begin{DoxyCompactList}\small\item\em Create an arcball. \end{DoxyCompactList}\item 
void \hyperlink{group__CGAL__util_gadec9c896b19e43b51223ecebb4cd6b78}{initialize} (double arc\+Ball\+Radius, const \hyperlink{classSPL_1_1Arcball_a132dd18a53e7a785b2566920ce4141c5}{Point} \&eye\+Pos, const \hyperlink{classSPL_1_1Arcball_aad78c5f05521d7298d3c65a9599ac120}{Vector} \&eye\+Dir, const \hyperlink{classSPL_1_1Arcball_aad78c5f05521d7298d3c65a9599ac120}{Vector} \&eye\+Up, const \hyperlink{classSPL_1_1Arcball_a132dd18a53e7a785b2566920ce4141c5}{Point} \&scene\+Center)
\begin{DoxyCompactList}\small\item\em Initialize the state of an arcball. \end{DoxyCompactList}\item 
void \hyperlink{group__CGAL__util_gac45dc9bb6f739457e3abe0944a8cefad}{set\+Mode} (int mode)
\begin{DoxyCompactList}\small\item\em Set the arcball rotation mode. \end{DoxyCompactList}\item 
void \hyperlink{group__CGAL__util_gaac0d2093eb7c01fb56a2d2d82503d143}{start} (const \hyperlink{classSPL_1_1Arcball_a132dd18a53e7a785b2566920ce4141c5}{Point} \&pos)
\begin{DoxyCompactList}\small\item\em Set the starting position for arcball movement. \end{DoxyCompactList}\item 
void \hyperlink{group__CGAL__util_ga67558a947ef7b30a0a70cfca1e1c3de5}{move} (const \hyperlink{classSPL_1_1Arcball_a132dd18a53e7a785b2566920ce4141c5}{Point} \&pos)
\begin{DoxyCompactList}\small\item\em Set the current position for arcball movement. \end{DoxyCompactList}\item 
void \hyperlink{group__CGAL__util_gabdb11894d5b964d3e721ad2bd9b3f761}{clear} ()
\begin{DoxyCompactList}\small\item\em Clear the starting and current positions for the arcball. \end{DoxyCompactList}\item 
\hyperlink{classSPL_1_1Arcball_aebc0585440ca9c5c464e2fedbc8123c0}{Rotation} \hyperlink{group__CGAL__util_ga9647c7bb875295418a3c8894f7fac434}{get\+Rotation} () const 
\begin{DoxyCompactList}\small\item\em Get the rotation required to turn the arcball from the starting position to the current position. \end{DoxyCompactList}\item 
void \hyperlink{classSPL_1_1Arcball_a9f3a7d0cd59dc962e5ea775a4d85e703}{set\+Debug\+Level} (int debug\+Level) const 
\begin{DoxyCompactList}\small\item\em For debugging... \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{classSPL_1_1Arcball_aebc0585440ca9c5c464e2fedbc8123c0}{Rotation} \hyperlink{group__CGAL__util_gaeaf0d948dd902f398c4da3b4cd4fe313}{combine\+Rotations} (const \hyperlink{classSPL_1_1Arcball_aebc0585440ca9c5c464e2fedbc8123c0}{Rotation} \&, const \hyperlink{classSPL_1_1Arcball_aebc0585440ca9c5c464e2fedbc8123c0}{Rotation} \&)
\begin{DoxyCompactList}\small\item\em Combine two rotations. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$class T$>$class S\+P\+L\+::\+Arcball$<$ T $>$}

\hyperlink{classSPL_1_1Arcball}{Arcball}. 

References\+: K. Shoemake, \hyperlink{classSPL_1_1Arcball}{Arcball} Rotation Control, Graphics Gems I\+V, 1994, pp. 175-\/192. 

\subsection{Member Typedef Documentation}
\hypertarget{classSPL_1_1Arcball_a7fe6ca55ac054eb6b89f8465eb415a53}{}\index{S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}!Kernel@{Kernel}}
\index{Kernel@{Kernel}!S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}}
\subsubsection[{Kernel}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ typedef T {\bf S\+P\+L\+::\+Arcball}$<$ T $>$\+::{\bf Kernel}}\label{classSPL_1_1Arcball_a7fe6ca55ac054eb6b89f8465eb415a53}


The C\+G\+A\+L kernel. 

\hypertarget{classSPL_1_1Arcball_a132dd18a53e7a785b2566920ce4141c5}{}\index{S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}!Point@{Point}}
\index{Point@{Point}!S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}}
\subsubsection[{Point}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ typedef Kernel\+::\+Point\+\_\+3 {\bf S\+P\+L\+::\+Arcball}$<$ T $>$\+::{\bf Point}}\label{classSPL_1_1Arcball_a132dd18a53e7a785b2566920ce4141c5}


The point type. 

\hypertarget{classSPL_1_1Arcball_aebc0585440ca9c5c464e2fedbc8123c0}{}\index{S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}!Rotation@{Rotation}}
\index{Rotation@{Rotation}!S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}}
\subsubsection[{Rotation}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ typedef {\bf Rotation\+\_\+3}$<${\bf Kernel}$>$ {\bf S\+P\+L\+::\+Arcball}$<$ T $>$\+::{\bf Rotation}}\label{classSPL_1_1Arcball_aebc0585440ca9c5c464e2fedbc8123c0}


The representation of a rotation. 

\hypertarget{classSPL_1_1Arcball_aad78c5f05521d7298d3c65a9599ac120}{}\index{S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}!Vector@{Vector}}
\index{Vector@{Vector}!S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}}
\subsubsection[{Vector}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ typedef Kernel\+::\+Vector\+\_\+3 {\bf S\+P\+L\+::\+Arcball}$<$ T $>$\+::{\bf Vector}}\label{classSPL_1_1Arcball_aad78c5f05521d7298d3c65a9599ac120}


The vector type. 



\subsection{Member Function Documentation}
\hypertarget{classSPL_1_1Arcball_a9f3a7d0cd59dc962e5ea775a4d85e703}{}\index{S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}!set\+Debug\+Level@{set\+Debug\+Level}}
\index{set\+Debug\+Level@{set\+Debug\+Level}!S\+P\+L\+::\+Arcball@{S\+P\+L\+::\+Arcball}}
\subsubsection[{set\+Debug\+Level}]{\setlength{\rightskip}{0pt plus 5cm}template$<$class T$>$ void {\bf S\+P\+L\+::\+Arcball}$<$ T $>$\+::set\+Debug\+Level (
\begin{DoxyParamCaption}
\item[{int}]{debug\+Level}
\end{DoxyParamCaption}
) const}\label{classSPL_1_1Arcball_a9f3a7d0cd59dc962e5ea775a4d85e703}


For debugging... 



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{Arcball_8hpp}{Arcball.\+hpp}\end{DoxyCompactItemize}
