\hypertarget{a00652}{\section{gl\+Viewer Class Reference}
\label{a00652}\index{gl\+Viewer@{gl\+Viewer}}
}


{\ttfamily \#include $<$Open\+Flipper/widgets/gl\+Widget/\+Qt\+Base\+Viewer.\+hh$>$}

Inheritance diagram for gl\+Viewer\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{a00652}
\end{center}
\end{figure}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{a00652_a410894db0a91cbe0db227fdfd1d7de10}{Projection\+Mode} \{ \hyperlink{a00652_a410894db0a91cbe0db227fdfd1d7de10ade297f12b9ffb4273aafdc6c817bc347}{O\+R\+T\+H\+O\+G\+R\+A\+P\+H\+I\+C\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N}, 
\hyperlink{a00652_a410894db0a91cbe0db227fdfd1d7de10a79422bc64c445223b76b06ab4d729914}{P\+E\+R\+S\+P\+E\+C\+T\+I\+V\+E\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N}
 \}
\begin{DoxyCompactList}\small\item\em projection mode \end{DoxyCompactList}\item 
enum \hyperlink{a00652_a811de4b9a4151af7255e085014f8bb57}{Navigation\+Mode} \{ \hyperlink{a00652_a811de4b9a4151af7255e085014f8bb57aa786e9574eb166f22a2162dda3336625}{N\+O\+R\+M\+A\+L\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N}, 
\hyperlink{a00652_a811de4b9a4151af7255e085014f8bb57ac3f29e29b2a593884be18ebcee385aeb}{F\+I\+R\+S\+T\+P\+E\+R\+S\+O\+N\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N}
 \}
\begin{DoxyCompactList}\small\item\em Navigation mode. \end{DoxyCompactList}\item 
enum \hyperlink{a00652_aadec7bceb301564e3ec6dfdba72334fc}{Normals\+Mode} \{ \hyperlink{a00652_aadec7bceb301564e3ec6dfdba72334fca1be493a002b76cae55a430acb6ad46dc}{D\+O\+N\+T\+\_\+\+T\+O\+U\+C\+H\+\_\+\+N\+O\+R\+M\+A\+L\+S}, 
\hyperlink{a00652_aadec7bceb301564e3ec6dfdba72334fca55f7de2ad77cd04402094e5f6b62d771}{N\+O\+R\+M\+A\+L\+I\+Z\+E\+\_\+\+N\+O\+R\+M\+A\+L\+S}
 \}
\begin{DoxyCompactList}\small\item\em Automatically normalize normals? \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_a24818991e6804b48e6c4a12109da19fb}{virtual void \hyperlink{a00652_a24818991e6804b48e6c4a12109da19fb}{update\+G\+L} ()}\label{a00652_a24818991e6804b48e6c4a12109da19fb}

\begin{DoxyCompactList}\small\item\em Redraw scene. Triggers paint event for updating the view (cf. draw\+Now()). \end{DoxyCompactList}\item 
\hypertarget{a00652_a5e86fc0e8248bcfac7ef9c0aaac7d36a}{virtual void \hyperlink{a00652_a5e86fc0e8248bcfac7ef9c0aaac7d36a}{set\+Home} ()}\label{a00652_a5e86fc0e8248bcfac7ef9c0aaac7d36a}

\begin{DoxyCompactList}\small\item\em set home position \end{DoxyCompactList}\item 
\hypertarget{a00652_afad20e7d26d32a5d7f4a775c389418ac}{virtual void \hyperlink{a00652_afad20e7d26d32a5d7f4a775c389418ac}{home} ()}\label{a00652_afad20e7d26d32a5d7f4a775c389418ac}

\begin{DoxyCompactList}\small\item\em go to home pos \end{DoxyCompactList}\item 
\hypertarget{a00652_a916e56338ded6e740746e806db8e9a28}{virtual void \hyperlink{a00652_a916e56338ded6e740746e806db8e9a28}{view\+All} ()}\label{a00652_a916e56338ded6e740746e806db8e9a28}

\begin{DoxyCompactList}\small\item\em view the whole scene \end{DoxyCompactList}\item 
\hypertarget{a00652_a832c32182b7803d7a6fc599e3113bfbc}{virtual void \hyperlink{a00652_a832c32182b7803d7a6fc599e3113bfbc}{perspective\+Projection} ()}\label{a00652_a832c32182b7803d7a6fc599e3113bfbc}

\begin{DoxyCompactList}\small\item\em set perspective view (projection\+Mode(\+P\+E\+R\+S\+P\+E\+C\+T\+I\+V\+E\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N)) \end{DoxyCompactList}\item 
\hypertarget{a00652_af7a7cd1f49fecd1190e34aa3ea174395}{virtual void \hyperlink{a00652_af7a7cd1f49fecd1190e34aa3ea174395}{orthographic\+Projection} ()}\label{a00652_af7a7cd1f49fecd1190e34aa3ea174395}

\begin{DoxyCompactList}\small\item\em set orthographic view (projection\+Mode(\+O\+R\+T\+H\+O\+G\+R\+A\+P\+H\+I\+C\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N)) \end{DoxyCompactList}\item 
\hypertarget{a00652_a4c79b3661f49e815c7e94b1dd7e581ee}{virtual void \hyperlink{a00652_a4c79b3661f49e815c7e94b1dd7e581ee}{toggle\+Projection\+Mode} ()}\label{a00652_a4c79b3661f49e815c7e94b1dd7e581ee}

\begin{DoxyCompactList}\small\item\em toggle projection mode \end{DoxyCompactList}\item 
\hypertarget{a00652_a122867f6c0229dc5948e939c8e8a22b8}{virtual void \hyperlink{a00652_a122867f6c0229dc5948e939c8e8a22b8}{toggle\+Navigation\+Mode} ()}\label{a00652_a122867f6c0229dc5948e939c8e8a22b8}

\begin{DoxyCompactList}\small\item\em toggle navigation mode \end{DoxyCompactList}\item 
\hypertarget{a00652_a7f5586ba0113ce1b5765786f8c674c10}{virtual void \hyperlink{a00652_a7f5586ba0113ce1b5765786f8c674c10}{set\+F\+O\+V\+Y} (double \+\_\+fovy)}\label{a00652_a7f5586ba0113ce1b5765786f8c674c10}

\begin{DoxyCompactList}\small\item\em Set fovy. \end{DoxyCompactList}\item 
\hypertarget{a00652_a9ee5f113d217408a147710be4eb21b81}{virtual void \hyperlink{a00652_a9ee5f113d217408a147710be4eb21b81}{set\+View} (const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{A\+C\+G\+::\+G\+L\+Matrixd} \&\+\_\+modelview, const \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{A\+C\+G\+::\+G\+L\+Matrixd} \&\+\_\+inverse\+\_\+modelview)}\label{a00652_a9ee5f113d217408a147710be4eb21b81}

\begin{DoxyCompactList}\small\item\em set view, used for synchronizing \end{DoxyCompactList}\item 
void \hyperlink{a00652_a4080043b98badf413670bc0b445c27c7}{action\+Paste\+View} (Q\+Size $\ast$\+\_\+window\+Size=N\+U\+L\+L, int $\ast$\+\_\+splitter\+Width=N\+U\+L\+L)
\item 
void \hyperlink{a00652_a0312c68e5d7a4d3a908c38fe33c498c2}{action\+Copy\+View} (const Q\+Size \&\+\_\+window\+Size=Q\+Size(-\/1,-\/1), const int \+\_\+splitter\+Width=-\/1, const bool \+\_\+make\+\_\+c\+\_\+string=false)
\item 
\hypertarget{a00652_a23e3b580cf44b06ca3cc7375c60beefc}{void {\bfseries action\+Set\+View} (Q\+String view)}\label{a00652_a23e3b580cf44b06ca3cc7375c60beefc}

\end{DoxyCompactItemize}
\begin{Indent}{\bf Snapshots}\par
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a00652_a530882bc9a660045ab1f3637883fced6}{snapshot} (int \+\_\+width=0, int \+\_\+height=0, bool \+\_\+alpha=false, bool \+\_\+hide\+Coordsys=false, int samples=1)
\item 
\hypertarget{a00652_a451893e648fb28cb09565d1652f100a9}{virtual void \hyperlink{a00652_a451893e648fb28cb09565d1652f100a9}{snapshot} (Q\+Image \&\+\_\+image, int \+\_\+width=0, int \+\_\+height=0, bool \+\_\+alpha=false, bool \+\_\+hide\+Coordsys=false, int samples=1)}\label{a00652_a451893e648fb28cb09565d1652f100a9}

\begin{DoxyCompactList}\small\item\em Take a snapshot and store it in the given image. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Signals}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_a0cdfbe2a1de94d34888ff174a33ff478}{void {\bfseries function\+Menu\+Update} ()}\label{a00652_a0cdfbe2a1de94d34888ff174a33ff478}

\item 
\hypertarget{a00652_ad45c2fc10c67e625d559c7d3a8a1d1bc}{void {\bfseries status\+Message} (const Q\+String \&message, int timeout=0)}\label{a00652_ad45c2fc10c67e625d559c7d3a8a1d1bc}

\item 
\hypertarget{a00652_a057711652ef62fafa7d84e0371bba8c8}{void {\bfseries projection\+Mode\+Changed} (bool \+\_\+ortho)}\label{a00652_a057711652ef62fafa7d84e0371bba8c8}

\item 
\hypertarget{a00652_a5ed09ad4f4c05762136b5db9048329dd}{void {\bfseries navigation\+Mode\+Changed} (bool \+\_\+normal)}\label{a00652_a5ed09ad4f4c05762136b5db9048329dd}

\item 
void \hyperlink{a00652_aa87c11591840eab0a4fe21947b0f219f}{signal\+Mouse\+Event} (Q\+Mouse\+Event $\ast$, const std\+::string \&)
\item 
\hypertarget{a00652_a3dec380630eb571f7fafe5b0c7a66664}{void \hyperlink{a00652_a3dec380630eb571f7fafe5b0c7a66664}{signal\+Mouse\+Event} (Q\+Mouse\+Event $\ast$)}\label{a00652_a3dec380630eb571f7fafe5b0c7a66664}

\begin{DoxyCompactList}\small\item\em This signal does not send the pick mode and is kept for compatibility. \end{DoxyCompactList}\item 
\hypertarget{a00652_afb6949194894261df0716e0267b2dc67}{void \hyperlink{a00652_afb6949194894261df0716e0267b2dc67}{signal\+Wheel\+Event} (Q\+Wheel\+Event $\ast$, const std\+::string \&)}\label{a00652_afb6949194894261df0716e0267b2dc67}

\begin{DoxyCompactList}\small\item\em Emitted in Pick mode. Uses pick mode. \end{DoxyCompactList}\item 
void \hyperlink{a00652_aa7a0233b9b04661ee7ee3423077cbab2}{signal\+Mouse\+Event\+Identify} (Q\+Mouse\+Event $\ast$)
\item 
void \hyperlink{a00652_aebfc5f4da2b7ed4ad6f54503445cdfa2}{signal\+Mouse\+Event\+Light} (Q\+Mouse\+Event $\ast$)
\item 
\hypertarget{a00652_ae06c270eef78abd328a37c79bbf143da}{void \hyperlink{a00652_ae06c270eef78abd328a37c79bbf143da}{signal\+Scene\+Graph\+Changed} (\hyperlink{a00327}{A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node} $\ast$\+\_\+root)}\label{a00652_ae06c270eef78abd328a37c79bbf143da}

\begin{DoxyCompactList}\small\item\em scene graph has changed \end{DoxyCompactList}\item 
void \hyperlink{a00652_ac89941b582ee1eecb70afc64c0935f6d}{signal\+Mouse\+Event\+Click} (Q\+Mouse\+Event $\ast$, bool \+\_\+double)
\item 
void \hyperlink{a00652_af7d40857f258091128fe9172dbd96236}{signal\+Custom\+Context\+Menu\+Requested} (const Q\+Point \&)
\end{DoxyCompactItemize}
\begin{Indent}{\bf view handling}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_ade24436154963b44ad612528de4d7ad4}{void \hyperlink{a00652_ade24436154963b44ad612528de4d7ad4}{view\+Updated} ()}\label{a00652_ade24436154963b44ad612528de4d7ad4}

\begin{DoxyCompactList}\small\item\em This signal is emitted when the scene is repainted due to any event. \end{DoxyCompactList}\item 
\hypertarget{a00652_a3c56a96004e39b31a39a3ae4eae1ded7}{void \hyperlink{a00652_a3c56a96004e39b31a39a3ae4eae1ded7}{view\+Changed} ()}\label{a00652_a3c56a96004e39b31a39a3ae4eae1ded7}

\begin{DoxyCompactList}\small\item\em This signal is emitted whenever the view is changed by the user. \end{DoxyCompactList}\item 
\hypertarget{a00652_a21b0f313bb05f10956b7f88e26ea92b7}{void \hyperlink{a00652_a21b0f313bb05f10956b7f88e26ea92b7}{signal\+Make\+Active} ()}\label{a00652_a21b0f313bb05f10956b7f88e26ea92b7}

\begin{DoxyCompactList}\small\item\em make this widget active \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{a00652_a9748beac7ab12ae369dc2f64c73da7eb}{gl\+Viewer} (Q\+Graphics\+Scene $\ast$\+\_\+scene, Q\+G\+L\+Widget $\ast$\+\_\+gl\+Widget, \hyperlink{a01451}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties, Q\+Graphics\+Widget $\ast$\+\_\+parent=0)
\item 
\hypertarget{a00652_a9c31464f316965958b2b3a45c06ea8cf}{virtual \hyperlink{a00652_a9c31464f316965958b2b3a45c06ea8cf}{$\sim$gl\+Viewer} ()}\label{a00652_a9c31464f316965958b2b3a45c06ea8cf}

\begin{DoxyCompactList}\small\item\em Destructor. \end{DoxyCompactList}\item 
\hypertarget{a00652_a003e4066701ae292c8102af4c27f5730}{virtual void \hyperlink{a00652_a003e4066701ae292c8102af4c27f5730}{make\+Current} ()}\label{a00652_a003e4066701ae292c8102af4c27f5730}

\begin{DoxyCompactList}\small\item\em Makes this widget the current widget for Open\+G\+L operations. \end{DoxyCompactList}\item 
\hypertarget{a00652_a42d0ee8d7b2b12601229f39e03c95e4e}{virtual void \hyperlink{a00652_a42d0ee8d7b2b12601229f39e03c95e4e}{swap\+Buffers} ()}\label{a00652_a42d0ee8d7b2b12601229f39e03c95e4e}

\begin{DoxyCompactList}\small\item\em Swaps the screen contents with the off-\/screen buffer. \end{DoxyCompactList}\item 
\hypertarget{a00652_a629706c05138e2dd46c76f5324255190}{void \hyperlink{a00652_a629706c05138e2dd46c76f5324255190}{lock\+Projection\+Update} (void)}\label{a00652_a629706c05138e2dd46c76f5324255190}

\begin{DoxyCompactList}\small\item\em Lock update of projection matrix. \end{DoxyCompactList}\item 
\hypertarget{a00652_a5aac6542217b081831d504314b7cb44f}{void \hyperlink{a00652_a5aac6542217b081831d504314b7cb44f}{unlock\+Projection\+Update} (void)}\label{a00652_a5aac6542217b081831d504314b7cb44f}

\begin{DoxyCompactList}\small\item\em Unlock update of projection matrix. \end{DoxyCompactList}\item 
\hypertarget{a00652_a111d4749bf6cc3b98ccd9d1cb786b2c8}{void \hyperlink{a00652_a111d4749bf6cc3b98ccd9d1cb786b2c8}{track\+Mouse} (bool \+\_\+track)}\label{a00652_a111d4749bf6cc3b98ccd9d1cb786b2c8}

\begin{DoxyCompactList}\small\item\em Enable/disable mouse tracking (move events with no button press) \end{DoxyCompactList}\item 
void \hyperlink{a00652_a16e80212c8a66bcdc282436e49c02ac1}{scene\+Graph} (\hyperlink{a00327}{A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node} $\ast$\+\_\+root, unsigned int \+\_\+max\+Passes, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+bbmin, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \+\_\+bbmax, const bool \+\_\+reset\+Track\+Ball=false)
\item 
\hypertarget{a00652_a81bd7d788711d21bc91b0cdf2a99b6dd}{void \hyperlink{a00652_a81bd7d788711d21bc91b0cdf2a99b6dd}{projection\+Mode} (\hyperlink{a00652_a410894db0a91cbe0db227fdfd1d7de10}{Projection\+Mode} \+\_\+p)}\label{a00652_a81bd7d788711d21bc91b0cdf2a99b6dd}

\begin{DoxyCompactList}\small\item\em Changes the projection mode and updates the projection matrix. \end{DoxyCompactList}\item 
\hypertarget{a00652_afaf1994ff92b14e9c75b04ddf294a37d}{\hyperlink{a00652_a410894db0a91cbe0db227fdfd1d7de10}{Projection\+Mode} \hyperlink{a00652_afaf1994ff92b14e9c75b04ddf294a37d}{projection\+Mode} () const }\label{a00652_afaf1994ff92b14e9c75b04ddf294a37d}

\begin{DoxyCompactList}\small\item\em get current projection mode \end{DoxyCompactList}\item 
\hypertarget{a00652_a88abfc3b443da18203d463b500d4560d}{void \hyperlink{a00652_a88abfc3b443da18203d463b500d4560d}{navigation\+Mode} (\hyperlink{a00652_a811de4b9a4151af7255e085014f8bb57}{Navigation\+Mode} \+\_\+n)}\label{a00652_a88abfc3b443da18203d463b500d4560d}

\begin{DoxyCompactList}\small\item\em Changes the navigation mode. \end{DoxyCompactList}\item 
\hypertarget{a00652_a6939705cc0d672f253fe2bb4cceb62ba}{\hyperlink{a00652_a811de4b9a4151af7255e085014f8bb57}{Navigation\+Mode} \hyperlink{a00652_a6939705cc0d672f253fe2bb4cceb62ba}{navigation\+Mode} () const }\label{a00652_a6939705cc0d672f253fe2bb4cceb62ba}

\begin{DoxyCompactList}\small\item\em get current navigation mode \end{DoxyCompactList}\item 
void \hyperlink{a00652_ab0248fa345d594824f6672c206be8a40}{set\+Scene\+Pos} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+center, double \+\_\+radius, const bool \+\_\+reset\+Track\+Ball=false)
\item 
\hypertarget{a00652_a58752cbd503d9e014c577f4b206f1b42}{void \hyperlink{a00652_a58752cbd503d9e014c577f4b206f1b42}{viewing\+Direction} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+dir, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+up)}\label{a00652_a58752cbd503d9e014c577f4b206f1b42}

\begin{DoxyCompactList}\small\item\em set the viewing direction \end{DoxyCompactList}\item 
\hypertarget{a00652_a9b81e7eb410896542af627f8ed7c86cf}{void \hyperlink{a00652_a9b81e7eb410896542af627f8ed7c86cf}{look\+At} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+eye, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+center, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+up)}\label{a00652_a9b81e7eb410896542af627f8ed7c86cf}

\begin{DoxyCompactList}\small\item\em Set look at transformation directly. \end{DoxyCompactList}\item 
\hypertarget{a00652_af7cbae18b60e8c5279db7180c0c66754}{void \hyperlink{a00652_af7cbae18b60e8c5279db7180c0c66754}{normals\+Mode} (\hyperlink{a00652_aadec7bceb301564e3ec6dfdba72334fc}{Normals\+Mode} \+\_\+mode)}\label{a00652_af7cbae18b60e8c5279db7180c0c66754}

\begin{DoxyCompactList}\small\item\em set treatment of normals \end{DoxyCompactList}\item 
\hypertarget{a00652_a87e61d3777f9b00d3ff7da835bf4bb99}{\hyperlink{a00652_aadec7bceb301564e3ec6dfdba72334fc}{Normals\+Mode} \hyperlink{a00652_a87e61d3777f9b00d3ff7da835bf4bb99}{normals\+Mode} () const }\label{a00652_a87e61d3777f9b00d3ff7da835bf4bb99}

\begin{DoxyCompactList}\small\item\em get treatment of normals \end{DoxyCompactList}\item 
\hypertarget{a00652_aafb3a04dd5fa1d800d0815776e5dff42}{void \hyperlink{a00652_aafb3a04dd5fa1d800d0815776e5dff42}{copy\+To\+Image} (Q\+Image \&\+\_\+image, G\+Lenum \+\_\+buffer=G\+L\+\_\+\+B\+A\+C\+K)}\label{a00652_aafb3a04dd5fa1d800d0815776e5dff42}

\begin{DoxyCompactList}\small\item\em copy current framebuffer to an Q\+Image \end{DoxyCompactList}\item 
\hypertarget{a00652_a56c6f5eec36d3c32a74c84705e5a66e1}{void \hyperlink{a00652_a56c6f5eec36d3c32a74c84705e5a66e1}{copy\+To\+Image} (Q\+Image \&\+\_\+image, unsigned int \+\_\+left, unsigned int \+\_\+top, unsigned int \+\_\+width, unsigned int \+\_\+height, G\+Lenum \+\_\+buffer)}\label{a00652_a56c6f5eec36d3c32a74c84705e5a66e1}

\begin{DoxyCompactList}\small\item\em copy current framebuffer to an Q\+Image \end{DoxyCompactList}\item 
\hypertarget{a00652_a67e9500c789b14e03096967260a80745}{unsigned int \hyperlink{a00652_a67e9500c789b14e03096967260a80745}{gl\+Width} () const }\label{a00652_a67e9500c789b14e03096967260a80745}

\begin{DoxyCompactList}\small\item\em get width of Q\+G\+L\+Widget \end{DoxyCompactList}\item 
\hypertarget{a00652_aae762c72733eab2ae4bdd202bb5946c9}{unsigned int \hyperlink{a00652_aae762c72733eab2ae4bdd202bb5946c9}{gl\+Height} () const }\label{a00652_aae762c72733eab2ae4bdd202bb5946c9}

\begin{DoxyCompactList}\small\item\em get height of Q\+G\+L\+Widget \end{DoxyCompactList}\item 
\hypertarget{a00652_a5712ae947d682be1bf9e2dd37ac302a4}{Q\+Size \hyperlink{a00652_a5712ae947d682be1bf9e2dd37ac302a4}{gl\+Size} () const }\label{a00652_a5712ae947d682be1bf9e2dd37ac302a4}

\begin{DoxyCompactList}\small\item\em get size of Q\+G\+L\+W\+Idget \end{DoxyCompactList}\item 
\hypertarget{a00652_a667c6cac9c155d516b50ac97abffbb66}{Q\+Point \hyperlink{a00652_a667c6cac9c155d516b50ac97abffbb66}{gl\+Map\+From\+Global} (const Q\+Point \&\+\_\+pos) const }\label{a00652_a667c6cac9c155d516b50ac97abffbb66}

\begin{DoxyCompactList}\small\item\em map global to glarea coords \end{DoxyCompactList}\item 
\hypertarget{a00652_ab29318c79333130d56e3504f60e29b86}{Q\+Point \hyperlink{a00652_ab29318c79333130d56e3504f60e29b86}{gl\+Map\+To\+Global} (const Q\+Point \&\+\_\+pos) const }\label{a00652_ab29318c79333130d56e3504f60e29b86}

\begin{DoxyCompactList}\small\item\em map glarea coords to global coords \end{DoxyCompactList}\item 
\hypertarget{a00652_ac30ef05cf57b413adab69f521e394957}{double {\bfseries field\+\_\+of\+\_\+view\+\_\+vertical} () const }\label{a00652_ac30ef05cf57b413adab69f521e394957}

\item 
\hypertarget{a00652_a680ce324bfa70ca6812331b8f25d311f}{double \hyperlink{a00652_a680ce324bfa70ca6812331b8f25d311f}{aspect\+\_\+ratio} () const }\label{a00652_a680ce324bfa70ca6812331b8f25d311f}

\begin{DoxyCompactList}\small\item\em Returns the viewer's aspect ratio. \end{DoxyCompactList}\item 
\hypertarget{a00652_a3e07544d2eac6fb4f6e50288cd7bc4f0}{double \hyperlink{a00652_a3e07544d2eac6fb4f6e50288cd7bc4f0}{near\+\_\+plane} () const }\label{a00652_a3e07544d2eac6fb4f6e50288cd7bc4f0}

\begin{DoxyCompactList}\small\item\em Returns a chili cheese burger. \end{DoxyCompactList}\item 
\hypertarget{a00652_addc70dc0f2b1315f6cdcc7f4ee6a6cd1}{double \hyperlink{a00652_addc70dc0f2b1315f6cdcc7f4ee6a6cd1}{far\+\_\+plane} () const }\label{a00652_addc70dc0f2b1315f6cdcc7f4ee6a6cd1}

\begin{DoxyCompactList}\small\item\em Returns a peanut butter sandwich. \end{DoxyCompactList}\item 
\hypertarget{a00652_ab6f515c54d35f3f9c9d71b473d812be8}{double \hyperlink{a00652_ab6f515c54d35f3f9c9d71b473d812be8}{ortho\+\_\+width} () const }\label{a00652_ab6f515c54d35f3f9c9d71b473d812be8}

\begin{DoxyCompactList}\small\item\em Get width of the gl scene in orthogonal projection mode. \end{DoxyCompactList}\item 
void \hyperlink{a00652_a0340f00ac2eefca03531481d663180fd}{encode\+View} (Q\+String \&\+\_\+view, const Q\+Size \&\+\_\+window\+Size=Q\+Size(-\/1,-\/1), const int \+\_\+tool\+Bar\+Width=-\/1, const bool \+\_\+make\+\_\+c\+\_\+string=false)
\item 
bool \hyperlink{a00652_a502b4799e7509dfdd6760e91d51e7b36}{decode\+View} (const Q\+String \&\+\_\+view, Q\+Size $\ast$\+\_\+window\+Size=N\+U\+L\+L, int $\ast$\+\_\+tool\+Bar\+Width=N\+U\+L\+L, Q\+Size $\ast$\+\_\+viewport\+Size=N\+U\+L\+L)
\item 
\hypertarget{a00652_a632c7f6e2f5443fcebf418107133c06e}{void \hyperlink{a00652_a632c7f6e2f5443fcebf418107133c06e}{init\+Modelview\+Matrix} ()}\label{a00652_a632c7f6e2f5443fcebf418107133c06e}

\begin{DoxyCompactList}\small\item\em initialize modelview matrix to identity \end{DoxyCompactList}\item 
\hypertarget{a00652_a927d0d7ec8a8db5e4cb718d0e7862674}{void \hyperlink{a00652_a927d0d7ec8a8db5e4cb718d0e7862674}{grab\+G\+L\+Area} ()}\label{a00652_a927d0d7ec8a8db5e4cb718d0e7862674}

\begin{DoxyCompactList}\small\item\em get all Mouse \& Key Events for Gl\+Widget \end{DoxyCompactList}\item 
\hypertarget{a00652_a9bbe625cf2970316e364e9473936e137}{void \hyperlink{a00652_a9bbe625cf2970316e364e9473936e137}{release\+G\+L\+Area} ()}\label{a00652_a9bbe625cf2970316e364e9473936e137}

\begin{DoxyCompactList}\small\item\em undo grabbing G\+L\+Area \end{DoxyCompactList}\item 
\hypertarget{a00652_a52c553a9c1cc8301a5e04e7ac9fd068a}{void \hyperlink{a00652_a52c553a9c1cc8301a5e04e7ac9fd068a}{translate} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&trans)}\label{a00652_a52c553a9c1cc8301a5e04e7ac9fd068a}

\begin{DoxyCompactList}\small\item\em translate the scene and update modelview matrix \end{DoxyCompactList}\item 
\hypertarget{a00652_ab388bab4401e34c8550c7176960999e5}{void \hyperlink{a00652_ab388bab4401e34c8550c7176960999e5}{rotate} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&axis, double angle)}\label{a00652_ab388bab4401e34c8550c7176960999e5}

\begin{DoxyCompactList}\small\item\em rotate the scene (around its center) and update modelview matrix \end{DoxyCompactList}\item 
\hypertarget{a00652_acaef294fb3953261a12e8d7b496e57b4}{void \hyperlink{a00652_acaef294fb3953261a12e8d7b496e57b4}{rotate} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&axis, double angle, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+center)}\label{a00652_acaef294fb3953261a12e8d7b496e57b4}

\begin{DoxyCompactList}\small\item\em rotate the scene and update modelview matrix \end{DoxyCompactList}\item 
\hypertarget{a00652_a76d8b239d6e969e4308346c2c403721c}{void \hyperlink{a00652_a76d8b239d6e969e4308346c2c403721c}{set\+Cursor\+Painter} (\hyperlink{a00469}{Cursor\+Painter} $\ast$\+\_\+cursor\+Painter)}\label{a00652_a76d8b239d6e969e4308346c2c403721c}

\begin{DoxyCompactList}\small\item\em sets the current cursor painter \end{DoxyCompactList}\item 
\hypertarget{a00652_af7dc0c0d89c57298dad1a3f2464c2e63}{void \hyperlink{a00652_af7dc0c0d89c57298dad1a3f2464c2e63}{update\+Cursor\+Position} (Q\+Point\+F \+\_\+scene\+Pos)}\label{a00652_af7dc0c0d89c57298dad1a3f2464c2e63}

\begin{DoxyCompactList}\small\item\em will be called from \hyperlink{a00469}{Cursor\+Painter} to inform the viewer that the cursor position changed \end{DoxyCompactList}\item 
\hypertarget{a00652_a05301ac175a8c434db7b12ed9bfbabe5}{void \hyperlink{a00652_a05301ac175a8c434db7b12ed9bfbabe5}{move\+Forward} ()}\label{a00652_a05301ac175a8c434db7b12ed9bfbabe5}

\begin{DoxyCompactList}\small\item\em First person navigation\+: Move forward. \end{DoxyCompactList}\item 
\hypertarget{a00652_ada73bee9c382d20938d0b7fcb156d6ac}{void \hyperlink{a00652_ada73bee9c382d20938d0b7fcb156d6ac}{move\+Back} ()}\label{a00652_ada73bee9c382d20938d0b7fcb156d6ac}

\begin{DoxyCompactList}\small\item\em First person navigation\+: Move back. \end{DoxyCompactList}\item 
\hypertarget{a00652_a3c7a1847d9e27ebc165f31ed5f6947e2}{void \hyperlink{a00652_a3c7a1847d9e27ebc165f31ed5f6947e2}{strafe\+Left} ()}\label{a00652_a3c7a1847d9e27ebc165f31ed5f6947e2}

\begin{DoxyCompactList}\small\item\em First person navigation\+: Strafe left. \end{DoxyCompactList}\item 
\hypertarget{a00652_a39a7374c71d90f4b637564bda0ee2880}{void \hyperlink{a00652_a39a7374c71d90f4b637564bda0ee2880}{strafe\+Right} ()}\label{a00652_a39a7374c71d90f4b637564bda0ee2880}

\begin{DoxyCompactList}\small\item\em First person navigation\+: Strafe Right. \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf Projection settings}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00652_ab4e799684b1f4569e5a16b0dcdd2bde5}{set\+Scene\+Center} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+center)
\item 
void \hyperlink{a00652_aeeb590fd0692795d169887b700323da3}{set\+Track\+Ball\+Center} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+center)
\begin{DoxyCompactList}\small\item\em Set Trackball Center point of scene. \end{DoxyCompactList}\item 
const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_a5a45b44f1e0a7a7d17e80c9e65768055}{track\+Ball\+Center} ()
\begin{DoxyCompactList}\small\item\em Get Trackball Center point of scene. \end{DoxyCompactList}\item 
const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_a53d0dee00d0e298ea78a6c244c4d9022}{scene\+\_\+center} () const 
\item 
double \hyperlink{a00652_ae1d4aae9e66e99ec3e4e400244a27d9d}{scene\+\_\+radius} () const 
\item 
void \hyperlink{a00652_a0d4e534896312afed05ff97f641509d6}{set\+Scene\+Radius} (double \+\_\+radius)
\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item 
static bool \hyperlink{a00652_a063fef342a369b30a750cb2ec3b6dd26}{decode\+View} (const Q\+String \&\+\_\+view, \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{A\+C\+G\+::\+G\+L\+Matrixd} \&m, \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{A\+C\+G\+::\+G\+L\+Matrixd} \&p, int \&p\+Mode, double \&\hyperlink{a00652_ab6f515c54d35f3f9c9d71b473d812be8}{ortho\+\_\+width}, Q\+Size $\ast$\+\_\+window\+Size=N\+U\+L\+L, int $\ast$\+\_\+splitter\+Width=N\+U\+L\+L, Q\+Size $\ast$\+\_\+viewport\+Size=N\+U\+L\+L)
\end{DoxyCompactItemize}
\subsection*{Protected Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_ac83763336ca57153b416b7ce46e99679}{virtual void \hyperlink{a00652_ac83763336ca57153b416b7ce46e99679}{slot\+Wheel\+X} (double \+\_\+d\+Angle)}\label{a00652_ac83763336ca57153b416b7ce46e99679}

\begin{DoxyCompactList}\small\item\em process signals from wheel\+X\+\_\+ \end{DoxyCompactList}\item 
\hypertarget{a00652_a97914c75c475fd83ea9ca7917c0a5f17}{virtual void \hyperlink{a00652_a97914c75c475fd83ea9ca7917c0a5f17}{slot\+Wheel\+Y} (double \+\_\+d\+Angle)}\label{a00652_a97914c75c475fd83ea9ca7917c0a5f17}

\begin{DoxyCompactList}\small\item\em process signals from wheel\+X\+\_\+ \end{DoxyCompactList}\item 
\hypertarget{a00652_aaba207a41fd6c100129571f9fe1a3855}{virtual void \hyperlink{a00652_aaba207a41fd6c100129571f9fe1a3855}{slot\+Wheel\+Z} (double \+\_\+dist)}\label{a00652_aaba207a41fd6c100129571f9fe1a3855}

\begin{DoxyCompactList}\small\item\em process signals from wheel\+Z\+\_\+ \end{DoxyCompactList}\item 
\hypertarget{a00652_a13e16fa2dd25b59b9c5687e2459448dc}{virtual void \hyperlink{a00652_a13e16fa2dd25b59b9c5687e2459448dc}{cleanup\+Event\+Filter} ()}\label{a00652_a13e16fa2dd25b59b9c5687e2459448dc}

\begin{DoxyCompactList}\small\item\em correct ??? (same function as in qt src) \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
virtual void \hyperlink{a00652_ae496c7f46e2001020468aa04ccd43609}{initialize\+G\+L} ()
\begin{DoxyCompactList}\small\item\em Return a resonable size hint. \end{DoxyCompactList}\item 
\hypertarget{a00652_a3ee498f1a82cb698dad5618fcf559aec}{virtual void \hyperlink{a00652_a3ee498f1a82cb698dad5618fcf559aec}{paint\+G\+L} ()}\label{a00652_a3ee498f1a82cb698dad5618fcf559aec}

\begin{DoxyCompactList}\small\item\em draw the scene. Triggered by \hyperlink{a00652_a24818991e6804b48e6c4a12109da19fb}{update\+G\+L()}. \end{DoxyCompactList}\item 
\hypertarget{a00652_a5d0dd2173cbd6dcd4abb01db1e52c2b0}{virtual void \hyperlink{a00652_a5d0dd2173cbd6dcd4abb01db1e52c2b0}{resize\+Event} (Q\+Graphics\+Scene\+Resize\+Event $\ast$\+\_\+e)}\label{a00652_a5d0dd2173cbd6dcd4abb01db1e52c2b0}

\begin{DoxyCompactList}\small\item\em handle resize events \end{DoxyCompactList}\item 
\hypertarget{a00652_a9f77b53640eeaa7d2cba609c2aefecf7}{virtual void \hyperlink{a00652_a9f77b53640eeaa7d2cba609c2aefecf7}{move\+Event} (Q\+Graphics\+Scene\+Move\+Event $\ast$\+\_\+e)}\label{a00652_a9f77b53640eeaa7d2cba609c2aefecf7}

\begin{DoxyCompactList}\small\item\em handle move events \end{DoxyCompactList}\item 
\hypertarget{a00652_a7772521340e2761b6c812d9bc470df8a}{virtual void \hyperlink{a00652_a7772521340e2761b6c812d9bc470df8a}{mouse\+Press\+Event} (Q\+Graphics\+Scene\+Mouse\+Event $\ast$\+\_\+event)}\label{a00652_a7772521340e2761b6c812d9bc470df8a}

\begin{DoxyCompactList}\small\item\em handle mouse press events \end{DoxyCompactList}\item 
\hypertarget{a00652_a58d0f6e54cc7a9ee5ac0de70e4dd8a45}{virtual void \hyperlink{a00652_a58d0f6e54cc7a9ee5ac0de70e4dd8a45}{mouse\+Double\+Click\+Event} (Q\+Graphics\+Scene\+Mouse\+Event $\ast$\+\_\+event)}\label{a00652_a58d0f6e54cc7a9ee5ac0de70e4dd8a45}

\begin{DoxyCompactList}\small\item\em handle mouse double click events \end{DoxyCompactList}\item 
\hypertarget{a00652_a77eed27ee43ac94788ad2ace157dca19}{virtual void \hyperlink{a00652_a77eed27ee43ac94788ad2ace157dca19}{mouse\+Move\+Event} (Q\+Graphics\+Scene\+Mouse\+Event $\ast$\+\_\+event)}\label{a00652_a77eed27ee43ac94788ad2ace157dca19}

\begin{DoxyCompactList}\small\item\em handle mouse move events \end{DoxyCompactList}\item 
\hypertarget{a00652_ad67f0661e7639d3540c5fb112b5c4c6c}{virtual void \hyperlink{a00652_ad67f0661e7639d3540c5fb112b5c4c6c}{mouse\+Release\+Event} (Q\+Graphics\+Scene\+Mouse\+Event $\ast$\+\_\+event)}\label{a00652_ad67f0661e7639d3540c5fb112b5c4c6c}

\begin{DoxyCompactList}\small\item\em handle mouse release events \end{DoxyCompactList}\item 
\hypertarget{a00652_a103432b69e8507d613af66b763b833f5}{virtual void \hyperlink{a00652_a103432b69e8507d613af66b763b833f5}{wheel\+Event} (Q\+Graphics\+Scene\+Wheel\+Event $\ast$\+\_\+event)}\label{a00652_a103432b69e8507d613af66b763b833f5}

\begin{DoxyCompactList}\small\item\em handle mouse wheel events \end{DoxyCompactList}\item 
\hypertarget{a00652_a54fefb36ba9ec5c1440bc0265f269ee1}{virtual void \hyperlink{a00652_a54fefb36ba9ec5c1440bc0265f269ee1}{context\+Menu\+Event} (Q\+Graphics\+Scene\+Context\+Menu\+Event $\ast$\+\_\+e)}\label{a00652_a54fefb36ba9ec5c1440bc0265f269ee1}

\begin{DoxyCompactList}\small\item\em handle mouse press events \end{DoxyCompactList}\item 
\hypertarget{a00652_a003655d5cf214c2c1b25ec23745422d7}{void \hyperlink{a00652_a003655d5cf214c2c1b25ec23745422d7}{view\+Mouse\+Event} (Q\+Mouse\+Event $\ast$\+\_\+event)}\label{a00652_a003655d5cf214c2c1b25ec23745422d7}

\begin{DoxyCompactList}\small\item\em specialized viewer\+: hande mouse events \end{DoxyCompactList}\item 
\hypertarget{a00652_a4763dde17ec77eb451c16353c88e91dc}{void \hyperlink{a00652_a4763dde17ec77eb451c16353c88e91dc}{view\+Wheel\+Event} (Q\+Wheel\+Event $\ast$\+\_\+event)}\label{a00652_a4763dde17ec77eb451c16353c88e91dc}

\begin{DoxyCompactList}\small\item\em specialized viewer\+: handle wheel events \end{DoxyCompactList}\item 
\hypertarget{a00652_aa91f00f196cf31444247a9ae9ef7b99c}{void \hyperlink{a00652_aa91f00f196cf31444247a9ae9ef7b99c}{view\+Key\+Event} (Q\+Key\+Event $\ast$\+\_\+event)}\label{a00652_aa91f00f196cf31444247a9ae9ef7b99c}

\begin{DoxyCompactList}\small\item\em specialized viewer\+: hande key events \end{DoxyCompactList}\item 
\hypertarget{a00652_a49c8ab97dcd94c3d20a411168a2b28a6}{void \hyperlink{a00652_a49c8ab97dcd94c3d20a411168a2b28a6}{update\+Projection\+Matrix} ()}\label{a00652_a49c8ab97dcd94c3d20a411168a2b28a6}

\begin{DoxyCompactList}\small\item\em updates projection matrix \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_a5c3bc8459f255917177f028d5d830513}{bool {\bfseries is\+Rotating\+\_\+}}\label{a00652_a5c3bc8459f255917177f028d5d830513}

\item 
\hypertarget{a00652_a30dec8194d0ce63212b3f7b68de14095}{bool {\bfseries look\+Around\+\_\+}}\label{a00652_a30dec8194d0ce63212b3f7b68de14095}

\end{DoxyCompactItemize}
\subsection*{Private Slots}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_ae7c99f85c612eb1eb62a4bbd8336ce88}{void \hyperlink{a00652_ae7c99f85c612eb1eb62a4bbd8336ce88}{slot\+Click\+Timeout} ()}\label{a00652_ae7c99f85c612eb1eb62a4bbd8336ce88}

\begin{DoxyCompactList}\small\item\em Handle click timeout. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Private Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_a5e0cfdf762eabf4ddf897de5039acaa0}{\hyperlink{a00652_a5e0cfdf762eabf4ddf897de5039acaa0}{gl\+Viewer} (const \hyperlink{a00652}{gl\+Viewer} \&)}\label{a00652_a5e0cfdf762eabf4ddf897de5039acaa0}

\begin{DoxyCompactList}\small\item\em Copy constructor. Never used! \end{DoxyCompactList}\item 
\hypertarget{a00652_a22c16bc98678f02859c25e0c91ef58bf}{\hyperlink{a00652}{gl\+Viewer} \& \hyperlink{a00652_a22c16bc98678f02859c25e0c91ef58bf}{operator=} (const \hyperlink{a00652}{gl\+Viewer} \&)}\label{a00652_a22c16bc98678f02859c25e0c91ef58bf}

\begin{DoxyCompactList}\small\item\em Assignment operator. Never used! \end{DoxyCompactList}\item 
\hypertarget{a00652_a1afab830fbcc8b4451c4b9655f9672d3}{void {\bfseries create\+Widgets} ()}\label{a00652_a1afab830fbcc8b4451c4b9655f9672d3}

\item 
\hypertarget{a00652_a94eff5864439047e50f4b39745da1289}{void {\bfseries draw\+Scene} ()}\label{a00652_a94eff5864439047e50f4b39745da1289}

\item 
\hypertarget{a00652_ac4264b22ac7383a35e0a8b8344de1ed3}{void {\bfseries draw\+Scene\+\_\+mono} ()}\label{a00652_ac4264b22ac7383a35e0a8b8344de1ed3}

\item 
\hypertarget{a00652_a48054e450da340bf6958b6e231ea5433}{void \hyperlink{a00652_a48054e450da340bf6958b6e231ea5433}{set\+Coord\+Sys\+Projection} (\hyperlink{a00652_a410894db0a91cbe0db227fdfd1d7de10}{gl\+Viewer\+::\+Projection\+Mode} \+\_\+mode)}\label{a00652_a48054e450da340bf6958b6e231ea5433}

\begin{DoxyCompactList}\small\item\em helper function for setting the projection mode of the coordinate system node \end{DoxyCompactList}\item 
\hypertarget{a00652_ab45d07c1d3c9ff14f633bbb916acae99}{void \hyperlink{a00652_ab45d07c1d3c9ff14f633bbb916acae99}{draw\+Cursor} ()}\label{a00652_ab45d07c1d3c9ff14f633bbb916acae99}

\begin{DoxyCompactList}\small\item\em draw the cursor \end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf Stereo rendering}\par
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00652_a1485e0d04812f5b57f4dbc77982d878f}{compute\+Proj\+Stereo} (int \+\_\+width, int \+\_\+height, \hyperlink{a01451}{Viewer\+::\+Viewer\+Properties} \&\+\_\+properties, \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{A\+C\+G\+::\+G\+L\+Matrixd} $\ast$\+\_\+out\+Left, \hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{A\+C\+G\+::\+G\+L\+Matrixd} $\ast$\+\_\+out\+Right)
\begin{DoxyCompactList}\small\item\em Compute left and right eye projection matrix for stereo rendering. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_a1739023c9ebb66dda710e0700b8c8319}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} {\bfseries home\+\_\+center\+\_\+}}\label{a00652_a1739023c9ebb66dda710e0700b8c8319}

\item 
\hypertarget{a00652_aaf5300288859a5373f1a2784690fb13d}{double {\bfseries home\+\_\+radius\+\_\+}}\label{a00652_aaf5300288859a5373f1a2784690fb13d}

\item 
\hypertarget{a00652_a4e5b1b5742878566310d3d0dbd9cbebf}{\hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{A\+C\+G\+::\+G\+L\+Matrixd} {\bfseries home\+\_\+modelview\+\_\+}}\label{a00652_a4e5b1b5742878566310d3d0dbd9cbebf}

\item 
\hypertarget{a00652_aaa38d2a9eb8ef89110f1e5c79c3bd189}{\hyperlink{a03336_a574eaee6f4eff166845ff5c654b0b852}{A\+C\+G\+::\+G\+L\+Matrixd} {\bfseries home\+\_\+inverse\+\_\+modelview\+\_\+}}\label{a00652_aaa38d2a9eb8ef89110f1e5c79c3bd189}

\item 
\hypertarget{a00652_ab19a60338e6ba34ab59fe25bd1274248}{double {\bfseries home\+Ortho\+Width\+\_\+}}\label{a00652_ab19a60338e6ba34ab59fe25bd1274248}

\item 
\hypertarget{a00652_aadc25f7abae3617d48f86374d6d410e4}{\hyperlink{a00652_aadec7bceb301564e3ec6dfdba72334fc}{Normals\+Mode} {\bfseries normals\+Mode\+\_\+}}\label{a00652_aadc25f7abae3617d48f86374d6d410e4}

\item 
\hypertarget{a00652_af8568246dd2f9db01e9e03fc6065181e}{\hyperlink{a00652_a410894db0a91cbe0db227fdfd1d7de10}{Projection\+Mode} {\bfseries projection\+Mode\+\_\+}}\label{a00652_af8568246dd2f9db01e9e03fc6065181e}

\item 
\hypertarget{a00652_ae0efbd47b9fda786599f9072d8ac5948}{\hyperlink{a00652_a811de4b9a4151af7255e085014f8bb57}{Navigation\+Mode} {\bfseries navigation\+Mode\+\_\+}}\label{a00652_ae0efbd47b9fda786599f9072d8ac5948}

\item 
\hypertarget{a00652_a08de6f306773b5ad3cc8cb789dcca71d}{bool {\bfseries track\+Mouse\+\_\+}}\label{a00652_a08de6f306773b5ad3cc8cb789dcca71d}

\item 
\hypertarget{a00652_a82b268bb05dc7e02201de139c06d3bca}{bool {\bfseries glarea\+Grabbed\+\_\+}}\label{a00652_a82b268bb05dc7e02201de139c06d3bca}

\item 
\hypertarget{a00652_a21c40c7d69d88cd9c420b9a0e3528c9d}{double {\bfseries frame\+\_\+time\+\_\+}}\label{a00652_a21c40c7d69d88cd9c420b9a0e3528c9d}

\item 
\hypertarget{a00652_aa06dcb6574da54fe191cb17d0f48a850}{\hyperlink{a00327}{A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node} $\ast$ {\bfseries scene\+Graph\+Root\+\_\+}}\label{a00652_aa06dcb6574da54fe191cb17d0f48a850}

\item 
\hypertarget{a00652_a4dbf3a87a38e4e4576fc313d65cb8c9b}{bool {\bfseries projection\+Update\+Locked\+\_\+}}\label{a00652_a4dbf3a87a38e4e4576fc313d65cb8c9b}

\item 
\hypertarget{a00652_ac41899d34c14157e831bf7d947832d76}{Q\+Graphics\+Scene $\ast$ {\bfseries gl\+Scene\+\_\+}}\label{a00652_ac41899d34c14157e831bf7d947832d76}

\item 
\hypertarget{a00652_aa8d9728d2dceb8faec7d195b5415c0c1}{Q\+G\+L\+Widget $\ast$ {\bfseries gl\+Widget\+\_\+}}\label{a00652_aa8d9728d2dceb8faec7d195b5415c0c1}

\item 
\hypertarget{a00652_a8b40e82a551d8ead382769aaef6f16cd}{\hyperlink{a01072}{Qt\+G\+L\+Viewer\+Layout} $\ast$ {\bfseries gl\+Base\+Layout\+\_\+}}\label{a00652_a8b40e82a551d8ead382769aaef6f16cd}

\item 
\hypertarget{a00652_af02f00a06049f1834182d5bfac144b22}{std\+::vector$<$ Q\+Action $\ast$ $>$ {\bfseries draw\+Menu\+Actions\+\_\+}}\label{a00652_af02f00a06049f1834182d5bfac144b22}

\item 
\hypertarget{a00652_ad9541ae0c0d2eb851e0b97256839fe87}{Q\+Time {\bfseries redraw\+Time\+\_\+}}\label{a00652_ad9541ae0c0d2eb851e0b97256839fe87}

\end{DoxyCompactItemize}
\begin{Indent}{\bf Post Processing}\par
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_afd25f9df57af15647f342682921ba825}{\hyperlink{a00997}{Post\+Processing} $\ast$ \hyperlink{a00652_afd25f9df57af15647f342682921ba825}{postproc\+\_\+}}\label{a00652_afd25f9df57af15647f342682921ba825}

\begin{DoxyCompactList}\small\item\em Post-\/\+Processing executor. \end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}
\subsection*{Friends}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_ad9f8454cbfc6c3545a60f8aaad41f34b}{class {\bfseries Qt\+G\+L\+Graphics\+Scene}}\label{a00652_ad9f8454cbfc6c3545a60f8aaad41f34b}

\item 
\hypertarget{a00652_ac423eeff0deccb167e6b7802ca962a37}{class {\bfseries Simple\+G\+L\+Graphics\+Scene}}\label{a00652_ac423eeff0deccb167e6b7802ca962a37}

\item 
\hypertarget{a00652_aa24555e8027e8185a689c90d12788f2d}{class {\bfseries Qt\+G\+L\+Graphics\+View}}\label{a00652_aa24555e8027e8185a689c90d12788f2d}

\end{DoxyCompactItemize}
\subsection*{Wheels}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_a44878f1de9090b69efc048d427e3431b}{\hyperlink{a01085}{A\+C\+G\+::\+Qt\+Widgets\+::\+Qt\+Wheel} $\ast$ {\bfseries wheel\+X\+\_\+}}\label{a00652_a44878f1de9090b69efc048d427e3431b}

\item 
\hypertarget{a00652_aece8b2ddcb87cf2a3bec5ee673623bfc}{\hyperlink{a01085}{A\+C\+G\+::\+Qt\+Widgets\+::\+Qt\+Wheel} $\ast$ {\bfseries wheel\+Y\+\_\+}}\label{a00652_aece8b2ddcb87cf2a3bec5ee673623bfc}

\item 
\hypertarget{a00652_aa8955ed54d3997766c68344c99cbddd4}{\hyperlink{a01085}{A\+C\+G\+::\+Qt\+Widgets\+::\+Qt\+Wheel} $\ast$ {\bfseries wheel\+Z\+\_\+}}\label{a00652_aa8955ed54d3997766c68344c99cbddd4}

\item 
\hypertarget{a00652_aa32b28073960b038612a57d6c8d161d5}{bool {\bfseries wheels\+Visible} ()}\label{a00652_aa32b28073960b038612a57d6c8d161d5}

\item 
\hypertarget{a00652_ac29b3a2b80077c7f212d6f462276965a}{void {\bfseries slot\+Show\+Wheels} ()}\label{a00652_ac29b3a2b80077c7f212d6f462276965a}

\item 
\hypertarget{a00652_aec6b518912ef9aa171458d2c59b928e7}{void {\bfseries slot\+Hide\+Wheels} ()}\label{a00652_aec6b518912ef9aa171458d2c59b928e7}

\end{DoxyCompactItemize}
\subsection*{Key handling}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{a00652_a46b1def1a4c0b415f6590410e9ef553e}{signal\+Key\+Press\+Event} (Q\+Key\+Event $\ast$)
\begin{DoxyCompactList}\small\item\em Key Event received. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00652_ae374e0892f03f013bd61025845f6f17b}{key\+Press\+Event} (Q\+Key\+Event $\ast$\+\_\+event)
\begin{DoxyCompactList}\small\item\em Get key\+Press events from the gl\+Area. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00652_ab9cf2f9b2c44c136f11da2244ba7ac2d}{key\+Release\+Event} (Q\+Key\+Event $\ast$\+\_\+event)
\begin{DoxyCompactList}\small\item\em Get key\+Release events from the gl\+Area. \end{DoxyCompactList}\item 
virtual bool \hyperlink{a00652_aa35d841027bd3ea68363b037b7e1ee09}{view\+Key\+Press\+Event} (Q\+Key\+Event $\ast$)
\begin{DoxyCompactList}\small\item\em Handle key events in view mode. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Drag and Drop}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_acbf88b37ee977196bb465cfea66b690c}{virtual void \hyperlink{a00652_acbf88b37ee977196bb465cfea66b690c}{drag\+Enter\+Event} (Q\+Graphics\+Scene\+Drag\+Drop\+Event $\ast$\+\_\+e)}\label{a00652_acbf88b37ee977196bb465cfea66b690c}

\begin{DoxyCompactList}\small\item\em drag \& drop for modelview copying \end{DoxyCompactList}\item 
\hypertarget{a00652_afe3f0abf667d3dc4bd835ee992c253bd}{virtual void \hyperlink{a00652_afe3f0abf667d3dc4bd835ee992c253bd}{drop\+Event} (Q\+Graphics\+Scene\+Drag\+Drop\+Event $\ast$\+\_\+e)}\label{a00652_afe3f0abf667d3dc4bd835ee992c253bd}

\begin{DoxyCompactList}\small\item\em drag \& drop for modelview copying \end{DoxyCompactList}\item 
void \hyperlink{a00652_a6eb7c7867eea5eea34a424cda5206f2b}{start\+Drag\+Event} (Q\+Mouse\+Event $\ast$\+\_\+event)
\item 
void \hyperlink{a00652_aacc76abe69982fcd9df74fdfb4cc951c}{drag\+Enter\+Event} (Q\+Drag\+Enter\+Event $\ast$\+\_\+event)
\item 
void \hyperlink{a00652_af46ab2ec34f01c28cc3ccc44d76a2ffa}{drop\+Event} (Q\+Drop\+Event $\ast$\+\_\+event)
\end{DoxyCompactItemize}
\subsection*{Picking}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_afa480a03354f946a2c2bb2a86bcc12e5}{typedef Q\+G\+L\+Framebuffer\+Object\+Format \hyperlink{a00652_afa480a03354f946a2c2bb2a86bcc12e5}{Q\+Framebuffer\+Object\+Format}}\label{a00652_afa480a03354f946a2c2bb2a86bcc12e5}

\begin{DoxyCompactList}\small\item\em Framebuffer object that holds the pick cache. \end{DoxyCompactList}\item 
\hypertarget{a00652_af2cce6c335094a151b0a8970c3e2ec50}{typedef Q\+G\+L\+Framebuffer\+Object \hyperlink{a00652_af2cce6c335094a151b0a8970c3e2ec50}{Q\+Framebuffer\+Object}}\label{a00652_af2cce6c335094a151b0a8970c3e2ec50}

\begin{DoxyCompactList}\small\item\em Framebuffer object that holds the pick cache. \end{DoxyCompactList}\item 
\hypertarget{a00652_af6a361f8c880ce3211b17040a731c642}{\hyperlink{a00652_af2cce6c335094a151b0a8970c3e2ec50}{Q\+Framebuffer\+Object} $\ast$ \hyperlink{a00652_af6a361f8c880ce3211b17040a731c642}{pick\+Cache\+\_\+}}\label{a00652_af6a361f8c880ce3211b17040a731c642}

\begin{DoxyCompactList}\small\item\em Framebuffer object that holds the pick cache. \end{DoxyCompactList}\item 
\hypertarget{a00652_af340f26d688fb57942d6558e9958793b}{bool \hyperlink{a00652_af340f26d688fb57942d6558e9958793b}{update\+Pick\+Cache\+\_\+}}\label{a00652_af340f26d688fb57942d6558e9958793b}

\begin{DoxyCompactList}\small\item\em Should the pick cache be updated. \end{DoxyCompactList}\item 
\hypertarget{a00652_a4ef5e756c5a471753a408f5521ed724c}{\hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target} \hyperlink{a00652_a4ef5e756c5a471753a408f5521ed724c}{pick\+Cache\+Target\+\_\+}}\label{a00652_a4ef5e756c5a471753a408f5521ed724c}

\begin{DoxyCompactList}\small\item\em Pick target stored in pick cache. \end{DoxyCompactList}\item 
\hypertarget{a00652_ae24b175c20bb624afd2a48d96d4b22a8}{bool \hyperlink{a00652_ae24b175c20bb624afd2a48d96d4b22a8}{pick\+Cache\+Supported\+\_\+}}\label{a00652_ae24b175c20bb624afd2a48d96d4b22a8}

\begin{DoxyCompactList}\small\item\em Is pick caching supported. \end{DoxyCompactList}\item 
bool \hyperlink{a00652_a1a66a4c613ec1e81697c29029674c121}{pick} (\hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target} \+\_\+pick\+Target, const Q\+Point \&\+\_\+mouse\+Pos, unsigned int \&\+\_\+node\+Idx, unsigned int \&\+\_\+target\+Idx, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} $\ast$\+\_\+hit\+Point\+Ptr=0)
\item 
bool \hyperlink{a00652_acee90de4fb9b41496c7d7c07c966ae47}{pick\+\_\+region} (\hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target} \+\_\+pick\+Target, const Q\+Region \&\+\_\+region, Q\+List$<$ Q\+Pair$<$ unsigned int, unsigned int $>$ $>$ \&\+\_\+list, Q\+Vector$<$ float $>$ $\ast$\+\_\+depths=0, Q\+Vector$<$ \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} $>$ $\ast$\+\_\+points=0)
\begin{DoxyCompactList}\small\item\em Perform picking action n a whole region. \end{DoxyCompactList}\item 
bool \hyperlink{a00652_af062e1ff98e412324d8b473442452ffb}{fast\+\_\+pick} (const Q\+Point \&\+\_\+mouse\+Pos, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+hit\+Point)
\item 
\hypertarget{a00652_a611e2b7ce5efd37950272af322b3761f}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_a611e2b7ce5efd37950272af322b3761f}{unproject} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&pt)}\label{a00652_a611e2b7ce5efd37950272af322b3761f}

\begin{DoxyCompactList}\small\item\em Framebuffer object that holds the pick cache. \end{DoxyCompactList}\item 
\hypertarget{a00652_aed8e3ca6cbc2a9e74da90af750dcb35e}{int \hyperlink{a00652_aed8e3ca6cbc2a9e74da90af750dcb35e}{pick\+Color} (\hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target} \+\_\+pick\+Target, const Q\+Point \&\+\_\+mouse\+Pos, unsigned int \&\+\_\+node\+Idx, unsigned int \&\+\_\+target\+Idx, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} $\ast$\+\_\+hit\+Point\+Ptr=0)}\label{a00652_aed8e3ca6cbc2a9e74da90af750dcb35e}

\begin{DoxyCompactList}\small\item\em pick using colors \end{DoxyCompactList}\item 
\hypertarget{a00652_aa3ff59aad16c22e990ffa319228f1583}{int \hyperlink{a00652_aa3ff59aad16c22e990ffa319228f1583}{pick\+From\+Cache} (\hyperlink{a03343_af5fad41dadeca314c2077f897377dbd0}{A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target} \+\_\+pick\+Target, const Q\+Point \&\+\_\+mouse\+Pos, unsigned int \&\+\_\+node\+Idx, unsigned int \&\+\_\+target\+Idx, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} $\ast$\+\_\+hit\+Point\+Ptr=0)}\label{a00652_aa3ff59aad16c22e990ffa319228f1583}

\begin{DoxyCompactList}\small\item\em pick from cache \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Merge from examiner}
\begin{DoxyCompactItemize}
\item 
Q\+Point \hyperlink{a00652_a00446950f8b6d47d8acd31636e43f51b}{last\+Point2\+D\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
float \hyperlink{a00652_ad6f6b273c6c9e91da8c46c91bba17b02}{start\+Depth\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction depth \end{DoxyCompactList}\item 
\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_aa2b83d75bf45d04b422df9ed9b66b039}{last\+Point3\+D\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
bool \hyperlink{a00652_a9db33b61abd6b84c46ede4fa75a1a246}{last\+Point\+\_\+hit\+Sphere\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
bool \hyperlink{a00652_a22941ad7c7da19057c029940dd4e763b}{allow\+Rotation\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_a5a4e5688ae7163cd2b8e8496b4ad67ee}{last\+Rotation\+Axis\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_a0c793a7c60bb05c66aa423844f123956}{constrained\+Rotation\+Axis\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
double \hyperlink{a00652_a19ac1c6a32492ab833ad7ede3f5e8e89}{last\+Rotation\+Angle\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
Q\+Time \hyperlink{a00652_aa2ee419cea934d78372d486a2ae084cf}{last\+Move\+Time\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
Q\+Timer $\ast$ \hyperlink{a00652_a2e95cbe21947cfdf06f1f46178c740e2}{timer\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
double \hyperlink{a00652_ab4feb33df3206ae3ed25ad60330eb80b}{fovy\+Modifier\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
Q\+Timer \hyperlink{a00652_a25d4c5b2ba5791e06855126379aa6d16}{click\+Timer\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
Q\+Time \hyperlink{a00652_a1f4b8802288ea73628a4c2de5693998f}{click\+Time\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
Q\+Mouse\+Event \hyperlink{a00652_a1d781d27d4d2db8b690eaac3c810021f}{click\+Event\+\_\+}
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
\hypertarget{a00652_a3d054f546c2fa9b94f00634edeffcb63}{void \hyperlink{a00652_a3d054f546c2fa9b94f00634edeffcb63}{allow\+Rotation} (bool \+\_\+mode)}\label{a00652_a3d054f546c2fa9b94f00634edeffcb63}

\begin{DoxyCompactList}\small\item\em Lock scene rotation. \end{DoxyCompactList}\item 
bool \hyperlink{a00652_a9afb9f2d575ca39dfb581034b9d9f769}{allow\+Rotation} ()
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
void \hyperlink{a00652_a0df4cfddb5f1c59e0cee0b0e699612ad}{allow\+Constrained\+Rotation} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&axis)
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
bool \hyperlink{a00652_a342871e9b5f7af53f4a8338c53442cdb}{allow\+Constrained\+Rotation} ()
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \& \hyperlink{a00652_a5b91c7d6b19081fc697cc2d41e64bd69}{get\+Constrained\+Rotation\+Axis} ()
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
void \hyperlink{a00652_add4daaa5c8c93278f552890187fe95e8}{disallow\+Constrained\+Rotation} ()
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
void \hyperlink{a00652_ad78a4a09c6c91b91d38a799dd60eeff9}{invalidate\+Pick\+Cache} ()
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
void \hyperlink{a00652_a581ff3dcb5ff643572f1bd740ea91c9d}{slot\+Animation} ()
\begin{DoxyCompactList}\small\item\em mouse interaction position \end{DoxyCompactList}\item 
\hypertarget{a00652_acb6a95462f8576f4741b2647a13bded1}{bool \hyperlink{a00652_acb6a95462f8576f4741b2647a13bded1}{map\+To\+Sphere} (const Q\+Point \&\+\_\+p, \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+result) const }\label{a00652_acb6a95462f8576f4741b2647a13bded1}

\begin{DoxyCompactList}\small\item\em virtual trackball\+: map 2\+D screen point to unit sphere \end{DoxyCompactList}\item 
\hypertarget{a00652_a770d0fc610cbc08c0497b4c30ba11b40}{void \hyperlink{a00652_a770d0fc610cbc08c0497b4c30ba11b40}{handle\+First\+Person\+Navigation} (Q\+Mouse\+Event $\ast$\+\_\+event)}\label{a00652_a770d0fc610cbc08c0497b4c30ba11b40}

\begin{DoxyCompactList}\small\item\em Navigate through scene if first person mode has been selected. \end{DoxyCompactList}\item 
\hypertarget{a00652_a539aefc393eab6761775ba725f34fa7e}{void \hyperlink{a00652_a539aefc393eab6761775ba725f34fa7e}{handle\+Normal\+Navigation} (Q\+Mouse\+Event $\ast$\+\_\+event)}\label{a00652_a539aefc393eab6761775ba725f34fa7e}

\begin{DoxyCompactList}\small\item\em Navigate through scene if normal mode has been selected. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Viewer State}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_aa9ce09d920545983b8fe8f439f866ce9}{\hyperlink{a01451}{Viewer\+::\+Viewer\+Properties} \& \hyperlink{a00652_aa9ce09d920545983b8fe8f439f866ce9}{properties\+\_\+}}\label{a00652_aa9ce09d920545983b8fe8f439f866ce9}

\begin{DoxyCompactList}\small\item\em All properties for this viewer. \end{DoxyCompactList}\item 
\hypertarget{a00652_a973f1239106e8ab29f3d6f17cd29e23a}{\hyperlink{a00643}{A\+C\+G\+::\+G\+L\+State} $\ast$ \hyperlink{a00652_a973f1239106e8ab29f3d6f17cd29e23a}{glstate\+\_\+}}\label{a00652_a973f1239106e8ab29f3d6f17cd29e23a}

\begin{DoxyCompactList}\small\item\em Gl State. \end{DoxyCompactList}\item 
\hypertarget{a00652_a1e5722c4f532b90ea0e4ec8ab8e2ce72}{bool \hyperlink{a00652_a1e5722c4f532b90ea0e4ec8ab8e2ce72}{initialized\+\_\+}}\label{a00652_a1e5722c4f532b90ea0e4ec8ab8e2ce72}

\begin{DoxyCompactList}\small\item\em Have the viewer gl properties been initalized. \end{DoxyCompactList}\item 
\hypertarget{a00652_a196247d4b997aeafdd42dfecc0bea987}{\hyperlink{a01451}{Viewer\+::\+Viewer\+Properties} $\ast$ \hyperlink{a00652_a196247d4b997aeafdd42dfecc0bea987}{properties} ()}\label{a00652_a196247d4b997aeafdd42dfecc0bea987}

\begin{DoxyCompactList}\small\item\em Returns a pointer to the Viewer Status. \end{DoxyCompactList}\item 
\hypertarget{a00652_a245225c13929feaf60ebd90f3a851825}{const \hyperlink{a01451}{Viewer\+::\+Viewer\+Properties} $\ast$ \hyperlink{a00652_a245225c13929feaf60ebd90f3a851825}{properties} () const }\label{a00652_a245225c13929feaf60ebd90f3a851825}

\begin{DoxyCompactList}\small\item\em All properties for this viewer. \end{DoxyCompactList}\item 
void \hyperlink{a00652_a447cb4cd04c778ae72dacd1e165f06f8}{slot\+Properties\+Updated} ()
\item 
void \hyperlink{a00652_ab625defb1e20d9a9c00e48c252a32943}{apply\+Properties} ()
\end{DoxyCompactItemize}
\subsection*{Flying animation properties}
\begin{DoxyCompactItemize}
\item 
\hypertarget{a00652_a6245504c91f518d005b210f58a2b4f35}{Q\+Property\+Animation $\ast$ \hyperlink{a00652_a6245504c91f518d005b210f58a2b4f35}{fly\+Animation\+Perspective\+\_\+}}\label{a00652_a6245504c91f518d005b210f58a2b4f35}

\begin{DoxyCompactList}\small\item\em The animation object for fly\+To. \end{DoxyCompactList}\item 
\hypertarget{a00652_a7b9a9d98fdf850df160c7f5bbc268f78}{Q\+Property\+Animation $\ast$ \hyperlink{a00652_a7b9a9d98fdf850df160c7f5bbc268f78}{fly\+Animation\+Orthogonal\+\_\+}}\label{a00652_a7b9a9d98fdf850df160c7f5bbc268f78}

\begin{DoxyCompactList}\small\item\em The animation object for fly\+To. \end{DoxyCompactList}\item 
\hypertarget{a00652_affe925649029e02a69efbf83781cd67a}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_affe925649029e02a69efbf83781cd67a}{fly\+Translation\+\_\+}}\label{a00652_affe925649029e02a69efbf83781cd67a}

\begin{DoxyCompactList}\small\item\em Full translation between start and ed of animation. \end{DoxyCompactList}\item 
\hypertarget{a00652_ab0c759ea5cef46826f0e30c084bedd2f}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_ab0c759ea5cef46826f0e30c084bedd2f}{fly\+Axis\+\_\+}}\label{a00652_ab0c759ea5cef46826f0e30c084bedd2f}

\begin{DoxyCompactList}\small\item\em The rotation axis for fly to animation. \end{DoxyCompactList}\item 
\hypertarget{a00652_aa6d9339d5d838ee09eecc56d790c4671}{double \hyperlink{a00652_aa6d9339d5d838ee09eecc56d790c4671}{fly\+Angle\+\_\+}}\label{a00652_aa6d9339d5d838ee09eecc56d790c4671}

\begin{DoxyCompactList}\small\item\em The rotation angle (full angle) for fly to animation. \end{DoxyCompactList}\item 
\hypertarget{a00652_a2a9fd4683176f174aa04c5696b23e47d}{double \hyperlink{a00652_a2a9fd4683176f174aa04c5696b23e47d}{last\+Animation\+Pos\+\_\+}}\label{a00652_a2a9fd4683176f174aa04c5696b23e47d}

\begin{DoxyCompactList}\small\item\em The last position of the animation to compute the difference vector. \end{DoxyCompactList}\item 
\hypertarget{a00652_acd52c1ba4244985f46333717a6bc3a74}{double \hyperlink{a00652_acd52c1ba4244985f46333717a6bc3a74}{current\+Animation\+Pos\+\_\+}}\label{a00652_acd52c1ba4244985f46333717a6bc3a74}

\begin{DoxyCompactList}\small\item\em The property that is animated by fly\+To. \end{DoxyCompactList}\item 
\hypertarget{a00652_a679f07803530ba229b02f036f32a50cd}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_a679f07803530ba229b02f036f32a50cd}{fly\+Center\+\_\+}}\label{a00652_a679f07803530ba229b02f036f32a50cd}

\begin{DoxyCompactList}\small\item\em The new center after the fly\+To animation. \end{DoxyCompactList}\item 
\hypertarget{a00652_a548b82fa57e9cc07dffda3932eb3f78f}{\hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \hyperlink{a00652_a548b82fa57e9cc07dffda3932eb3f78f}{fly\+Position\+\_\+}}\label{a00652_a548b82fa57e9cc07dffda3932eb3f78f}

\begin{DoxyCompactList}\small\item\em The new position after the fly\+To animation. \end{DoxyCompactList}\item 
\hypertarget{a00652_a58cd844c22b5735d0b34380faea69b64}{double \hyperlink{a00652_a58cd844c22b5735d0b34380faea69b64}{fly\+Ortho\+Width\+Original\+\_\+}}\label{a00652_a58cd844c22b5735d0b34380faea69b64}

\begin{DoxyCompactList}\small\item\em Original orthogonal width during fly\+To in orthogonal mode. \end{DoxyCompactList}\item 
\hypertarget{a00652_abf51c9169d5d30a68fe94be09c73f6c3}{bool \hyperlink{a00652_abf51c9169d5d30a68fe94be09c73f6c3}{fly\+Move\+Back\+\_\+}}\label{a00652_abf51c9169d5d30a68fe94be09c73f6c3}

\begin{DoxyCompactList}\small\item\em Flag for fly in orthogonal mode if we move back or forward. \end{DoxyCompactList}\item 
\hypertarget{a00652_af80a58727bbbaac582f17c1b2ffb998d}{double \hyperlink{a00652_af80a58727bbbaac582f17c1b2ffb998d}{current\+Animation\+Position}}\label{a00652_af80a58727bbbaac582f17c1b2ffb998d}

\begin{DoxyCompactList}\small\item\em The animation object for fly\+To. \end{DoxyCompactList}\item 
\hypertarget{a00652_aa5343e61522e7b71c99b6ab74454f432}{void \hyperlink{a00652_aa5343e61522e7b71c99b6ab74454f432}{current\+Animation\+Pos\+Changed} (double \+\_\+current\+Animation\+Pos)}\label{a00652_aa5343e61522e7b71c99b6ab74454f432}

\begin{DoxyCompactList}\small\item\em Emitted when the current\+Animation\+Position changed. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00652_ae420bd6e3f132f6de27faa93d5df1f55}{fly\+To} (const Q\+Point \&\+\_\+pos, bool \+\_\+move\+Back)
\begin{DoxyCompactList}\small\item\em Animated flight to or away from a given point. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00652_ac13823fc6d7c827633a5ad434892ad00}{fly\+To} (const Q\+Point \&\+\_\+pos)
\begin{DoxyCompactList}\small\item\em Animated flight. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00652_afa7e2db85d8d707e4c4909ebfafdd562}{fly\+From} (const Q\+Point \&\+\_\+pos)
\begin{DoxyCompactList}\small\item\em Animated flight. \end{DoxyCompactList}\item 
virtual void \hyperlink{a00652_a55792e262df903fbadced74b83084237}{fly\+To} (const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+position, const \hyperlink{a03336_ae4a56bb6b65d7f966934982a1e370213}{A\+C\+G\+::\+Vec3d} \&\+\_\+center, int \+\_\+time=1000)
\item 
\hypertarget{a00652_a5e1a8b88530f04b95078acadc18878d7}{void \hyperlink{a00652_a5e1a8b88530f04b95078acadc18878d7}{fly\+Animation\+Perspective} (Q\+Variant \+\_\+pos)}\label{a00652_a5e1a8b88530f04b95078acadc18878d7}

\begin{DoxyCompactList}\small\item\em Slot called during fly\+To Animation in perspective mode. \end{DoxyCompactList}\item 
\hypertarget{a00652_af4dadc5636c85ee5181b6095eedc21f6}{void \hyperlink{a00652_af4dadc5636c85ee5181b6095eedc21f6}{fly\+Animation\+Orthogonal} (Q\+Variant \+\_\+pos)}\label{a00652_af4dadc5636c85ee5181b6095eedc21f6}

\begin{DoxyCompactList}\small\item\em Slot called during fly\+To Animation in orthogonal mode. \end{DoxyCompactList}\item 
\hypertarget{a00652_af4229bbfb972f149519bf807f4c51a2c}{void \hyperlink{a00652_af4229bbfb972f149519bf807f4c51a2c}{fly\+Animation\+Perspective\+Finished} ()}\label{a00652_af4229bbfb972f149519bf807f4c51a2c}

\begin{DoxyCompactList}\small\item\em Slot called when fly\+To perspective Animation finished. \end{DoxyCompactList}\item 
\hypertarget{a00652_ab62fa6cbba469c4e1336b153b4b0ad52}{void \hyperlink{a00652_ab62fa6cbba469c4e1336b153b4b0ad52}{fly\+Animation\+Orthogonal\+Finished} ()}\label{a00652_ab62fa6cbba469c4e1336b153b4b0ad52}

\begin{DoxyCompactList}\small\item\em Slot called when fly\+To orthogonal Animation finished. \end{DoxyCompactList}\item 
\hypertarget{a00652_a04490397da74a0ab848a57b7667b5c56}{double \hyperlink{a00652_a04490397da74a0ab848a57b7667b5c56}{current\+Animation\+Pos} ()}\label{a00652_a04490397da74a0ab848a57b7667b5c56}

\begin{DoxyCompactList}\small\item\em Getter for afly\+To\+Animation\+Position. \end{DoxyCompactList}\item 
\hypertarget{a00652_acc59ea60d7360831dbea2fda25701602}{void \hyperlink{a00652_acc59ea60d7360831dbea2fda25701602}{current\+Animation\+Pos} (double \+\_\+current\+Animation\+Pos)}\label{a00652_acc59ea60d7360831dbea2fda25701602}

\begin{DoxyCompactList}\small\item\em Setter for afly\+To\+Animation\+Position. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Base Viewer Widget\+: All viewers are derived from this one. Implements Mouse \& Keyboard Events. 

Definition at line 130 of file Qt\+Base\+Viewer.\+hh.



\subsection{Member Enumeration Documentation}
\hypertarget{a00652_a811de4b9a4151af7255e085014f8bb57}{\index{gl\+Viewer@{gl\+Viewer}!Navigation\+Mode@{Navigation\+Mode}}
\index{Navigation\+Mode@{Navigation\+Mode}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{Navigation\+Mode}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf gl\+Viewer\+::\+Navigation\+Mode}}}\label{a00652_a811de4b9a4151af7255e085014f8bb57}


Navigation mode. 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{N\+O\+R\+M\+A\+L\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N@{N\+O\+R\+M\+A\+L\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N}!gl\+Viewer@{gl\+Viewer}}\index{gl\+Viewer@{gl\+Viewer}!N\+O\+R\+M\+A\+L\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N@{N\+O\+R\+M\+A\+L\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N}}\item[{\em 
\hypertarget{a00652_a811de4b9a4151af7255e085014f8bb57aa786e9574eb166f22a2162dda3336625}{N\+O\+R\+M\+A\+L\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N}\label{a00652_a811de4b9a4151af7255e085014f8bb57aa786e9574eb166f22a2162dda3336625}
}]Normal mode. \index{F\+I\+R\+S\+T\+P\+E\+R\+S\+O\+N\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N@{F\+I\+R\+S\+T\+P\+E\+R\+S\+O\+N\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N}!gl\+Viewer@{gl\+Viewer}}\index{gl\+Viewer@{gl\+Viewer}!F\+I\+R\+S\+T\+P\+E\+R\+S\+O\+N\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N@{F\+I\+R\+S\+T\+P\+E\+R\+S\+O\+N\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N}}\item[{\em 
\hypertarget{a00652_a811de4b9a4151af7255e085014f8bb57ac3f29e29b2a593884be18ebcee385aeb}{F\+I\+R\+S\+T\+P\+E\+R\+S\+O\+N\+\_\+\+N\+A\+V\+I\+G\+A\+T\+I\+O\+N}\label{a00652_a811de4b9a4151af7255e085014f8bb57ac3f29e29b2a593884be18ebcee385aeb}
}]First person mode. \end{description}
\end{Desc}


Definition at line 206 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_aadec7bceb301564e3ec6dfdba72334fc}{\index{gl\+Viewer@{gl\+Viewer}!Normals\+Mode@{Normals\+Mode}}
\index{Normals\+Mode@{Normals\+Mode}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{Normals\+Mode}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf gl\+Viewer\+::\+Normals\+Mode}}}\label{a00652_aadec7bceb301564e3ec6dfdba72334fc}


Automatically normalize normals? 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{D\+O\+N\+T\+\_\+\+T\+O\+U\+C\+H\+\_\+\+N\+O\+R\+M\+A\+L\+S@{D\+O\+N\+T\+\_\+\+T\+O\+U\+C\+H\+\_\+\+N\+O\+R\+M\+A\+L\+S}!gl\+Viewer@{gl\+Viewer}}\index{gl\+Viewer@{gl\+Viewer}!D\+O\+N\+T\+\_\+\+T\+O\+U\+C\+H\+\_\+\+N\+O\+R\+M\+A\+L\+S@{D\+O\+N\+T\+\_\+\+T\+O\+U\+C\+H\+\_\+\+N\+O\+R\+M\+A\+L\+S}}\item[{\em 
\hypertarget{a00652_aadec7bceb301564e3ec6dfdba72334fca1be493a002b76cae55a430acb6ad46dc}{D\+O\+N\+T\+\_\+\+T\+O\+U\+C\+H\+\_\+\+N\+O\+R\+M\+A\+L\+S}\label{a00652_aadec7bceb301564e3ec6dfdba72334fca1be493a002b76cae55a430acb6ad46dc}
}]use provided normals as is \index{N\+O\+R\+M\+A\+L\+I\+Z\+E\+\_\+\+N\+O\+R\+M\+A\+L\+S@{N\+O\+R\+M\+A\+L\+I\+Z\+E\+\_\+\+N\+O\+R\+M\+A\+L\+S}!gl\+Viewer@{gl\+Viewer}}\index{gl\+Viewer@{gl\+Viewer}!N\+O\+R\+M\+A\+L\+I\+Z\+E\+\_\+\+N\+O\+R\+M\+A\+L\+S@{N\+O\+R\+M\+A\+L\+I\+Z\+E\+\_\+\+N\+O\+R\+M\+A\+L\+S}}\item[{\em 
\hypertarget{a00652_aadec7bceb301564e3ec6dfdba72334fca55f7de2ad77cd04402094e5f6b62d771}{N\+O\+R\+M\+A\+L\+I\+Z\+E\+\_\+\+N\+O\+R\+M\+A\+L\+S}\label{a00652_aadec7bceb301564e3ec6dfdba72334fca55f7de2ad77cd04402094e5f6b62d771}
}]Automatically normalize normals. Input normals are not normalized {\itshape or} the transformation matrix does scaling or shearing. \end{description}
\end{Desc}


Definition at line 234 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a410894db0a91cbe0db227fdfd1d7de10}{\index{gl\+Viewer@{gl\+Viewer}!Projection\+Mode@{Projection\+Mode}}
\index{Projection\+Mode@{Projection\+Mode}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{Projection\+Mode}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf gl\+Viewer\+::\+Projection\+Mode}}}\label{a00652_a410894db0a91cbe0db227fdfd1d7de10}


projection mode 

\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{O\+R\+T\+H\+O\+G\+R\+A\+P\+H\+I\+C\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N@{O\+R\+T\+H\+O\+G\+R\+A\+P\+H\+I\+C\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N}!gl\+Viewer@{gl\+Viewer}}\index{gl\+Viewer@{gl\+Viewer}!O\+R\+T\+H\+O\+G\+R\+A\+P\+H\+I\+C\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N@{O\+R\+T\+H\+O\+G\+R\+A\+P\+H\+I\+C\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N}}\item[{\em 
\hypertarget{a00652_a410894db0a91cbe0db227fdfd1d7de10ade297f12b9ffb4273aafdc6c817bc347}{O\+R\+T\+H\+O\+G\+R\+A\+P\+H\+I\+C\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N}\label{a00652_a410894db0a91cbe0db227fdfd1d7de10ade297f12b9ffb4273aafdc6c817bc347}
}]orthographic \index{P\+E\+R\+S\+P\+E\+C\+T\+I\+V\+E\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N@{P\+E\+R\+S\+P\+E\+C\+T\+I\+V\+E\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N}!gl\+Viewer@{gl\+Viewer}}\index{gl\+Viewer@{gl\+Viewer}!P\+E\+R\+S\+P\+E\+C\+T\+I\+V\+E\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N@{P\+E\+R\+S\+P\+E\+C\+T\+I\+V\+E\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N}}\item[{\em 
\hypertarget{a00652_a410894db0a91cbe0db227fdfd1d7de10a79422bc64c445223b76b06ab4d729914}{P\+E\+R\+S\+P\+E\+C\+T\+I\+V\+E\+\_\+\+P\+R\+O\+J\+E\+C\+T\+I\+O\+N}\label{a00652_a410894db0a91cbe0db227fdfd1d7de10a79422bc64c445223b76b06ab4d729914}
}]perspective \end{description}
\end{Desc}


Definition at line 200 of file Qt\+Base\+Viewer.\+hh.



\subsection{Constructor \& Destructor Documentation}
\hypertarget{a00652_a9748beac7ab12ae369dc2f64c73da7eb}{\index{gl\+Viewer@{gl\+Viewer}!gl\+Viewer@{gl\+Viewer}}
\index{gl\+Viewer@{gl\+Viewer}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{gl\+Viewer}]{\setlength{\rightskip}{0pt plus 5cm}gl\+Viewer\+::gl\+Viewer (
\begin{DoxyParamCaption}
\item[{Q\+Graphics\+Scene $\ast$}]{\+\_\+scene, }
\item[{Q\+G\+L\+Widget $\ast$}]{\+\_\+gl\+Widget, }
\item[{{\bf Viewer\+::\+Viewer\+Properties} \&}]{\+\_\+properties, }
\item[{Q\+Graphics\+Widget $\ast$}]{\+\_\+parent = {\ttfamily 0}}
\end{DoxyParamCaption}
)}}\label{a00652_a9748beac7ab12ae369dc2f64c73da7eb}
Create a \hyperlink{a00652}{gl\+Viewer}.


\begin{DoxyParams}{Parameters}
{\em \+\_\+scene} & The graphics scene that will be the parent of this widget \\
\hline
{\em \+\_\+gl\+Widget} & A pointer to the underlying gl widget \\
\hline
{\em \+\_\+properties} & viewer\+Options controlled by \hyperlink{a03393}{Plugin\+Functions} \\
\hline
{\em \+\_\+parent} & The parent graphicswidget \\
\hline
\end{DoxyParams}


Definition at line 128 of file Qt\+Base\+Viewer.\+cc.



\subsection{Member Function Documentation}
\hypertarget{a00652_a0312c68e5d7a4d3a908c38fe33c498c2}{\index{gl\+Viewer@{gl\+Viewer}!action\+Copy\+View@{action\+Copy\+View}}
\index{action\+Copy\+View@{action\+Copy\+View}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{action\+Copy\+View}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::action\+Copy\+View (
\begin{DoxyParamCaption}
\item[{const Q\+Size \&}]{\+\_\+window\+Size = {\ttfamily QSize(-\/1,-\/1)}, }
\item[{const int}]{\+\_\+splitter\+Width = {\ttfamily -\/1}, }
\item[{const bool}]{\+\_\+make\+\_\+c\+\_\+string = {\ttfamily false}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00652_a0312c68e5d7a4d3a908c38fe33c498c2}
if you want to save the window\+Size, use the parameter \begin{DoxyNote}{Note}
Q\+Size(0,0) indicates that the window is maximized 
\end{DoxyNote}


Definition at line 1293 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_a4080043b98badf413670bc0b445c27c7}{\index{gl\+Viewer@{gl\+Viewer}!action\+Paste\+View@{action\+Paste\+View}}
\index{action\+Paste\+View@{action\+Paste\+View}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{action\+Paste\+View}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::action\+Paste\+View (
\begin{DoxyParamCaption}
\item[{Q\+Size $\ast$}]{\+\_\+window\+Size = {\ttfamily NULL}, }
\item[{int $\ast$}]{\+\_\+splitter\+Width = {\ttfamily NULL}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [slot]}}}\label{a00652_a4080043b98badf413670bc0b445c27c7}
you get the older window size (if saved) back \begin{DoxyNote}{Note}
Q\+Size(0,0) indicates that the window is maximized. 

\+\_\+splitter\+Width is -\/1 if no splitter\+Width was saved 
\end{DoxyNote}


Definition at line 1305 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_a0df4cfddb5f1c59e0cee0b0e699612ad}{\index{gl\+Viewer@{gl\+Viewer}!allow\+Constrained\+Rotation@{allow\+Constrained\+Rotation}}
\index{allow\+Constrained\+Rotation@{allow\+Constrained\+Rotation}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{allow\+Constrained\+Rotation}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::allow\+Constrained\+Rotation (
\begin{DoxyParamCaption}
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{axis}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_a0df4cfddb5f1c59e0cee0b0e699612ad}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 885 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a342871e9b5f7af53f4a8338c53442cdb}{\index{gl\+Viewer@{gl\+Viewer}!allow\+Constrained\+Rotation@{allow\+Constrained\+Rotation}}
\index{allow\+Constrained\+Rotation@{allow\+Constrained\+Rotation}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{allow\+Constrained\+Rotation}]{\setlength{\rightskip}{0pt plus 5cm}bool gl\+Viewer\+::allow\+Constrained\+Rotation (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_a342871e9b5f7af53f4a8338c53442cdb}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 888 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a9afb9f2d575ca39dfb581034b9d9f769}{\index{gl\+Viewer@{gl\+Viewer}!allow\+Rotation@{allow\+Rotation}}
\index{allow\+Rotation@{allow\+Rotation}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{allow\+Rotation}]{\setlength{\rightskip}{0pt plus 5cm}bool gl\+Viewer\+::allow\+Rotation (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_a9afb9f2d575ca39dfb581034b9d9f769}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 883 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_ab625defb1e20d9a9c00e48c252a32943}{\index{gl\+Viewer@{gl\+Viewer}!apply\+Properties@{apply\+Properties}}
\index{apply\+Properties@{apply\+Properties}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{apply\+Properties}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::apply\+Properties (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_ab625defb1e20d9a9c00e48c252a32943}
This will apply all properties without redrawing You have to set the context yourself! 

Definition at line 2167 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_a1485e0d04812f5b57f4dbc77982d878f}{\index{gl\+Viewer@{gl\+Viewer}!compute\+Proj\+Stereo@{compute\+Proj\+Stereo}}
\index{compute\+Proj\+Stereo@{compute\+Proj\+Stereo}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{compute\+Proj\+Stereo}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::compute\+Proj\+Stereo (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+width, }
\item[{int}]{\+\_\+height, }
\item[{{\bf Viewer\+::\+Viewer\+Properties} \&}]{\+\_\+properties, }
\item[{{\bf A\+C\+G\+::\+G\+L\+Matrixd} $\ast$}]{\+\_\+out\+Left, }
\item[{{\bf A\+C\+G\+::\+G\+L\+Matrixd} $\ast$}]{\+\_\+out\+Right}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a1485e0d04812f5b57f4dbc77982d878f}


Compute left and right eye projection matrix for stereo rendering. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+width} & viewport width \\
\hline
{\em \+\_\+height} & viewport height \\
\hline
{\em \+\_\+properties} & viewer props \\
\hline
{\em \+\_\+out\+Left} & \mbox{[}out\mbox{]} projection matrix for left eye \\
\hline
{\em \+\_\+out\+Right} & \mbox{[}out\mbox{]} projection matrix for right eye \\
\hline
\end{DoxyParams}


Definition at line 2539 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_a063fef342a369b30a750cb2ec3b6dd26}{\index{gl\+Viewer@{gl\+Viewer}!decode\+View@{decode\+View}}
\index{decode\+View@{decode\+View}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{decode\+View}]{\setlength{\rightskip}{0pt plus 5cm}bool gl\+Viewer\+::decode\+View (
\begin{DoxyParamCaption}
\item[{const Q\+String \&}]{\+\_\+view, }
\item[{{\bf A\+C\+G\+::\+G\+L\+Matrixd} \&}]{m, }
\item[{{\bf A\+C\+G\+::\+G\+L\+Matrixd} \&}]{p, }
\item[{int \&}]{p\+Mode, }
\item[{double \&}]{ortho\+\_\+width, }
\item[{Q\+Size $\ast$}]{\+\_\+window\+Size = {\ttfamily NULL}, }
\item[{int $\ast$}]{\+\_\+splitter\+Width = {\ttfamily NULL}, }
\item[{Q\+Size $\ast$}]{\+\_\+viewport\+Size = {\ttfamily NULL}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [static]}}}\label{a00652_a063fef342a369b30a750cb2ec3b6dd26}
Decode text representation of view encoded by \hyperlink{a00652_a0340f00ac2eefca03531481d663180fd}{encode\+View()} into the supplied output parameters.

If {\ttfamily \+\_\+view} was successfully decoded {\ttfamily true} is returned, {\ttfamily false} is returned otherwise.

You can save the current Window size via parameter \+\_\+window\+Size and one splitter size via \+\_\+splitterwidth

\begin{DoxyNote}{Note}
Q\+Size(0,0) indicates that the window was maximized. 

\+\_\+splitter\+Width is -\/1 if no splitter\+Width was saved 
\end{DoxyNote}


Definition at line 1152 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_a502b4799e7509dfdd6760e91d51e7b36}{\index{gl\+Viewer@{gl\+Viewer}!decode\+View@{decode\+View}}
\index{decode\+View@{decode\+View}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{decode\+View}]{\setlength{\rightskip}{0pt plus 5cm}bool gl\+Viewer\+::decode\+View (
\begin{DoxyParamCaption}
\item[{const Q\+String \&}]{\+\_\+view, }
\item[{Q\+Size $\ast$}]{\+\_\+window\+Size = {\ttfamily NULL}, }
\item[{int $\ast$}]{\+\_\+tool\+Bar\+Width = {\ttfamily NULL}, }
\item[{Q\+Size $\ast$}]{\+\_\+viewport\+Size = {\ttfamily NULL}}
\end{DoxyParamCaption}
)}}\label{a00652_a502b4799e7509dfdd6760e91d51e7b36}
Decode and apply text representation of view encoded by \hyperlink{a00652_a0340f00ac2eefca03531481d663180fd}{encode\+View()}. If {\ttfamily \+\_\+view} was successfully decoded it will immediately be applied and {\ttfamily true} is returned, {\ttfamily false} is returned else.

You can save the current Window size via parameter \+\_\+window\+Size and one splitter size via \+\_\+splitterwidth These values will not be applied immediately. \begin{DoxyNote}{Note}
Q\+Size(0,0) indicates that the window was maximized. 

\+\_\+splitter\+Width is -\/1 if no splitter\+Width was saved 
\end{DoxyNote}


Definition at line 1256 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_add4daaa5c8c93278f552890187fe95e8}{\index{gl\+Viewer@{gl\+Viewer}!disallow\+Constrained\+Rotation@{disallow\+Constrained\+Rotation}}
\index{disallow\+Constrained\+Rotation@{disallow\+Constrained\+Rotation}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{disallow\+Constrained\+Rotation}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::disallow\+Constrained\+Rotation (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_add4daaa5c8c93278f552890187fe95e8}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 894 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_aacc76abe69982fcd9df74fdfb4cc951c}{\index{gl\+Viewer@{gl\+Viewer}!drag\+Enter\+Event@{drag\+Enter\+Event}}
\index{drag\+Enter\+Event@{drag\+Enter\+Event}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{drag\+Enter\+Event}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::drag\+Enter\+Event (
\begin{DoxyParamCaption}
\item[{Q\+Drag\+Enter\+Event $\ast$}]{\+\_\+event}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [signal]}}}\label{a00652_aacc76abe69982fcd9df74fdfb4cc951c}
Signal is emitted only if in external\+Drag\+Mode ( see set\+External\+Drag ) It will be send if a drag enters the gl widget. \hypertarget{a00652_af46ab2ec34f01c28cc3ccc44d76a2ffa}{\index{gl\+Viewer@{gl\+Viewer}!drop\+Event@{drop\+Event}}
\index{drop\+Event@{drop\+Event}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{drop\+Event}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::drop\+Event (
\begin{DoxyParamCaption}
\item[{Q\+Drop\+Event $\ast$}]{\+\_\+event}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [signal]}}}\label{a00652_af46ab2ec34f01c28cc3ccc44d76a2ffa}
Signal is emitted only if in external\+Drag\+Mode ( see set\+External\+Drag ) It will be send if a drop occurs in the gl widget. \hypertarget{a00652_a0340f00ac2eefca03531481d663180fd}{\index{gl\+Viewer@{gl\+Viewer}!encode\+View@{encode\+View}}
\index{encode\+View@{encode\+View}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{encode\+View}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::encode\+View (
\begin{DoxyParamCaption}
\item[{Q\+String \&}]{\+\_\+view, }
\item[{const Q\+Size \&}]{\+\_\+window\+Size = {\ttfamily QSize(-\/1,-\/1)}, }
\item[{const int}]{\+\_\+tool\+Bar\+Width = {\ttfamily -\/1}, }
\item[{const bool}]{\+\_\+make\+\_\+c\+\_\+string = {\ttfamily false}}
\end{DoxyParamCaption}
)}}\label{a00652_a0340f00ac2eefca03531481d663180fd}
convert current view to text representation if saved, the old window size will be written into \+\_\+window\+Size \begin{DoxyNote}{Note}
Q\+Size(0,0) indicates that the window is maximized. 
\end{DoxyNote}


Definition at line 1109 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_af062e1ff98e412324d8b473442452ffb}{\index{gl\+Viewer@{gl\+Viewer}!fast\+\_\+pick@{fast\+\_\+pick}}
\index{fast\+\_\+pick@{fast\+\_\+pick}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{fast\+\_\+pick}]{\setlength{\rightskip}{0pt plus 5cm}bool gl\+Viewer\+::fast\+\_\+pick (
\begin{DoxyParamCaption}
\item[{const Q\+Point \&}]{\+\_\+mouse\+Pos, }
\item[{{\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+hit\+Point}
\end{DoxyParamCaption}
)}}\label{a00652_af062e1ff98e412324d8b473442452ffb}
get the coordinates of the picked point by z-\/buffer re-\/projection 
\begin{DoxyParams}{Parameters}
{\em \+\_\+mouse\+Pos} & The position to pick \\
\hline
{\em \+\_\+hit\+Point} & The point returned by the reprojection \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Successful? 
\end{DoxyReturn}


Definition at line 613 of file Qt\+Base\+Viewer\+Picking.\+cc.

\hypertarget{a00652_afa7e2db85d8d707e4c4909ebfafdd562}{\index{gl\+Viewer@{gl\+Viewer}!fly\+From@{fly\+From}}
\index{fly\+From@{fly\+From}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{fly\+From}]{\setlength{\rightskip}{0pt plus 5cm}virtual void gl\+Viewer\+::fly\+From (
\begin{DoxyParamCaption}
\item[{const Q\+Point \&}]{\+\_\+pos}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}}\label{a00652_afa7e2db85d8d707e4c4909ebfafdd562}


Animated flight. 

Animated flight away from the given point. 

Definition at line 1013 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_ae420bd6e3f132f6de27faa93d5df1f55}{\index{gl\+Viewer@{gl\+Viewer}!fly\+To@{fly\+To}}
\index{fly\+To@{fly\+To}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{fly\+To}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::fly\+To (
\begin{DoxyParamCaption}
\item[{const Q\+Point \&}]{\+\_\+pos, }
\item[{bool}]{\+\_\+move\+Back}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [slot]}}}\label{a00652_ae420bd6e3f132f6de27faa93d5df1f55}


Animated flight to or away from a given point. 

Animated flight to or away from a given point.


\begin{DoxyParams}{Parameters}
{\em \+\_\+pos} & Point defining direction of flight (eye-\/point) \\
\hline
{\em \+\_\+move\+Back} & To or away from point? \\
\hline
\end{DoxyParams}


Definition at line 71 of file Qt\+Base\+Viewer\+Fly\+Animation.\+cc.

\hypertarget{a00652_ac13823fc6d7c827633a5ad434892ad00}{\index{gl\+Viewer@{gl\+Viewer}!fly\+To@{fly\+To}}
\index{fly\+To@{fly\+To}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{fly\+To}]{\setlength{\rightskip}{0pt plus 5cm}virtual void gl\+Viewer\+::fly\+To (
\begin{DoxyParamCaption}
\item[{const Q\+Point \&}]{\+\_\+pos}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}, {\ttfamily [slot]}}}\label{a00652_ac13823fc6d7c827633a5ad434892ad00}


Animated flight. 

Animated flight into the direction of the given point. 

Definition at line 1005 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a55792e262df903fbadced74b83084237}{\index{gl\+Viewer@{gl\+Viewer}!fly\+To@{fly\+To}}
\index{fly\+To@{fly\+To}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{fly\+To}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::fly\+To (
\begin{DoxyParamCaption}
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+position, }
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+center, }
\item[{int}]{\+\_\+time = {\ttfamily 1000}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [slot]}}}\label{a00652_a55792e262df903fbadced74b83084237}
Fly to point and set new viewing direction (animated). 
\begin{DoxyParams}{Parameters}
{\em \+\_\+position} & New viewer position ( the new eye point of the viewer ) \\
\hline
{\em \+\_\+center} & The new scene center ( the point we are looking at ) \\
\hline
{\em \+\_\+time} & Animation time in ms \\
\hline
\end{DoxyParams}


Definition at line 227 of file Qt\+Base\+Viewer\+Fly\+Animation.\+cc.

\hypertarget{a00652_a5b91c7d6b19081fc697cc2d41e64bd69}{\index{gl\+Viewer@{gl\+Viewer}!get\+Constrained\+Rotation\+Axis@{get\+Constrained\+Rotation\+Axis}}
\index{get\+Constrained\+Rotation\+Axis@{get\+Constrained\+Rotation\+Axis}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{get\+Constrained\+Rotation\+Axis}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf A\+C\+G\+::\+Vec3d}\& gl\+Viewer\+::get\+Constrained\+Rotation\+Axis (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_a5b91c7d6b19081fc697cc2d41e64bd69}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 891 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_ae496c7f46e2001020468aa04ccd43609}{\index{gl\+Viewer@{gl\+Viewer}!initialize\+G\+L@{initialize\+G\+L}}
\index{initialize\+G\+L@{initialize\+G\+L}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{initialize\+G\+L}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::initialize\+G\+L (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [virtual]}}}\label{a00652_ae496c7f46e2001020468aa04ccd43609}


Return a resonable size hint. 

initialize Open\+G\+L states 

Definition at line 973 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_ad78a4a09c6c91b91d38a799dd60eeff9}{\index{gl\+Viewer@{gl\+Viewer}!invalidate\+Pick\+Cache@{invalidate\+Pick\+Cache}}
\index{invalidate\+Pick\+Cache@{invalidate\+Pick\+Cache}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{invalidate\+Pick\+Cache}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::invalidate\+Pick\+Cache (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_ad78a4a09c6c91b91d38a799dd60eeff9}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 897 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_ae374e0892f03f013bd61025845f6f17b}{\index{gl\+Viewer@{gl\+Viewer}!key\+Press\+Event@{key\+Press\+Event}}
\index{key\+Press\+Event@{key\+Press\+Event}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{key\+Press\+Event}]{\setlength{\rightskip}{0pt plus 5cm}virtual void gl\+Viewer\+::key\+Press\+Event (
\begin{DoxyParamCaption}
\item[{Q\+Key\+Event $\ast$}]{\+\_\+event}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}}\label{a00652_ae374e0892f03f013bd61025845f6f17b}


Get key\+Press events from the gl\+Area. 

This function is called by the internal gl widget when receiving a key press event. 

Definition at line 706 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_ab9cf2f9b2c44c136f11da2244ba7ac2d}{\index{gl\+Viewer@{gl\+Viewer}!key\+Release\+Event@{key\+Release\+Event}}
\index{key\+Release\+Event@{key\+Release\+Event}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{key\+Release\+Event}]{\setlength{\rightskip}{0pt plus 5cm}virtual void gl\+Viewer\+::key\+Release\+Event (
\begin{DoxyParamCaption}
\item[{Q\+Key\+Event $\ast$}]{\+\_\+event}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}}\label{a00652_ab9cf2f9b2c44c136f11da2244ba7ac2d}


Get key\+Release events from the gl\+Area. 

This function is called by the internal gl widget when receiving a key release event. Here these events are simply passed to the parent widget. 

Definition at line 714 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a1a66a4c613ec1e81697c29029674c121}{\index{gl\+Viewer@{gl\+Viewer}!pick@{pick}}
\index{pick@{pick}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{pick}]{\setlength{\rightskip}{0pt plus 5cm}bool gl\+Viewer\+::pick (
\begin{DoxyParamCaption}
\item[{{\bf A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target}}]{\+\_\+pick\+Target, }
\item[{const Q\+Point \&}]{\+\_\+mouse\+Pos, }
\item[{unsigned int \&}]{\+\_\+node\+Idx, }
\item[{unsigned int \&}]{\+\_\+target\+Idx, }
\item[{{\bf A\+C\+G\+::\+Vec3d} $\ast$}]{\+\_\+hit\+Point\+Ptr = {\ttfamily 0}}
\end{DoxyParamCaption}
)}}\label{a00652_a1a66a4c613ec1e81697c29029674c121}
Apply pick action. ~\newline
 Information about the picked primitive is stored in the provided pointers. No information is stored if 0-\/pointers are given. Resulting values are defined only if {\ttfamily true} has been returned!~\newline



\begin{DoxyParams}{Parameters}
{\em \+\_\+pick\+Target} & Select what should be picked\+: Faces/\+Vertices/... \\
\hline
{\em \+\_\+mouse\+Pos} & The position to be used for picking \\
\hline
{\em \+\_\+node\+Idx} & If picking is successful this will contain the id of the scenegraph node picked. \\
\hline
{\em \+\_\+target\+Idx} & Special index defined by the picked Node. E.\+g. Facehandle/\+Vertex\+Handle/.. for Mesh\+Nodes \\
\hline
{\em \+\_\+hit\+Point\+Ptr} & Pointer to 3\+D point from picking \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Successful? 
\end{DoxyReturn}


Definition at line 77 of file Qt\+Base\+Viewer\+Picking.\+cc.

\hypertarget{a00652_acee90de4fb9b41496c7d7c07c966ae47}{\index{gl\+Viewer@{gl\+Viewer}!pick\+\_\+region@{pick\+\_\+region}}
\index{pick\+\_\+region@{pick\+\_\+region}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{pick\+\_\+region}]{\setlength{\rightskip}{0pt plus 5cm}bool gl\+Viewer\+::pick\+\_\+region (
\begin{DoxyParamCaption}
\item[{{\bf A\+C\+G\+::\+Scene\+Graph\+::\+Pick\+Target}}]{\+\_\+pick\+Target, }
\item[{const Q\+Region \&}]{\+\_\+region, }
\item[{Q\+List$<$ Q\+Pair$<$ unsigned int, unsigned int $>$ $>$ \&}]{\+\_\+list, }
\item[{Q\+Vector$<$ float $>$ $\ast$}]{\+\_\+depths = {\ttfamily 0}, }
\item[{Q\+Vector$<$ {\bf A\+C\+G\+::\+Vec3d} $>$ $\ast$}]{\+\_\+points = {\ttfamily 0}}
\end{DoxyParamCaption}
)}}\label{a00652_acee90de4fb9b41496c7d7c07c966ae47}


Perform picking action n a whole region. 

Apply pick action. ~\newline
 Picks all objects in the given Region. Information about the picked primitives is stored in the provided list. Resulting values are defined only if {\ttfamily true} has been returned!


\begin{DoxyParams}{Parameters}
{\em \+\_\+pick\+Target} & Select what should be picked\+: Faces/\+Vertices/... \\
\hline
{\em \+\_\+region} & Area for picking \\
\hline
{\em \+\_\+list} & List of found scenegraph objects (node/target pairs) \\
\hline
{\em \+\_\+depths} & depths \mbox{[}0,1\mbox{]} (Only provided, if requested) \\
\hline
{\em \+\_\+points} & back projected 3d points (Only provided, if requested) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Successful? 
\end{DoxyReturn}


Definition at line 417 of file Qt\+Base\+Viewer\+Picking.\+cc.

\hypertarget{a00652_a53d0dee00d0e298ea78a6c244c4d9022}{\index{gl\+Viewer@{gl\+Viewer}!scene\+\_\+center@{scene\+\_\+center}}
\index{scene\+\_\+center@{scene\+\_\+center}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{scene\+\_\+center}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf A\+C\+G\+::\+Vec3d} gl\+Viewer\+::scene\+\_\+center (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_a53d0dee00d0e298ea78a6c244c4d9022}
Get scene's center \begin{DoxySeeAlso}{See also}
\hyperlink{a00652_ab0248fa345d594824f6672c206be8a40}{set\+Scene\+Pos()} 
\end{DoxySeeAlso}


Definition at line 676 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_ae1d4aae9e66e99ec3e4e400244a27d9d}{\index{gl\+Viewer@{gl\+Viewer}!scene\+\_\+radius@{scene\+\_\+radius}}
\index{scene\+\_\+radius@{scene\+\_\+radius}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{scene\+\_\+radius}]{\setlength{\rightskip}{0pt plus 5cm}double gl\+Viewer\+::scene\+\_\+radius (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_ae1d4aae9e66e99ec3e4e400244a27d9d}
Get scene's radius 

Definition at line 679 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a16e80212c8a66bcdc282436e49c02ac1}{\index{gl\+Viewer@{gl\+Viewer}!scene\+Graph@{scene\+Graph}}
\index{scene\+Graph@{scene\+Graph}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{scene\+Graph}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::scene\+Graph (
\begin{DoxyParamCaption}
\item[{{\bf A\+C\+G\+::\+Scene\+Graph\+::\+Base\+Node} $\ast$}]{\+\_\+root, }
\item[{unsigned int}]{\+\_\+max\+Passes, }
\item[{{\bf A\+C\+G\+::\+Vec3d}}]{\+\_\+bbmin, }
\item[{{\bf A\+C\+G\+::\+Vec3d}}]{\+\_\+bbmax, }
\item[{const bool}]{\+\_\+reset\+Track\+Ball = {\ttfamily false}}
\end{DoxyParamCaption}
)}}\label{a00652_a16e80212c8a66bcdc282436e49c02ac1}
Set scene graph. Sets the scene graph to the the graph rooted at {\ttfamily \+\_\+root}. Recomputes Scene center and resets the trackball center if specified. The {\ttfamily scene\+Graph\+Toched()} signal will be emitted (even if {\ttfamily \+\_\+root} does not actually change). Use the \hyperlink{a03343_a8f51719ad75f81a4e74d97d64bbf6c2f}{A\+C\+G\+::\+Scene\+Graph\+::analyze\+Scene\+Graph()} function to get the required bounding box and pass information.


\begin{DoxyParams}{Parameters}
{\em \+\_\+root} & The root node of the scene graph \\
\hline
{\em \+\_\+max\+Passes} & The maximal number of passes required to render the scenegraph \\
\hline
{\em \+\_\+bbmin} & Lower left of the scenegraph bounding box \\
\hline
{\em \+\_\+bbmax} & Upper right of the scenegraph bounding box \\
\hline
{\em \+\_\+reset\+Track\+Ball} & Reset the trackball center? \\
\hline
\end{DoxyParams}


Definition at line 240 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_ab4e799684b1f4569e5a16b0dcdd2bde5}{\index{gl\+Viewer@{gl\+Viewer}!set\+Scene\+Center@{set\+Scene\+Center}}
\index{set\+Scene\+Center@{set\+Scene\+Center}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{set\+Scene\+Center}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::set\+Scene\+Center (
\begin{DoxyParamCaption}
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+center}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_ab4e799684b1f4569e5a16b0dcdd2bde5}
Set new center point of scene 

Definition at line 659 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_ab0248fa345d594824f6672c206be8a40}{\index{gl\+Viewer@{gl\+Viewer}!set\+Scene\+Pos@{set\+Scene\+Pos}}
\index{set\+Scene\+Pos@{set\+Scene\+Pos}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{set\+Scene\+Pos}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::set\+Scene\+Pos (
\begin{DoxyParamCaption}
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+center, }
\item[{double}]{\+\_\+radius, }
\item[{const bool}]{\+\_\+reset\+Track\+Ball = {\ttfamily false}}
\end{DoxyParamCaption}
)}}\label{a00652_ab0248fa345d594824f6672c206be8a40}
Sets the center and dimension of the whole scene. This point is used as fixpoint for rotations and to set the eye point far enough from the scene so that the whole scene is visible. 

Definition at line 425 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_a0d4e534896312afed05ff97f641509d6}{\index{gl\+Viewer@{gl\+Viewer}!set\+Scene\+Radius@{set\+Scene\+Radius}}
\index{set\+Scene\+Radius@{set\+Scene\+Radius}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{set\+Scene\+Radius}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::set\+Scene\+Radius (
\begin{DoxyParamCaption}
\item[{double}]{\+\_\+radius}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_a0d4e534896312afed05ff97f641509d6}
Set new center point of scene 

Definition at line 681 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_aeeb590fd0692795d169887b700323da3}{\index{gl\+Viewer@{gl\+Viewer}!set\+Track\+Ball\+Center@{set\+Track\+Ball\+Center}}
\index{set\+Track\+Ball\+Center@{set\+Track\+Ball\+Center}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{set\+Track\+Ball\+Center}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::set\+Track\+Ball\+Center (
\begin{DoxyParamCaption}
\item[{const {\bf A\+C\+G\+::\+Vec3d} \&}]{\+\_\+center}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_aeeb590fd0692795d169887b700323da3}


Set Trackball Center point of scene. 

The scene is rotated around the trackball center when using the mouse 

Definition at line 665 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_af7d40857f258091128fe9172dbd96236}{\index{gl\+Viewer@{gl\+Viewer}!signal\+Custom\+Context\+Menu\+Requested@{signal\+Custom\+Context\+Menu\+Requested}}
\index{signal\+Custom\+Context\+Menu\+Requested@{signal\+Custom\+Context\+Menu\+Requested}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{signal\+Custom\+Context\+Menu\+Requested}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::signal\+Custom\+Context\+Menu\+Requested (
\begin{DoxyParamCaption}
\item[{const Q\+Point \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [signal]}}}\label{a00652_af7d40857f258091128fe9172dbd96236}
If popups are disabled context menu mode is set to custom \hyperlink{a00802}{Menu} and the signal is passed from the Q\+G\+L\+Widget to this signal. You can use map\+To\+Global for mapping this point to global coords. \hypertarget{a00652_a46b1def1a4c0b415f6590410e9ef553e}{\index{gl\+Viewer@{gl\+Viewer}!signal\+Key\+Press\+Event@{signal\+Key\+Press\+Event}}
\index{signal\+Key\+Press\+Event@{signal\+Key\+Press\+Event}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{signal\+Key\+Press\+Event}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::signal\+Key\+Press\+Event (
\begin{DoxyParamCaption}
\item[{Q\+Key\+Event $\ast$}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [signal]}}}\label{a00652_a46b1def1a4c0b415f6590410e9ef553e}


Key Event received. 

This signal is emitted if a Key press event is received which is not handled by the widget itself. If internal key handling is disabled the events are passed to the parent of this widget. \hypertarget{a00652_aa87c11591840eab0a4fe21947b0f219f}{\index{gl\+Viewer@{gl\+Viewer}!signal\+Mouse\+Event@{signal\+Mouse\+Event}}
\index{signal\+Mouse\+Event@{signal\+Mouse\+Event}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{signal\+Mouse\+Event}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::signal\+Mouse\+Event (
\begin{DoxyParamCaption}
\item[{Q\+Mouse\+Event $\ast$}]{, }
\item[{const std\+::string \&}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [signal]}}}\label{a00652_aa87c11591840eab0a4fe21947b0f219f}
A signal for giving mouse events to the application. This is done if the Pick-\/\+Button (top-\/most button of the toolbar) is activated. Connect to this signal to implement application specific handling of mouse events.~\newline
 {\itshape Notes\+:} \begin{DoxyItemize}
\item You have to test for the Q\+Mouse\+Event\+::type() of the event yourself (press/release/move)! \item \hyperlink{a00652_aa7a0233b9b04661ee7ee3423077cbab2}{signal\+Mouse\+Event\+Identify()} is emitted on button press if action\+Mode()==Question. \end{DoxyItemize}
\hypertarget{a00652_ac89941b582ee1eecb70afc64c0935f6d}{\index{gl\+Viewer@{gl\+Viewer}!signal\+Mouse\+Event\+Click@{signal\+Mouse\+Event\+Click}}
\index{signal\+Mouse\+Event\+Click@{signal\+Mouse\+Event\+Click}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{signal\+Mouse\+Event\+Click}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::signal\+Mouse\+Event\+Click (
\begin{DoxyParamCaption}
\item[{Q\+Mouse\+Event $\ast$}]{, }
\item[{bool}]{\+\_\+double}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [signal]}}}\label{a00652_ac89941b582ee1eecb70afc64c0935f6d}
Emitted if a (double) mouse click is performed in action\+Mode()==Examine\+Mode \hypertarget{a00652_aa7a0233b9b04661ee7ee3423077cbab2}{\index{gl\+Viewer@{gl\+Viewer}!signal\+Mouse\+Event\+Identify@{signal\+Mouse\+Event\+Identify}}
\index{signal\+Mouse\+Event\+Identify@{signal\+Mouse\+Event\+Identify}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{signal\+Mouse\+Event\+Identify}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::signal\+Mouse\+Event\+Identify (
\begin{DoxyParamCaption}
\item[{Q\+Mouse\+Event $\ast$}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [signal]}}}\label{a00652_aa7a0233b9b04661ee7ee3423077cbab2}
Emitted instead of \hyperlink{a00652_aa87c11591840eab0a4fe21947b0f219f}{signal\+Mouse\+Event()} if action\+Mode()==Question and {\ttfamily \+\_\+event} is a mouse press event. \hypertarget{a00652_aebfc5f4da2b7ed4ad6f54503445cdfa2}{\index{gl\+Viewer@{gl\+Viewer}!signal\+Mouse\+Event\+Light@{signal\+Mouse\+Event\+Light}}
\index{signal\+Mouse\+Event\+Light@{signal\+Mouse\+Event\+Light}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{signal\+Mouse\+Event\+Light}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::signal\+Mouse\+Event\+Light (
\begin{DoxyParamCaption}
\item[{Q\+Mouse\+Event $\ast$}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [signal]}}}\label{a00652_aebfc5f4da2b7ed4ad6f54503445cdfa2}
Emitted instead of \hyperlink{a00652_aa87c11591840eab0a4fe21947b0f219f}{signal\+Mouse\+Event()} if action\+Mode()==Light and {\ttfamily \+\_\+event} is a mouse press event. \hypertarget{a00652_a581ff3dcb5ff643572f1bd740ea91c9d}{\index{gl\+Viewer@{gl\+Viewer}!slot\+Animation@{slot\+Animation}}
\index{slot\+Animation@{slot\+Animation}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{slot\+Animation}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::slot\+Animation (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}}\label{a00652_a581ff3dcb5ff643572f1bd740ea91c9d}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 2145 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_a447cb4cd04c778ae72dacd1e165f06f8}{\index{gl\+Viewer@{gl\+Viewer}!slot\+Properties\+Updated@{slot\+Properties\+Updated}}
\index{slot\+Properties\+Updated@{slot\+Properties\+Updated}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{slot\+Properties\+Updated}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::slot\+Properties\+Updated (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [private]}, {\ttfamily [slot]}}}\label{a00652_a447cb4cd04c778ae72dacd1e165f06f8}
Called when properties for the viewer require a redraw The slot will trigger the redraw after setting the right properties. 

Definition at line 2193 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_a530882bc9a660045ab1f3637883fced6}{\index{gl\+Viewer@{gl\+Viewer}!snapshot@{snapshot}}
\index{snapshot@{snapshot}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{snapshot}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::snapshot (
\begin{DoxyParamCaption}
\item[{int}]{\+\_\+width = {\ttfamily 0}, }
\item[{int}]{\+\_\+height = {\ttfamily 0}, }
\item[{bool}]{\+\_\+alpha = {\ttfamily false}, }
\item[{bool}]{\+\_\+hide\+Coordsys = {\ttfamily false}, }
\item[{int}]{samples = {\ttfamily 1}}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}, {\ttfamily [slot]}}}\label{a00652_a530882bc9a660045ab1f3637883fced6}
Trigger a snapshot and increase the snapshot counter. Save snapshot to file determined by snapshot\+Base\+File\+Name() and the current snapshot counter. The {\itshape back} buffer will be saved. 

Definition at line 2338 of file Qt\+Base\+Viewer.\+cc.

\hypertarget{a00652_a6eb7c7867eea5eea34a424cda5206f2b}{\index{gl\+Viewer@{gl\+Viewer}!start\+Drag\+Event@{start\+Drag\+Event}}
\index{start\+Drag\+Event@{start\+Drag\+Event}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{start\+Drag\+Event}]{\setlength{\rightskip}{0pt plus 5cm}void gl\+Viewer\+::start\+Drag\+Event (
\begin{DoxyParamCaption}
\item[{Q\+Mouse\+Event $\ast$}]{\+\_\+event}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [signal]}}}\label{a00652_a6eb7c7867eea5eea34a424cda5206f2b}
Signal is emitted when Control modifier is pressed and mouse moded. It will only be emitted if in external\+Drag\+Mode ( see set\+External\+Drag ) \hypertarget{a00652_a5a45b44f1e0a7a7d17e80c9e65768055}{\index{gl\+Viewer@{gl\+Viewer}!track\+Ball\+Center@{track\+Ball\+Center}}
\index{track\+Ball\+Center@{track\+Ball\+Center}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{track\+Ball\+Center}]{\setlength{\rightskip}{0pt plus 5cm}const {\bf A\+C\+G\+::\+Vec3d} gl\+Viewer\+::track\+Ball\+Center (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{a00652_a5a45b44f1e0a7a7d17e80c9e65768055}


Get Trackball Center point of scene. 

The scene is rotated around the trackball center when using the mouse 

Definition at line 671 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_aa35d841027bd3ea68363b037b7e1ee09}{\index{gl\+Viewer@{gl\+Viewer}!view\+Key\+Press\+Event@{view\+Key\+Press\+Event}}
\index{view\+Key\+Press\+Event@{view\+Key\+Press\+Event}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{view\+Key\+Press\+Event}]{\setlength{\rightskip}{0pt plus 5cm}virtual bool gl\+Viewer\+::view\+Key\+Press\+Event (
\begin{DoxyParamCaption}
\item[{Q\+Key\+Event $\ast$}]{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}, {\ttfamily [virtual]}}}\label{a00652_aa35d841027bd3ea68363b037b7e1ee09}


Handle key events in view mode. 

This function is called by the Base\+Viewer if a key press event occured in view mode. This function has to be implemented by every viewer!

\begin{DoxyReturn}{Returns}
If the derived class handled the event it has to return true otherwise false 
\end{DoxyReturn}


Definition at line 723 of file Qt\+Base\+Viewer.\+hh.



\subsection{Member Data Documentation}
\hypertarget{a00652_a22941ad7c7da19057c029940dd4e763b}{\index{gl\+Viewer@{gl\+Viewer}!allow\+Rotation\+\_\+@{allow\+Rotation\+\_\+}}
\index{allow\+Rotation\+\_\+@{allow\+Rotation\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{allow\+Rotation\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}bool gl\+Viewer\+::allow\+Rotation\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a22941ad7c7da19057c029940dd4e763b}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 934 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a1d781d27d4d2db8b690eaac3c810021f}{\index{gl\+Viewer@{gl\+Viewer}!click\+Event\+\_\+@{click\+Event\+\_\+}}
\index{click\+Event\+\_\+@{click\+Event\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{click\+Event\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Mouse\+Event gl\+Viewer\+::click\+Event\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a1d781d27d4d2db8b690eaac3c810021f}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 946 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a1f4b8802288ea73628a4c2de5693998f}{\index{gl\+Viewer@{gl\+Viewer}!click\+Time\+\_\+@{click\+Time\+\_\+}}
\index{click\+Time\+\_\+@{click\+Time\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{click\+Time\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Time gl\+Viewer\+::click\+Time\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a1f4b8802288ea73628a4c2de5693998f}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 945 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a25d4c5b2ba5791e06855126379aa6d16}{\index{gl\+Viewer@{gl\+Viewer}!click\+Timer\+\_\+@{click\+Timer\+\_\+}}
\index{click\+Timer\+\_\+@{click\+Timer\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{click\+Timer\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Timer gl\+Viewer\+::click\+Timer\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a25d4c5b2ba5791e06855126379aa6d16}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 944 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a0c793a7c60bb05c66aa423844f123956}{\index{gl\+Viewer@{gl\+Viewer}!constrained\+Rotation\+Axis\+\_\+@{constrained\+Rotation\+Axis\+\_\+}}
\index{constrained\+Rotation\+Axis\+\_\+@{constrained\+Rotation\+Axis\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{constrained\+Rotation\+Axis\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}{\bf A\+C\+G\+::\+Vec3d} gl\+Viewer\+::constrained\+Rotation\+Axis\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a0c793a7c60bb05c66aa423844f123956}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 938 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_ab4feb33df3206ae3ed25ad60330eb80b}{\index{gl\+Viewer@{gl\+Viewer}!fovy\+Modifier\+\_\+@{fovy\+Modifier\+\_\+}}
\index{fovy\+Modifier\+\_\+@{fovy\+Modifier\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{fovy\+Modifier\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}double gl\+Viewer\+::fovy\+Modifier\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_ab4feb33df3206ae3ed25ad60330eb80b}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 942 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_aa2ee419cea934d78372d486a2ae084cf}{\index{gl\+Viewer@{gl\+Viewer}!last\+Move\+Time\+\_\+@{last\+Move\+Time\+\_\+}}
\index{last\+Move\+Time\+\_\+@{last\+Move\+Time\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{last\+Move\+Time\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Time gl\+Viewer\+::last\+Move\+Time\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_aa2ee419cea934d78372d486a2ae084cf}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 940 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a00446950f8b6d47d8acd31636e43f51b}{\index{gl\+Viewer@{gl\+Viewer}!last\+Point2\+D\+\_\+@{last\+Point2\+D\+\_\+}}
\index{last\+Point2\+D\+\_\+@{last\+Point2\+D\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{last\+Point2\+D\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Point gl\+Viewer\+::last\+Point2\+D\+\_\+\hspace{0.3cm}{\ttfamily [protected]}}}\label{a00652_a00446950f8b6d47d8acd31636e43f51b}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 911 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_aa2b83d75bf45d04b422df9ed9b66b039}{\index{gl\+Viewer@{gl\+Viewer}!last\+Point3\+D\+\_\+@{last\+Point3\+D\+\_\+}}
\index{last\+Point3\+D\+\_\+@{last\+Point3\+D\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{last\+Point3\+D\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}{\bf A\+C\+G\+::\+Vec3d} gl\+Viewer\+::last\+Point3\+D\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_aa2b83d75bf45d04b422df9ed9b66b039}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 932 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a9db33b61abd6b84c46ede4fa75a1a246}{\index{gl\+Viewer@{gl\+Viewer}!last\+Point\+\_\+hit\+Sphere\+\_\+@{last\+Point\+\_\+hit\+Sphere\+\_\+}}
\index{last\+Point\+\_\+hit\+Sphere\+\_\+@{last\+Point\+\_\+hit\+Sphere\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{last\+Point\+\_\+hit\+Sphere\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}bool gl\+Viewer\+::last\+Point\+\_\+hit\+Sphere\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a9db33b61abd6b84c46ede4fa75a1a246}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 933 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a19ac1c6a32492ab833ad7ede3f5e8e89}{\index{gl\+Viewer@{gl\+Viewer}!last\+Rotation\+Angle\+\_\+@{last\+Rotation\+Angle\+\_\+}}
\index{last\+Rotation\+Angle\+\_\+@{last\+Rotation\+Angle\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{last\+Rotation\+Angle\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}double gl\+Viewer\+::last\+Rotation\+Angle\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a19ac1c6a32492ab833ad7ede3f5e8e89}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 939 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a5a4e5688ae7163cd2b8e8496b4ad67ee}{\index{gl\+Viewer@{gl\+Viewer}!last\+Rotation\+Axis\+\_\+@{last\+Rotation\+Axis\+\_\+}}
\index{last\+Rotation\+Axis\+\_\+@{last\+Rotation\+Axis\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{last\+Rotation\+Axis\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}{\bf A\+C\+G\+::\+Vec3d} gl\+Viewer\+::last\+Rotation\+Axis\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a5a4e5688ae7163cd2b8e8496b4ad67ee}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 937 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_ad6f6b273c6c9e91da8c46c91bba17b02}{\index{gl\+Viewer@{gl\+Viewer}!start\+Depth\+\_\+@{start\+Depth\+\_\+}}
\index{start\+Depth\+\_\+@{start\+Depth\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{start\+Depth\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}float gl\+Viewer\+::start\+Depth\+\_\+\hspace{0.3cm}{\ttfamily [protected]}}}\label{a00652_ad6f6b273c6c9e91da8c46c91bba17b02}


mouse interaction depth 

This variable stores the depth when the user started a mouse interaction. 

Definition at line 917 of file Qt\+Base\+Viewer.\+hh.

\hypertarget{a00652_a2e95cbe21947cfdf06f1f46178c740e2}{\index{gl\+Viewer@{gl\+Viewer}!timer\+\_\+@{timer\+\_\+}}
\index{timer\+\_\+@{timer\+\_\+}!gl\+Viewer@{gl\+Viewer}}
\subsubsection[{timer\+\_\+}]{\setlength{\rightskip}{0pt plus 5cm}Q\+Timer$\ast$ gl\+Viewer\+::timer\+\_\+\hspace{0.3cm}{\ttfamily [private]}}}\label{a00652_a2e95cbe21947cfdf06f1f46178c740e2}


mouse interaction position 

This variable stores the last mouse position during mouse interaction. 

Definition at line 941 of file Qt\+Base\+Viewer.\+hh.



The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
Open\+Flipper/widgets/gl\+Widget/Qt\+Base\+Viewer.\+hh\item 
Open\+Flipper/widgets/gl\+Widget/Qt\+Base\+Viewer.\+cc\item 
Open\+Flipper/widgets/gl\+Widget/Qt\+Base\+Viewer\+Fly\+Animation.\+cc\item 
Open\+Flipper/widgets/gl\+Widget/Qt\+Base\+Viewer\+Picking.\+cc\end{DoxyCompactItemize}
