\hypertarget{classGameObject}{}\doxysection{Game\+Object Class Reference}
\label{classGameObject}\index{GameObject@{GameObject}}


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

\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classGameObject_a0737657696b478c7962c2a6c2f5b1bd8}{Game\+Object}} (std\+::string name)
\item 
\mbox{\hyperlink{classGameObject_ab82dfdb656f9051c0587e6593b2dda97}{$\sim$\+Game\+Object}} ()
\item 
void \mbox{\hyperlink{classGameObject_a55e8c4dff07bdf40e9eb0bda3fb17bba}{Update}} (SDL\+\_\+\+Event e, int frame, std\+::vector$<$ std\+::string $>$ broadcast\+List)
\item 
void \mbox{\hyperlink{classGameObject_a4018df48b4df0fc4b1db520fcad1ba6c}{Render}} (SDL\+\_\+\+Renderer $\ast$ren)
\item 
void \mbox{\hyperlink{classGameObject_a0d33d826d709a1e4496e568193fb9c57}{Add\+Component}} (\mbox{\hyperlink{classComponent}{Component}} $\ast$c)
\item 
void \mbox{\hyperlink{classGameObject_ae603a4ad1a0110ef90f51156cb1e7166}{Remove\+Component}} (\mbox{\hyperlink{classComponent}{Component}} $\ast$c)
\item 
const std\+::vector$<$ \mbox{\hyperlink{classComponent}{Component}} $\ast$ $>$ \mbox{\hyperlink{classGameObject_ab396480ccd35a5b6ce2f94c03738c54e}{List\+Components}} ()
\item 
std\+::string \mbox{\hyperlink{classGameObject_a74ce03d596c95cf6ebb8105c02260e7f}{Get\+Name}} ()
\end{DoxyCompactItemize}
\doxysubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classGameObject_ab5b5189fede20b8d6f9ac73934e8a724}\label{classGameObject_ab5b5189fede20b8d6f9ac73934e8a724} 
std\+::vector$<$ \mbox{\hyperlink{classComponent}{Component}} $\ast$ $>$ {\bfseries m\+\_\+components}
\item 
\Hypertarget{classGameObject_a6de57342e9d37c35b3aa918dc5cc883a}\label{classGameObject_a6de57342e9d37c35b3aa918dc5cc883a} 
std\+::string {\bfseries m\+\_\+name}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
A representation of any object in the game. Has minimal functionality on its own, holds a list of \doxylink{classComponent}{Component} objects which handle all game-\/related tasks. 

\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classGameObject_a0737657696b478c7962c2a6c2f5b1bd8}\label{classGameObject_a0737657696b478c7962c2a6c2f5b1bd8} 
\index{GameObject@{GameObject}!GameObject@{GameObject}}
\index{GameObject@{GameObject}!GameObject@{GameObject}}
\doxysubsubsection{\texorpdfstring{GameObject()}{GameObject()}}
{\footnotesize\ttfamily Game\+Object\+::\+Game\+Object (\begin{DoxyParamCaption}\item[{std\+::string}]{name }\end{DoxyParamCaption})}

Construct a new Game Object


\begin{DoxyParams}{Parameters}
{\em name} & the name of the \doxylink{classGameObject}{Game\+Object} \\
\hline
\end{DoxyParams}
\Hypertarget{classGameObject_ab82dfdb656f9051c0587e6593b2dda97}\label{classGameObject_ab82dfdb656f9051c0587e6593b2dda97} 
\index{GameObject@{GameObject}!````~GameObject@{$\sim$GameObject}}
\index{````~GameObject@{$\sim$GameObject}!GameObject@{GameObject}}
\doxysubsubsection{\texorpdfstring{$\sim$GameObject()}{\string~GameObject()}}
{\footnotesize\ttfamily Game\+Object\+::$\sim$\+Game\+Object (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Destroy the Game Object 

\doxysubsection{Member Function Documentation}
\Hypertarget{classGameObject_a0d33d826d709a1e4496e568193fb9c57}\label{classGameObject_a0d33d826d709a1e4496e568193fb9c57} 
\index{GameObject@{GameObject}!AddComponent@{AddComponent}}
\index{AddComponent@{AddComponent}!GameObject@{GameObject}}
\doxysubsubsection{\texorpdfstring{AddComponent()}{AddComponent()}}
{\footnotesize\ttfamily void Game\+Object\+::\+Add\+Component (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classComponent}{Component}} $\ast$}]{c }\end{DoxyParamCaption})}

Add a new \doxylink{classComponent}{Component} to the \doxylink{classGameObject}{Game\+Object}.


\begin{DoxyParams}{Parameters}
{\em c} & a pointer to the \doxylink{classComponent}{Component} to be added \\
\hline
\end{DoxyParams}
Here is the caller graph for this function\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{de/d1c/classGameObject_a0d33d826d709a1e4496e568193fb9c57_icgraph}
\end{center}
\end{figure}
\Hypertarget{classGameObject_a74ce03d596c95cf6ebb8105c02260e7f}\label{classGameObject_a74ce03d596c95cf6ebb8105c02260e7f} 
\index{GameObject@{GameObject}!GetName@{GetName}}
\index{GetName@{GetName}!GameObject@{GameObject}}
\doxysubsubsection{\texorpdfstring{GetName()}{GetName()}}
{\footnotesize\ttfamily std\+::string Game\+Object\+::\+Get\+Name (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Gets the name of the \doxylink{classGameObject}{Game\+Object}.

\begin{DoxyReturn}{Returns}
the name of the \doxylink{classGameObject}{Game\+Object} 
\end{DoxyReturn}
Here is the caller graph for this function\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{de/d1c/classGameObject_a74ce03d596c95cf6ebb8105c02260e7f_icgraph}
\end{center}
\end{figure}
\Hypertarget{classGameObject_ab396480ccd35a5b6ce2f94c03738c54e}\label{classGameObject_ab396480ccd35a5b6ce2f94c03738c54e} 
\index{GameObject@{GameObject}!ListComponents@{ListComponents}}
\index{ListComponents@{ListComponents}!GameObject@{GameObject}}
\doxysubsubsection{\texorpdfstring{ListComponents()}{ListComponents()}}
{\footnotesize\ttfamily const std\+::vector$<$ \mbox{\hyperlink{classComponent}{Component}} $\ast$ $>$ Game\+Object\+::\+List\+Components (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})}

Gets a list of all \doxylink{classComponent}{components } within the \doxylink{classGameObject}{Game\+Object}.

\begin{DoxyReturn}{Returns}
const std\+::vector$<$\+Component$\ast$$>$ 
\end{DoxyReturn}
Here is the caller graph for this function\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{de/d1c/classGameObject_ab396480ccd35a5b6ce2f94c03738c54e_icgraph}
\end{center}
\end{figure}
\Hypertarget{classGameObject_ae603a4ad1a0110ef90f51156cb1e7166}\label{classGameObject_ae603a4ad1a0110ef90f51156cb1e7166} 
\index{GameObject@{GameObject}!RemoveComponent@{RemoveComponent}}
\index{RemoveComponent@{RemoveComponent}!GameObject@{GameObject}}
\doxysubsubsection{\texorpdfstring{RemoveComponent()}{RemoveComponent()}}
{\footnotesize\ttfamily void Game\+Object\+::\+Remove\+Component (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classComponent}{Component}} $\ast$}]{c }\end{DoxyParamCaption})}

Remove a \doxylink{classComponent}{Component} from the \doxylink{classGameObject}{Game\+Object}.


\begin{DoxyParams}{Parameters}
{\em c} & a pointer to the \doxylink{classComponent}{Component} to be removed \\
\hline
\end{DoxyParams}
Here is the caller graph for this function\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{de/d1c/classGameObject_ae603a4ad1a0110ef90f51156cb1e7166_icgraph}
\end{center}
\end{figure}
\Hypertarget{classGameObject_a4018df48b4df0fc4b1db520fcad1ba6c}\label{classGameObject_a4018df48b4df0fc4b1db520fcad1ba6c} 
\index{GameObject@{GameObject}!Render@{Render}}
\index{Render@{Render}!GameObject@{GameObject}}
\doxysubsubsection{\texorpdfstring{Render()}{Render()}}
{\footnotesize\ttfamily void Game\+Object\+::\+Render (\begin{DoxyParamCaption}\item[{SDL\+\_\+\+Renderer $\ast$}]{ren }\end{DoxyParamCaption})}

Render all \doxylink{classComponent}{components } within the \doxylink{classGameObject}{Game\+Object}.


\begin{DoxyParams}{Parameters}
{\em ren} & the renderer to be drawn to \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxylink{classEngine_acde70aed0043e2e2091d0bb6cce8e3c1}{Engine\+::\+Render()} 

\doxylink{classComponent_ab856bdb8c4357a080d7abcf99871a573}{Component\+::\+Render()} 
\end{DoxySeeAlso}
\Hypertarget{classGameObject_a55e8c4dff07bdf40e9eb0bda3fb17bba}\label{classGameObject_a55e8c4dff07bdf40e9eb0bda3fb17bba} 
\index{GameObject@{GameObject}!Update@{Update}}
\index{Update@{Update}!GameObject@{GameObject}}
\doxysubsubsection{\texorpdfstring{Update()}{Update()}}
{\footnotesize\ttfamily void Game\+Object\+::\+Update (\begin{DoxyParamCaption}\item[{SDL\+\_\+\+Event}]{e,  }\item[{int}]{frame,  }\item[{std\+::vector$<$ std\+::string $>$}]{broadcast\+List }\end{DoxyParamCaption})}

Update all \doxylink{classComponent}{components } within the \doxylink{classGameObject}{Game\+Object}.


\begin{DoxyParams}{Parameters}
{\em e} & any user input \\
\hline
{\em frame} & the current frame \\
\hline
{\em broadcast\+List} & a list of messages for \doxylink{classComponent}{components } to talk to each other \\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\doxylink{classEngine_ac84eefe06226f430a2448306e6fd2579}{Engine\+::\+Update()} 

\doxylink{classComponent_a9c764c2a5607ef52629458d361ebf16e}{Component\+::\+Update()} 
\end{DoxySeeAlso}


The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
include/Game\+Object.\+hpp\item 
src/Game\+Object.\+cpp\end{DoxyCompactItemize}
