\hypertarget{class_ogre_1_1_page_strategy}{}\section{Ogre\+:\+:Page\+Strategy Class Reference}
\label{class_ogre_1_1_page_strategy}\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}


Defines the interface to a strategy class which is responsible for deciding when \hyperlink{class_ogre_1_1_page}{Page} instances are requested for addition and removal from the paging system.  




{\ttfamily \#include $<$Ogre\+Page\+Strategy.\+h$>$}



Inheritance diagram for Ogre\+:\+:Page\+Strategy\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{class_ogre_1_1_page_strategy__inherit__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{class_ogre_1_1_page_strategy_a45203e73d8cf17040469d99b89148f2a}{Page\+Strategy} (const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&name, \hyperlink{class_ogre_1_1_page_manager}{Page\+Manager} $\ast$manager)
\item 
virtual \hyperlink{class_ogre_1_1_page_strategy_aadbd8fbf0c1aa1703c4d34f1011a4ff5}{$\sim$\+Page\+Strategy} ()
\item 
virtual \hyperlink{class_ogre_1_1_page_strategy_data}{Page\+Strategy\+Data} $\ast$ \hyperlink{class_ogre_1_1_page_strategy_a1f3ee75de1ece00f1d8dc5f1eb92832e}{create\+Data} () \hyperlink{_ogre_platform_8h_a11162eebee0099930c48076229cc6f04}{O\+G\+R\+E\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD}=0
\begin{DoxyCompactList}\small\item\em Create a \hyperlink{class_ogre_1_1_page_strategy_data}{Page\+Strategy\+Data} instance containing the data specific to this \hyperlink{class_ogre_1_1_page_strategy}{Page\+Strategy}. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_page_strategy_a90dd9281a8804b6332a6fa477a950186}{destroy\+Data} (\hyperlink{class_ogre_1_1_page_strategy_data}{Page\+Strategy\+Data} $\ast$d)=0
\begin{DoxyCompactList}\small\item\em Destroy a \hyperlink{class_ogre_1_1_page_strategy_data}{Page\+Strategy\+Data} instance containing the data specific to this \hyperlink{class_ogre_1_1_page_strategy}{Page\+Strategy}. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_page_strategy_a1990d8b1110ac0555e3ec18da77675b8}{frame\+End} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} time\+Elapsed, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)
\begin{DoxyCompactList}\small\item\em Called when the frame ends. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_page_strategy_adb6fc9f82a8ea955971b46c052a151af}{frame\+Start} (\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real} time\+Since\+Last\+Frame, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)
\begin{DoxyCompactList}\small\item\em Called when the frame starts. \end{DoxyCompactList}\item 
\hyperlink{class_ogre_1_1_page_manager}{Page\+Manager} $\ast$ \hyperlink{class_ogre_1_1_page_strategy_a79dc7f55274f677dac8bf64798f4bbea}{get\+Manager} () const
\item 
const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \& \hyperlink{class_ogre_1_1_page_strategy_a1b175f0b77c05ed13df9d917b71c6a31}{get\+Name} () const
\item 
virtual \hyperlink{namespace_ogre_a5126a9c9fbccbfe4c78070263098acb2}{Page\+ID} \hyperlink{class_ogre_1_1_page_strategy_a78f9813d951ab38b1ebbae6b0f807df6}{get\+Page\+ID} (const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&world\+Pos, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)=0
\begin{DoxyCompactList}\small\item\em Get the page ID for a given world position. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_page_strategy_aa3db993f4446cb811e094c8ad0ab23df}{notify\+Camera} (\hyperlink{class_ogre_1_1_camera}{Camera} $\ast$cam, \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$section)
\begin{DoxyCompactList}\small\item\em Called when a camera is used for any kind of rendering. \end{DoxyCompactList}\item 
virtual void \hyperlink{class_ogre_1_1_page_strategy_a96e254ffc49131053601b8f17e4054f8}{update\+Debug\+Display} (\hyperlink{class_ogre_1_1_page}{Page} $\ast$p, \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} $\ast$sn)=0
\begin{DoxyCompactList}\small\item\em Update the contents of the passed in \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} to reflect the debug display of a given page. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Defines the interface to a strategy class which is responsible for deciding when \hyperlink{class_ogre_1_1_page}{Page} instances are requested for addition and removal from the paging system. 

\begin{DoxyRemark}{Remarks}
The interface is deliberately light, with no specific mention of requesting new \hyperlink{class_ogre_1_1_page}{Page} instances. It is entirely up to the \hyperlink{class_ogre_1_1_page_strategy}{Page\+Strategy} to respond to the events raised on it and to call methods on other classes (such as requesting new pages). 
\end{DoxyRemark}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_ogre_1_1_page_strategy_a45203e73d8cf17040469d99b89148f2a}\label{class_ogre_1_1_page_strategy_a45203e73d8cf17040469d99b89148f2a}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!Page\+Strategy@{Page\+Strategy}}
\index{Page\+Strategy@{Page\+Strategy}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{Page\+Strategy()}{PageStrategy()}}
{\footnotesize\ttfamily Ogre\+::\+Page\+Strategy\+::\+Page\+Strategy (\begin{DoxyParamCaption}\item[{const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String} \&}]{name,  }\item[{\hyperlink{class_ogre_1_1_page_manager}{Page\+Manager} $\ast$}]{manager }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_page_strategy_aadbd8fbf0c1aa1703c4d34f1011a4ff5}\label{class_ogre_1_1_page_strategy_aadbd8fbf0c1aa1703c4d34f1011a4ff5}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!````~Page\+Strategy@{$\sim$\+Page\+Strategy}}
\index{````~Page\+Strategy@{$\sim$\+Page\+Strategy}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{$\sim$\+Page\+Strategy()}{~PageStrategy()}}
{\footnotesize\ttfamily virtual Ogre\+::\+Page\+Strategy\+::$\sim$\+Page\+Strategy (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_ogre_1_1_page_strategy_a1b175f0b77c05ed13df9d917b71c6a31}\label{class_ogre_1_1_page_strategy_a1b175f0b77c05ed13df9d917b71c6a31}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!get\+Name@{get\+Name}}
\index{get\+Name@{get\+Name}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{get\+Name()}{getName()}}
{\footnotesize\ttfamily const \hyperlink{namespace_ogre_af73bbdc8bed8a3e6fcd56bb8fa188c45}{String}\& Ogre\+::\+Page\+Strategy\+::get\+Name (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_page_strategy_a79dc7f55274f677dac8bf64798f4bbea}\label{class_ogre_1_1_page_strategy_a79dc7f55274f677dac8bf64798f4bbea}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!get\+Manager@{get\+Manager}}
\index{get\+Manager@{get\+Manager}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{get\+Manager()}{getManager()}}
{\footnotesize\ttfamily \hyperlink{class_ogre_1_1_page_manager}{Page\+Manager}$\ast$ Ogre\+::\+Page\+Strategy\+::get\+Manager (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}

\mbox{\Hypertarget{class_ogre_1_1_page_strategy_adb6fc9f82a8ea955971b46c052a151af}\label{class_ogre_1_1_page_strategy_adb6fc9f82a8ea955971b46c052a151af}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!frame\+Start@{frame\+Start}}
\index{frame\+Start@{frame\+Start}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{frame\+Start()}{frameStart()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Page\+Strategy\+::frame\+Start (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{time\+Since\+Last\+Frame,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called when the frame starts. 

\mbox{\Hypertarget{class_ogre_1_1_page_strategy_a1990d8b1110ac0555e3ec18da77675b8}\label{class_ogre_1_1_page_strategy_a1990d8b1110ac0555e3ec18da77675b8}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!frame\+End@{frame\+End}}
\index{frame\+End@{frame\+End}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{frame\+End()}{frameEnd()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Page\+Strategy\+::frame\+End (\begin{DoxyParamCaption}\item[{\hyperlink{namespace_ogre_aa3a7b6dfb905e6572d62f0dfa3d4274d}{Real}}]{time\+Elapsed,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called when the frame ends. 

\mbox{\Hypertarget{class_ogre_1_1_page_strategy_aa3db993f4446cb811e094c8ad0ab23df}\label{class_ogre_1_1_page_strategy_aa3db993f4446cb811e094c8ad0ab23df}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!notify\+Camera@{notify\+Camera}}
\index{notify\+Camera@{notify\+Camera}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{notify\+Camera()}{notifyCamera()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Page\+Strategy\+::notify\+Camera (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_camera}{Camera} $\ast$}]{cam,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [virtual]}}



Called when a camera is used for any kind of rendering. 

\begin{DoxyRemark}{Remarks}
This is probably the primary way in which the strategy will request new pages. 
\end{DoxyRemark}

\begin{DoxyParams}{Parameters}
{\em cam} & \hyperlink{class_ogre_1_1_camera}{Camera} which is being used for rendering. Class should not rely on this pointer remaining valid permanently because no notification will be given when the camera is destroyed. \\
\hline
\end{DoxyParams}


Reimplemented in \hyperlink{class_ogre_1_1_grid2_d_page_strategy_a68df585b7a321d959f4214fe0cae67c9}{Ogre\+::\+Grid2\+D\+Page\+Strategy}, and \hyperlink{class_ogre_1_1_grid3_d_page_strategy_a93731f5971fba009a64bc4e4d8ce8517}{Ogre\+::\+Grid3\+D\+Page\+Strategy}.



References O\+G\+R\+E\+\_\+\+N\+O\+D\+I\+S\+C\+A\+RD.

\mbox{\Hypertarget{class_ogre_1_1_page_strategy_a1f3ee75de1ece00f1d8dc5f1eb92832e}\label{class_ogre_1_1_page_strategy_a1f3ee75de1ece00f1d8dc5f1eb92832e}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!create\+Data@{create\+Data}}
\index{create\+Data@{create\+Data}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{create\+Data()}{createData()}}
{\footnotesize\ttfamily virtual \hyperlink{class_ogre_1_1_page_strategy_data}{Page\+Strategy\+Data}$\ast$ Ogre\+::\+Page\+Strategy\+::create\+Data (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Create a \hyperlink{class_ogre_1_1_page_strategy_data}{Page\+Strategy\+Data} instance containing the data specific to this \hyperlink{class_ogre_1_1_page_strategy}{Page\+Strategy}. 

\begin{DoxyParagraph}{}
This data will be held by a given \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} and the structure of the data will be specific to the \hyperlink{class_ogre_1_1_page_strategy}{Page\+Strategy} subclass. 
\end{DoxyParagraph}


Implemented in \hyperlink{class_ogre_1_1_grid2_d_page_strategy_a6ee233f565e279dc12da2544a52efc15}{Ogre\+::\+Grid2\+D\+Page\+Strategy}, and \hyperlink{class_ogre_1_1_grid3_d_page_strategy_a95954c4987a977e25c835bd116e63a22}{Ogre\+::\+Grid3\+D\+Page\+Strategy}.

\mbox{\Hypertarget{class_ogre_1_1_page_strategy_a90dd9281a8804b6332a6fa477a950186}\label{class_ogre_1_1_page_strategy_a90dd9281a8804b6332a6fa477a950186}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!destroy\+Data@{destroy\+Data}}
\index{destroy\+Data@{destroy\+Data}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{destroy\+Data()}{destroyData()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Page\+Strategy\+::destroy\+Data (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_page_strategy_data}{Page\+Strategy\+Data} $\ast$}]{d }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Destroy a \hyperlink{class_ogre_1_1_page_strategy_data}{Page\+Strategy\+Data} instance containing the data specific to this \hyperlink{class_ogre_1_1_page_strategy}{Page\+Strategy}. 

\begin{DoxyParagraph}{}
This data will be held by a given \hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} and the structure of the data will be specific to the \hyperlink{class_ogre_1_1_page_strategy}{Page\+Strategy} subclass. 
\end{DoxyParagraph}


Implemented in \hyperlink{class_ogre_1_1_grid2_d_page_strategy_afc81e88e7b9e9d4c1f176854989df84a}{Ogre\+::\+Grid2\+D\+Page\+Strategy}, and \hyperlink{class_ogre_1_1_grid3_d_page_strategy_ac15aee85717bf206333658917836bfd0}{Ogre\+::\+Grid3\+D\+Page\+Strategy}.

\mbox{\Hypertarget{class_ogre_1_1_page_strategy_a96e254ffc49131053601b8f17e4054f8}\label{class_ogre_1_1_page_strategy_a96e254ffc49131053601b8f17e4054f8}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!update\+Debug\+Display@{update\+Debug\+Display}}
\index{update\+Debug\+Display@{update\+Debug\+Display}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{update\+Debug\+Display()}{updateDebugDisplay()}}
{\footnotesize\ttfamily virtual void Ogre\+::\+Page\+Strategy\+::update\+Debug\+Display (\begin{DoxyParamCaption}\item[{\hyperlink{class_ogre_1_1_page}{Page} $\ast$}]{p,  }\item[{\hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} $\ast$}]{sn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Update the contents of the passed in \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node} to reflect the debug display of a given page. 

\begin{DoxyRemark}{Remarks}
The \hyperlink{class_ogre_1_1_page_strategy}{Page\+Strategy} is to have complete control of the contents of this \hyperlink{class_ogre_1_1_scene_node}{Scene\+Node}, it must not be altered / added to by others. 
\end{DoxyRemark}


Implemented in \hyperlink{class_ogre_1_1_grid2_d_page_strategy_a8a5b342c17f5009cfabf5171ea2c768a}{Ogre\+::\+Grid2\+D\+Page\+Strategy}, and \hyperlink{class_ogre_1_1_grid3_d_page_strategy_a32e80bd39ff8f3d9b9a35d5f2d1f0751}{Ogre\+::\+Grid3\+D\+Page\+Strategy}.

\mbox{\Hypertarget{class_ogre_1_1_page_strategy_a78f9813d951ab38b1ebbae6b0f807df6}\label{class_ogre_1_1_page_strategy_a78f9813d951ab38b1ebbae6b0f807df6}} 
\index{Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}!get\+Page\+ID@{get\+Page\+ID}}
\index{get\+Page\+ID@{get\+Page\+ID}!Ogre\+::\+Page\+Strategy@{Ogre\+::\+Page\+Strategy}}
\subsubsection{\texorpdfstring{get\+Page\+I\+D()}{getPageID()}}
{\footnotesize\ttfamily virtual \hyperlink{namespace_ogre_a5126a9c9fbccbfe4c78070263098acb2}{Page\+ID} Ogre\+::\+Page\+Strategy\+::get\+Page\+ID (\begin{DoxyParamCaption}\item[{const \hyperlink{class_ogre_1_1_vector3}{Vector3} \&}]{world\+Pos,  }\item[{\hyperlink{class_ogre_1_1_paged_world_section}{Paged\+World\+Section} $\ast$}]{section }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [pure virtual]}}



Get the page ID for a given world position. 

\begin{DoxyReturn}{Returns}
The page ID 
\end{DoxyReturn}


Implemented in \hyperlink{class_ogre_1_1_grid2_d_page_strategy_a2e15c4764622887355d75b5b1a8cb10e}{Ogre\+::\+Grid2\+D\+Page\+Strategy}, and \hyperlink{class_ogre_1_1_grid3_d_page_strategy_a31cb931801f78214a25733df20ad10fc}{Ogre\+::\+Grid3\+D\+Page\+Strategy}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
\hyperlink{_ogre_page_strategy_8h}{Ogre\+Page\+Strategy.\+h}\end{DoxyCompactItemize}
