\hypertarget{classGlutWindow}{\section{Glut\-Window Class Reference}
\label{classGlutWindow}\index{Glut\-Window@{Glut\-Window}}
}


Basic \hyperlink{classGlutWindow}{Glut\-Window} class that creates a window and initializes everything. It also implements a basic user input motion to move around in the environment.  




{\ttfamily \#include $<$Glut\-Window.\-h$>$}

Inheritance diagram for Glut\-Window\-:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=3.000000cm]{classGlutWindow}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{classGlutWindow_ab0b63156df7c1e5f9818a2e32b5d79df}{Glut\-Window} (const char $\ast$title, int width=800, int height=800)
\item 
virtual \hyperlink{classGlutWindow_ab455bdfdacdc6881f4583fccdd5bc56d}{$\sim$\-Glut\-Window} ()
\item 
int \hyperlink{classGlutWindow_af128e26f20cd2fafcb7dba4d95b5dd55}{get\-Width} () const 
\item 
int \hyperlink{classGlutWindow_afaf9674c82cc7eaf0bf58da7d8f33117}{get\-Height} () const 
\item 
int \hyperlink{classGlutWindow_aaf01d85518073700155b5d27be550562}{get\-Button} () const 
\item 
virtual void \hyperlink{classGlutWindow_af67ca41521f5dea7511fa931a7f8715d}{reshape} (int w, int h)=0
\item 
virtual void \hyperlink{classGlutWindow_a924b68595d0850716b063004a62c73d8}{idle} ()
\item 
virtual void \hyperlink{classGlutWindow_a7d5cc033eafe7ddf34830726d6748476}{run} ()
\item 
virtual void \hyperlink{classGlutWindow_aba047e0dfd1d45366f509c48c8570118}{display} ()=0
\item 
virtual void \hyperlink{classGlutWindow_afc5d52a574d4e83d2133834671fcbc98}{process\-Normal\-Keys} (unsigned char key, int x, int y)
\item 
virtual void \hyperlink{classGlutWindow_a59ba82a5e017ef79f06318202b5485b5}{process\-Special\-Keys} (int key, int x, int y)
\item 
virtual void \hyperlink{classGlutWindow_ae3474fbb94e21892fd4cc302eac74c28}{mouse} (int button, int state, int x, int y)
\item 
virtual void \hyperlink{classGlutWindow_af396cb89a1ab01b37ec5430a5dbf831a}{mouse\-Motion} (int x, int y)
\item 
virtual void \hyperlink{classGlutWindow_ae3be79d3c662e869dac97a54d40ba7ab}{position\-Camera} ()
\item 
void \hyperlink{classGlutWindow_a1b2dadf84f02a168dd648406ad1f7083}{draw\-Text} (const char $\ast$txt, float x, float y, float r, float g, float b, void $\ast$font)
\end{DoxyCompactItemize}
\subsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
void \hyperlink{classGlutWindow_a6d6c4811aef47c577a6439e0ca33105b}{init\-Function\-Ptrs} ()
\item 
virtual void \hyperlink{classGlutWindow_a0f7f708407ab77da86ee3b3dd6a69952}{init} ()=0
\item 
double \hyperlink{classGlutWindow_a4d9dcef6d959efc27c1dc88666623638}{deg\-To\-Rad} (const double \&angle)
\end{DoxyCompactItemize}
\subsection*{Static Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
static void \hyperlink{classGlutWindow_a408b17675806b4fc35affd449379d63d}{\-\_\-reshape} (int w, int h)
\item 
static void \hyperlink{classGlutWindow_af6e4c5d11a6511f23093cd3ff97f041b}{\-\_\-idle} ()
\item 
static void \hyperlink{classGlutWindow_ac796d05df867d9dd6fa060df027f604f}{\-\_\-display} ()
\item 
static void \hyperlink{classGlutWindow_a54b7069c1e3166c70420379e360ecd8a}{\-\_\-mouse} (int button, int state, int x, int y)
\item 
static void \hyperlink{classGlutWindow_a5363e917423c0a2c4feceb399e820b3a}{\-\_\-process\-Normal\-Keys} (unsigned char key, int x, int y)
\item 
static void \hyperlink{classGlutWindow_aeaad8eda6ec611b3d9d024b4ab1b4e59}{\-\_\-process\-Special\-Keys} (int key, int x, int y)
\item 
static void \hyperlink{classGlutWindow_ad94a757c75f4e218c8035e0c78768f5c}{\-\_\-mouse\-Motion} (int x, int y)
\end{DoxyCompactItemize}
\subsection*{Protected Attributes}
\begin{DoxyCompactItemize}
\item 
int \hyperlink{classGlutWindow_a80431f957c60a057e24e5d1d3b20df41}{window\-I\-D}
\item 
char $\ast$ \hyperlink{classGlutWindow_a46eb89e01556dbf11fa52e7c8466322f}{my\-Title}
\item 
int \hyperlink{classGlutWindow_a83cf010b6754dc7a0516bd63f5bbf21b}{window\-Height}
\item 
int \hyperlink{classGlutWindow_ae039b4813d69255b7eb38b9e196dcc64}{window\-Width}
\item 
int \hyperlink{classGlutWindow_a6576df46fa71757f3c5dc29e1a1f537f}{button\-Down}
\item 
int \hyperlink{classGlutWindow_ad103930ec412c3ba5434700c5a13365d}{mouse\-Start\-X}
\item 
int \hyperlink{classGlutWindow_adfb9c7ff6bbe93d2ab188642eec970fa}{mouse\-Start\-Y}
\item 
bool \hyperlink{classGlutWindow_af957c868ad0f2de2ad86808b37790b46}{window\-Launched}
\end{DoxyCompactItemize}
\subsection*{Static Protected Attributes}
\begin{DoxyCompactItemize}
\item 
static \hyperlink{classGlutWindow}{Glut\-Window} $\ast$ \hyperlink{classGlutWindow_adf0f176e018a5dcf3d8e1e41708f4aeb}{my\-Window}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
Basic \hyperlink{classGlutWindow}{Glut\-Window} class that creates a window and initializes everything. It also implements a basic user input motion to move around in the environment. 

\begin{DoxyNote}{Note}
\-: Need to override the draw() function which is called automatically from within display 
\end{DoxyNote}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{classGlutWindow_ab0b63156df7c1e5f9818a2e32b5d79df}{\index{Glut\-Window@{Glut\-Window}!Glut\-Window@{Glut\-Window}}
\index{Glut\-Window@{Glut\-Window}!GlutWindow@{Glut\-Window}}
\subsubsection[{Glut\-Window}]{\setlength{\rightskip}{0pt plus 5cm}Glut\-Window\-::\-Glut\-Window (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{title, }
\item[{int}]{width = {\ttfamily 800}, }
\item[{int}]{height = {\ttfamily 800}}
\end{DoxyParamCaption}
)}}\label{classGlutWindow_ab0b63156df7c1e5f9818a2e32b5d79df}
Basic constructor \hypertarget{classGlutWindow_ab455bdfdacdc6881f4583fccdd5bc56d}{\index{Glut\-Window@{Glut\-Window}!$\sim$\-Glut\-Window@{$\sim$\-Glut\-Window}}
\index{$\sim$\-Glut\-Window@{$\sim$\-Glut\-Window}!GlutWindow@{Glut\-Window}}
\subsubsection[{$\sim$\-Glut\-Window}]{\setlength{\rightskip}{0pt plus 5cm}Glut\-Window\-::$\sim$\-Glut\-Window (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classGlutWindow_ab455bdfdacdc6881f4583fccdd5bc56d}
Basic destructor 

\subsection{Member Function Documentation}
\hypertarget{classGlutWindow_ac796d05df867d9dd6fa060df027f604f}{\index{Glut\-Window@{Glut\-Window}!\-\_\-display@{\-\_\-display}}
\index{\-\_\-display@{\-\_\-display}!GlutWindow@{Glut\-Window}}
\subsubsection[{\-\_\-display}]{\setlength{\rightskip}{0pt plus 5cm}static void Glut\-Window\-::\-\_\-display (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [protected]}}}\label{classGlutWindow_ac796d05df867d9dd6fa060df027f604f}
\hypertarget{classGlutWindow_af6e4c5d11a6511f23093cd3ff97f041b}{\index{Glut\-Window@{Glut\-Window}!\-\_\-idle@{\-\_\-idle}}
\index{\-\_\-idle@{\-\_\-idle}!GlutWindow@{Glut\-Window}}
\subsubsection[{\-\_\-idle}]{\setlength{\rightskip}{0pt plus 5cm}static void Glut\-Window\-::\-\_\-idle (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [protected]}}}\label{classGlutWindow_af6e4c5d11a6511f23093cd3ff97f041b}
\hypertarget{classGlutWindow_a54b7069c1e3166c70420379e360ecd8a}{\index{Glut\-Window@{Glut\-Window}!\-\_\-mouse@{\-\_\-mouse}}
\index{\-\_\-mouse@{\-\_\-mouse}!GlutWindow@{Glut\-Window}}
\subsubsection[{\-\_\-mouse}]{\setlength{\rightskip}{0pt plus 5cm}static void Glut\-Window\-::\-\_\-mouse (
\begin{DoxyParamCaption}
\item[{int}]{button, }
\item[{int}]{state, }
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [protected]}}}\label{classGlutWindow_a54b7069c1e3166c70420379e360ecd8a}
\hypertarget{classGlutWindow_ad94a757c75f4e218c8035e0c78768f5c}{\index{Glut\-Window@{Glut\-Window}!\-\_\-mouse\-Motion@{\-\_\-mouse\-Motion}}
\index{\-\_\-mouse\-Motion@{\-\_\-mouse\-Motion}!GlutWindow@{Glut\-Window}}
\subsubsection[{\-\_\-mouse\-Motion}]{\setlength{\rightskip}{0pt plus 5cm}static void Glut\-Window\-::\-\_\-mouse\-Motion (
\begin{DoxyParamCaption}
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [protected]}}}\label{classGlutWindow_ad94a757c75f4e218c8035e0c78768f5c}
\hypertarget{classGlutWindow_a5363e917423c0a2c4feceb399e820b3a}{\index{Glut\-Window@{Glut\-Window}!\-\_\-process\-Normal\-Keys@{\-\_\-process\-Normal\-Keys}}
\index{\-\_\-process\-Normal\-Keys@{\-\_\-process\-Normal\-Keys}!GlutWindow@{Glut\-Window}}
\subsubsection[{\-\_\-process\-Normal\-Keys}]{\setlength{\rightskip}{0pt plus 5cm}static void Glut\-Window\-::\-\_\-process\-Normal\-Keys (
\begin{DoxyParamCaption}
\item[{unsigned char}]{key, }
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [protected]}}}\label{classGlutWindow_a5363e917423c0a2c4feceb399e820b3a}
\hypertarget{classGlutWindow_aeaad8eda6ec611b3d9d024b4ab1b4e59}{\index{Glut\-Window@{Glut\-Window}!\-\_\-process\-Special\-Keys@{\-\_\-process\-Special\-Keys}}
\index{\-\_\-process\-Special\-Keys@{\-\_\-process\-Special\-Keys}!GlutWindow@{Glut\-Window}}
\subsubsection[{\-\_\-process\-Special\-Keys}]{\setlength{\rightskip}{0pt plus 5cm}static void Glut\-Window\-::\-\_\-process\-Special\-Keys (
\begin{DoxyParamCaption}
\item[{int}]{key, }
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [protected]}}}\label{classGlutWindow_aeaad8eda6ec611b3d9d024b4ab1b4e59}
\hypertarget{classGlutWindow_a408b17675806b4fc35affd449379d63d}{\index{Glut\-Window@{Glut\-Window}!\-\_\-reshape@{\-\_\-reshape}}
\index{\-\_\-reshape@{\-\_\-reshape}!GlutWindow@{Glut\-Window}}
\subsubsection[{\-\_\-reshape}]{\setlength{\rightskip}{0pt plus 5cm}static void Glut\-Window\-::\-\_\-reshape (
\begin{DoxyParamCaption}
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}, {\ttfamily [protected]}}}\label{classGlutWindow_a408b17675806b4fc35affd449379d63d}
These are static member functions that provide an interface to the glut callbacks. The glut callbacks require static functions.

These functions call the appropriate virtual functions \hypertarget{classGlutWindow_a4d9dcef6d959efc27c1dc88666623638}{\index{Glut\-Window@{Glut\-Window}!deg\-To\-Rad@{deg\-To\-Rad}}
\index{deg\-To\-Rad@{deg\-To\-Rad}!GlutWindow@{Glut\-Window}}
\subsubsection[{deg\-To\-Rad}]{\setlength{\rightskip}{0pt plus 5cm}double Glut\-Window\-::deg\-To\-Rad (
\begin{DoxyParamCaption}
\item[{const double \&}]{angle}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [protected]}}}\label{classGlutWindow_a4d9dcef6d959efc27c1dc88666623638}
\hypertarget{classGlutWindow_aba047e0dfd1d45366f509c48c8570118}{\index{Glut\-Window@{Glut\-Window}!display@{display}}
\index{display@{display}!GlutWindow@{Glut\-Window}}
\subsubsection[{display}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Glut\-Window\-::display (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{classGlutWindow_aba047e0dfd1d45366f509c48c8570118}
This will setup the camera and then call draw(). 

Implemented in \hyperlink{classGlutWindow2d_a5b3d71abc58e5c023e276c61d2ab1bed}{Glut\-Window2d}.

\hypertarget{classGlutWindow_a1b2dadf84f02a168dd648406ad1f7083}{\index{Glut\-Window@{Glut\-Window}!draw\-Text@{draw\-Text}}
\index{draw\-Text@{draw\-Text}!GlutWindow@{Glut\-Window}}
\subsubsection[{draw\-Text}]{\setlength{\rightskip}{0pt plus 5cm}void Glut\-Window\-::draw\-Text (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{txt, }
\item[{float}]{x, }
\item[{float}]{y, }
\item[{float}]{r, }
\item[{float}]{g, }
\item[{float}]{b, }
\item[{void $\ast$}]{font}
\end{DoxyParamCaption}
)}}\label{classGlutWindow_a1b2dadf84f02a168dd648406ad1f7083}
This will draw the given string to the screen at the location given by x,y-\/ (0,0 is the bottom left of the window, 1,1 is the top right). the color defaults to a gray \hypertarget{classGlutWindow_aaf01d85518073700155b5d27be550562}{\index{Glut\-Window@{Glut\-Window}!get\-Button@{get\-Button}}
\index{get\-Button@{get\-Button}!GlutWindow@{Glut\-Window}}
\subsubsection[{get\-Button}]{\setlength{\rightskip}{0pt plus 5cm}int Glut\-Window\-::get\-Button (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classGlutWindow_aaf01d85518073700155b5d27be550562}
returns the status of the button \hypertarget{classGlutWindow_afaf9674c82cc7eaf0bf58da7d8f33117}{\index{Glut\-Window@{Glut\-Window}!get\-Height@{get\-Height}}
\index{get\-Height@{get\-Height}!GlutWindow@{Glut\-Window}}
\subsubsection[{get\-Height}]{\setlength{\rightskip}{0pt plus 5cm}int Glut\-Window\-::get\-Height (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classGlutWindow_afaf9674c82cc7eaf0bf58da7d8f33117}
This returns the height of the glut window \hypertarget{classGlutWindow_af128e26f20cd2fafcb7dba4d95b5dd55}{\index{Glut\-Window@{Glut\-Window}!get\-Width@{get\-Width}}
\index{get\-Width@{get\-Width}!GlutWindow@{Glut\-Window}}
\subsubsection[{get\-Width}]{\setlength{\rightskip}{0pt plus 5cm}int Glut\-Window\-::get\-Width (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}}\label{classGlutWindow_af128e26f20cd2fafcb7dba4d95b5dd55}
This returns the width of the glut window \hypertarget{classGlutWindow_a924b68595d0850716b063004a62c73d8}{\index{Glut\-Window@{Glut\-Window}!idle@{idle}}
\index{idle@{idle}!GlutWindow@{Glut\-Window}}
\subsubsection[{idle}]{\setlength{\rightskip}{0pt plus 5cm}void Glut\-Window\-::idle (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classGlutWindow_a924b68595d0850716b063004a62c73d8}
Function that is called when glut is in an \char`\"{}idle state\char`\"{} \hypertarget{classGlutWindow_a0f7f708407ab77da86ee3b3dd6a69952}{\index{Glut\-Window@{Glut\-Window}!init@{init}}
\index{init@{init}!GlutWindow@{Glut\-Window}}
\subsubsection[{init}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Glut\-Window\-::init (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}, {\ttfamily [pure virtual]}}}\label{classGlutWindow_a0f7f708407ab77da86ee3b3dd6a69952}
Any initialization specific to any inherited incarnation 

Implemented in \hyperlink{classGlutWindow2d_aa278ed2f2207a413f8b2baa13cdad98e}{Glut\-Window2d}.

\hypertarget{classGlutWindow_a6d6c4811aef47c577a6439e0ca33105b}{\index{Glut\-Window@{Glut\-Window}!init\-Function\-Ptrs@{init\-Function\-Ptrs}}
\index{init\-Function\-Ptrs@{init\-Function\-Ptrs}!GlutWindow@{Glut\-Window}}
\subsubsection[{init\-Function\-Ptrs}]{\setlength{\rightskip}{0pt plus 5cm}void Glut\-Window\-::init\-Function\-Ptrs (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [protected]}}}\label{classGlutWindow_a6d6c4811aef47c577a6439e0ca33105b}
Initializes all of the Glut Function pointers \hypertarget{classGlutWindow_ae3474fbb94e21892fd4cc302eac74c28}{\index{Glut\-Window@{Glut\-Window}!mouse@{mouse}}
\index{mouse@{mouse}!GlutWindow@{Glut\-Window}}
\subsubsection[{mouse}]{\setlength{\rightskip}{0pt plus 5cm}void Glut\-Window\-::mouse (
\begin{DoxyParamCaption}
\item[{int}]{button, }
\item[{int}]{state, }
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classGlutWindow_ae3474fbb94e21892fd4cc302eac74c28}
This is used in conjunction with mouse\-Motion to provide the camera movement.

If you would like to perform other operations with the mouse, override this function, you may want to consider calling Glut\-\_\-\-Window\-::mouse() in that routine to maintain the mouse interface. 
\begin{DoxyParams}{Parameters}
{\em button} & The button that was pressed \\
\hline
{\em x} & The x location of the cursor when the button was pressed \\
\hline
{\em y} & The y location of the cursor when the button was pressed\\
\hline
\end{DoxyParams}
This is used in conjunction with mouse\-Motion to provide the camera movement. Moving the mouse with the left button down rotates the camera around a fixed point (specified by view\-X, view\-Y, view\-Z). Moving the mouse with the right button down zooms the camera in and out

If you would like to perform other operations with the mouse, override this function, you may want to consider calling Glut\-\_\-\-Window\-::mouse() in that routine to maintain the mouse interface. 
\begin{DoxyParams}{Parameters}
{\em button} & The button that was pressed \\
\hline
{\em x} & The x location of the cursor when the button was pressed \\
\hline
{\em y} & The y location of the cursor when the button was pressed \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classGlutWindow2d_a93fd5a957fcdaf5426c3140be2a8702a}{Glut\-Window2d}.

\hypertarget{classGlutWindow_af396cb89a1ab01b37ec5430a5dbf831a}{\index{Glut\-Window@{Glut\-Window}!mouse\-Motion@{mouse\-Motion}}
\index{mouse\-Motion@{mouse\-Motion}!GlutWindow@{Glut\-Window}}
\subsubsection[{mouse\-Motion}]{\setlength{\rightskip}{0pt plus 5cm}void Glut\-Window\-::mouse\-Motion (
\begin{DoxyParamCaption}
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classGlutWindow_af396cb89a1ab01b37ec5430a5dbf831a}
This routine is called whenever a mouse movement event has occured. If you are overriding it, consider calling Glut\-\_\-\-Window\-::mouse\-\_\-motion() in your descendant classes, to maintain the mouse interface 
\begin{DoxyParams}{Parameters}
{\em x} & The x location of the mouse \\
\hline
{\em y} & The y location of the mouse \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classGlutWindow2d_a99c1629278724cf8a0c7d0fa4b744daa}{Glut\-Window2d}.

\hypertarget{classGlutWindow_ae3be79d3c662e869dac97a54d40ba7ab}{\index{Glut\-Window@{Glut\-Window}!position\-Camera@{position\-Camera}}
\index{position\-Camera@{position\-Camera}!GlutWindow@{Glut\-Window}}
\subsubsection[{position\-Camera}]{\setlength{\rightskip}{0pt plus 5cm}void Glut\-Window\-::position\-Camera (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classGlutWindow_ae3be79d3c662e869dac97a54d40ba7ab}
Overide this function to change the location from which the scene is rendered. It currently uses information from the mouse and the special keyboard keys to set its direction 

Reimplemented in \hyperlink{classGlutWindow2d_a533c072b7ff6309cc23c883d1fcc4716}{Glut\-Window2d}.

\hypertarget{classGlutWindow_afc5d52a574d4e83d2133834671fcbc98}{\index{Glut\-Window@{Glut\-Window}!process\-Normal\-Keys@{process\-Normal\-Keys}}
\index{process\-Normal\-Keys@{process\-Normal\-Keys}!GlutWindow@{Glut\-Window}}
\subsubsection[{process\-Normal\-Keys}]{\setlength{\rightskip}{0pt plus 5cm}void Glut\-Window\-::process\-Normal\-Keys (
\begin{DoxyParamCaption}
\item[{unsigned char}]{key, }
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classGlutWindow_afc5d52a574d4e83d2133834671fcbc98}
This function is called when an ascii key is pressed. 
\begin{DoxyParams}{Parameters}
{\em key} & The key that was pressed \\
\hline
{\em x} & The x location of the cursor when the key was pressed \\
\hline
{\em y} & The y location of the cursor when the key was pressed \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classParticlePlot_a1574af7fc120862bbc68aaf3b14ec23b}{Particle\-Plot}, and \hyperlink{classGlutWindow2d_a863b7fcf1b727b5bf3b91d6b9feb3fff}{Glut\-Window2d}.

\hypertarget{classGlutWindow_a59ba82a5e017ef79f06318202b5485b5}{\index{Glut\-Window@{Glut\-Window}!process\-Special\-Keys@{process\-Special\-Keys}}
\index{process\-Special\-Keys@{process\-Special\-Keys}!GlutWindow@{Glut\-Window}}
\subsubsection[{process\-Special\-Keys}]{\setlength{\rightskip}{0pt plus 5cm}void Glut\-Window\-::process\-Special\-Keys (
\begin{DoxyParamCaption}
\item[{int}]{key, }
\item[{int}]{x, }
\item[{int}]{y}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classGlutWindow_a59ba82a5e017ef79f06318202b5485b5}
This function is used to perform actions when one of the non-\/ascii keys are presed.

If you would like to perform other options with the special keys, then when overriding this function, you may want to consider calling Glut\-Window\-::process\-Special\-Keys(key, x, y) in the overridden function to maintain the same base functionality.


\begin{DoxyParams}{Parameters}
{\em key} & The key that was pressed \\
\hline
{\em x} & The x location of the cursor when the key was pressed \\
\hline
{\em y} & The y location of the cursor when the key was pressed\\
\hline
\end{DoxyParams}
This function is used to perform actions when one of the non-\/ascii keys are presed. In the base class, the arrow keys are used to move the center of the field of view around in the plane, while P\-A\-G\-E\-\_\-\-U\-P \& P\-A\-G\-E\-\_\-\-D\-O\-W\-N are used to change the Z value of the center of view.

If you would like to perform other options with the special keys, then when overriding this function, you may want to consider calling Glut\-Window\-::process\-Special\-Keys(key, x, y) in the overridden function to maintain the same base functionality.


\begin{DoxyParams}{Parameters}
{\em key} & The key that was pressed \\
\hline
{\em x} & The x location of the cursor when the key was pressed \\
\hline
{\em y} & The y location of the cursor when the key was pressed \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{classGlutWindow2d_aa1a1fd94688e10b7ac75770a12e965a3}{Glut\-Window2d}.

\hypertarget{classGlutWindow_af67ca41521f5dea7511fa931a7f8715d}{\index{Glut\-Window@{Glut\-Window}!reshape@{reshape}}
\index{reshape@{reshape}!GlutWindow@{Glut\-Window}}
\subsubsection[{reshape}]{\setlength{\rightskip}{0pt plus 5cm}virtual void Glut\-Window\-::reshape (
\begin{DoxyParamCaption}
\item[{int}]{w, }
\item[{int}]{h}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [pure virtual]}}}\label{classGlutWindow_af67ca41521f5dea7511fa931a7f8715d}
This performs generic graphics matrix setup operations, and will be called if the user resizes the window 
\begin{DoxyParams}{Parameters}
{\em w} & Width of the window \\
\hline
{\em h} & Height of the window \\
\hline
\end{DoxyParams}


Implemented in \hyperlink{classGlutWindow2d_af6a63ef0cbbd64aa5a7ed7694d07d441}{Glut\-Window2d}.

\hypertarget{classGlutWindow_a7d5cc033eafe7ddf34830726d6748476}{\index{Glut\-Window@{Glut\-Window}!run@{run}}
\index{run@{run}!GlutWindow@{Glut\-Window}}
\subsubsection[{run}]{\setlength{\rightskip}{0pt plus 5cm}void Glut\-Window\-::run (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [virtual]}}}\label{classGlutWindow_a7d5cc033eafe7ddf34830726d6748476}
The program will not return from this function call -\/ it will start rendering the window 

\subsection{Member Data Documentation}
\hypertarget{classGlutWindow_a6576df46fa71757f3c5dc29e1a1f537f}{\index{Glut\-Window@{Glut\-Window}!button\-Down@{button\-Down}}
\index{button\-Down@{button\-Down}!GlutWindow@{Glut\-Window}}
\subsubsection[{button\-Down}]{\setlength{\rightskip}{0pt plus 5cm}int Glut\-Window\-::button\-Down\hspace{0.3cm}{\ttfamily [protected]}}}\label{classGlutWindow_a6576df46fa71757f3c5dc29e1a1f537f}
Which mouse button is pressed \hypertarget{classGlutWindow_ad103930ec412c3ba5434700c5a13365d}{\index{Glut\-Window@{Glut\-Window}!mouse\-Start\-X@{mouse\-Start\-X}}
\index{mouse\-Start\-X@{mouse\-Start\-X}!GlutWindow@{Glut\-Window}}
\subsubsection[{mouse\-Start\-X}]{\setlength{\rightskip}{0pt plus 5cm}int Glut\-Window\-::mouse\-Start\-X\hspace{0.3cm}{\ttfamily [protected]}}}\label{classGlutWindow_ad103930ec412c3ba5434700c5a13365d}
The x location of the mouse when the button is pressed \hypertarget{classGlutWindow_adfb9c7ff6bbe93d2ab188642eec970fa}{\index{Glut\-Window@{Glut\-Window}!mouse\-Start\-Y@{mouse\-Start\-Y}}
\index{mouse\-Start\-Y@{mouse\-Start\-Y}!GlutWindow@{Glut\-Window}}
\subsubsection[{mouse\-Start\-Y}]{\setlength{\rightskip}{0pt plus 5cm}int Glut\-Window\-::mouse\-Start\-Y\hspace{0.3cm}{\ttfamily [protected]}}}\label{classGlutWindow_adfb9c7ff6bbe93d2ab188642eec970fa}
The x location of the mouse when the button is pressed \hypertarget{classGlutWindow_a46eb89e01556dbf11fa52e7c8466322f}{\index{Glut\-Window@{Glut\-Window}!my\-Title@{my\-Title}}
\index{my\-Title@{my\-Title}!GlutWindow@{Glut\-Window}}
\subsubsection[{my\-Title}]{\setlength{\rightskip}{0pt plus 5cm}char$\ast$ Glut\-Window\-::my\-Title\hspace{0.3cm}{\ttfamily [protected]}}}\label{classGlutWindow_a46eb89e01556dbf11fa52e7c8466322f}
Window Title \hypertarget{classGlutWindow_adf0f176e018a5dcf3d8e1e41708f4aeb}{\index{Glut\-Window@{Glut\-Window}!my\-Window@{my\-Window}}
\index{my\-Window@{my\-Window}!GlutWindow@{Glut\-Window}}
\subsubsection[{my\-Window}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Glut\-Window} $\ast$ Glut\-Window\-::my\-Window\hspace{0.3cm}{\ttfamily [static]}, {\ttfamily [protected]}}}\label{classGlutWindow_adf0f176e018a5dcf3d8e1e41708f4aeb}
A static pointer to the glut window, this is used in the static member functions so that they can call the appropriate class member functions. \hypertarget{classGlutWindow_a83cf010b6754dc7a0516bd63f5bbf21b}{\index{Glut\-Window@{Glut\-Window}!window\-Height@{window\-Height}}
\index{window\-Height@{window\-Height}!GlutWindow@{Glut\-Window}}
\subsubsection[{window\-Height}]{\setlength{\rightskip}{0pt plus 5cm}int Glut\-Window\-::window\-Height\hspace{0.3cm}{\ttfamily [protected]}}}\label{classGlutWindow_a83cf010b6754dc7a0516bd63f5bbf21b}
Window Height \hypertarget{classGlutWindow_a80431f957c60a057e24e5d1d3b20df41}{\index{Glut\-Window@{Glut\-Window}!window\-I\-D@{window\-I\-D}}
\index{window\-I\-D@{window\-I\-D}!GlutWindow@{Glut\-Window}}
\subsubsection[{window\-I\-D}]{\setlength{\rightskip}{0pt plus 5cm}int Glut\-Window\-::window\-I\-D\hspace{0.3cm}{\ttfamily [protected]}}}\label{classGlutWindow_a80431f957c60a057e24e5d1d3b20df41}
I\-D of the window \hypertarget{classGlutWindow_af957c868ad0f2de2ad86808b37790b46}{\index{Glut\-Window@{Glut\-Window}!window\-Launched@{window\-Launched}}
\index{window\-Launched@{window\-Launched}!GlutWindow@{Glut\-Window}}
\subsubsection[{window\-Launched}]{\setlength{\rightskip}{0pt plus 5cm}bool Glut\-Window\-::window\-Launched\hspace{0.3cm}{\ttfamily [protected]}}}\label{classGlutWindow_af957c868ad0f2de2ad86808b37790b46}
\hypertarget{classGlutWindow_ae039b4813d69255b7eb38b9e196dcc64}{\index{Glut\-Window@{Glut\-Window}!window\-Width@{window\-Width}}
\index{window\-Width@{window\-Width}!GlutWindow@{Glut\-Window}}
\subsubsection[{window\-Width}]{\setlength{\rightskip}{0pt plus 5cm}int Glut\-Window\-::window\-Width\hspace{0.3cm}{\ttfamily [protected]}}}\label{classGlutWindow_ae039b4813d69255b7eb38b9e196dcc64}
Window Width 

The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
\hyperlink{GlutWindow_8h}{Glut\-Window.\-h}\item 
\hyperlink{GlutWindow_8cpp}{Glut\-Window.\-cpp}\end{DoxyCompactItemize}
