\hypertarget{_ogre_page_file_formats_8h}{}\section{Ogre\+Page\+File\+Formats.\+h File Reference}
\label{_ogre_page_file_formats_8h}\index{Ogre\+Page\+File\+Formats.\+h@{Ogre\+Page\+File\+Formats.\+h}}


The paging file format is a composite one -\/ a single file / stream can contain data which is not necessarily all read by a single class.  


{\ttfamily \#include \char`\"{}Ogre\+Paging\+Prerequisites.\+h\char`\"{}}\newline


\subsection{Detailed Description}
The paging file format is a composite one -\/ a single file / stream can contain data which is not necessarily all read by a single class. 

Instead, data chunks can be read by different classes, allowing the format to be extended to different types smoothly. \begin{DoxyParagraph}{}
Paging world files have by default an extension \char`\"{}.\+world\char`\"{}, but that is not a requirement. Internally, the only thing that matters is the data chunks and their identifiers, which are 4-\/character codes embedded in a uint32 as calculated by Stream\+Serialiser\+::make\+Identifier. All data will be read and written using Data\+Stream and the Stream\+Serialiser class. 
\end{DoxyParagraph}
\begin{DoxyParagraph}{}
Data types are expressed at the lowest level exposed by the Stream\+Serialiser class, which is used to read / write this file. 
\end{DoxyParagraph}
\begin{DoxyParagraph}{}
{\bfseries Chunk Definitions} 
\end{DoxyParagraph}
\begin{DoxyParagraph}{}
{\bfseries Paged\+World (Identifier \textquotesingle{}P\+W\+LD\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
World Name &char$\ast$ &The name of the world -\/ should be unique  \\\cline{1-3}
Paged\+World\+Section List &Chunk List &A variable-\/length list of nested Paged\+World\+Section chunks  \\\cline{1-3}
\end{longtabu}

\end{DoxyParagraph}
\begin{DoxyParagraph}{}
{\bfseries Paged\+World\+Section (Identifier \textquotesingle{}P\+W\+SC\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
World Section Name &char$\ast$ &The name of the world section -\/ should be unique within world  \\\cline{1-3}
Bounding box &A\+A\+BB &A\+A\+BB of this world section in world space  \\\cline{1-3}
Page\+Strategy name &char$\ast$ &The name of the Page\+Strategy class this world section uses to manage pages  \\\cline{1-3}
Page Strategy Data &Nested Chunk &Page\+Strategy specific data for this world section  \\\cline{1-3}
\end{longtabu}

\end{DoxyParagraph}
\begin{DoxyParagraph}{}
{\bfseries Paged\+Strategy\+Data (Identifier defined by subclass)}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
Page\+Strategy defined &??? &This chunk will contain data as defined by the specific Page\+Strategy\+Data used by the parent Paged\+World\+Section  \\\cline{1-3}
\end{longtabu}

\end{DoxyParagraph}
\begin{DoxyParagraph}{}
{\bfseries Page (Identifier \textquotesingle{}P\+A\+GE\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
Page ID &uint32 &The identifier of the page  \\\cline{1-3}
Page\+Content\+Collection list &Nested chunk list &1-\/n nested chunks of type Page\+Content\+Collection  \\\cline{1-3}
\end{longtabu}

\end{DoxyParagraph}
\begin{DoxyParagraph}{}
{\bfseries Page\+Content\+Collection (Identifier \textquotesingle{}P\+G\+CC\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
Factory name &char$\ast$ &The name of the content collection factory  \\\cline{1-3}
Page\+Content\+Collection\+Data chunk &Nested chunk &Data required to initialise \& configure the content collection  \\\cline{1-3}
\end{longtabu}

\end{DoxyParagraph}
\begin{DoxyParagraph}{}
{\bfseries Page\+Content\+Collection\+Data (Identifier defined by subclass)}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
Page\+Content\+Collection subclass defined &??? &This chunk will contain data as defined by the specific Page\+Content\+Collection subclass  \\\cline{1-3}
\end{longtabu}

\end{DoxyParagraph}
\begin{DoxyParagraph}{}
{\bfseries Page\+Content (Identifier \textquotesingle{}P\+G\+CN\textquotesingle{})}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
Factory name &char$\ast$ &The name of the content factory  \\\cline{1-3}
Page\+Content\+Data chunk &Nested chunk &Data required to initialise \& configure the content  \\\cline{1-3}
\end{longtabu}

\end{DoxyParagraph}
\begin{DoxyParagraph}{}
{\bfseries Page\+Content\+Data (Identifier defined by subclass)}~\newline
\mbox{[}Version 1\mbox{]} \tabulinesep=1mm
\begin{longtabu} spread 0pt [c]{*{3}{|X[-1]}|}
\hline
{\bfseries Name} &{\bfseries Type} &{\bfseries Description}  \\\cline{1-3}
Page\+Content subclass defined &??? &This chunk will contain data as defined by the specific Page\+Content subclass  \\\cline{1-3}
\end{longtabu}

\end{DoxyParagraph}
