OGRE: Paging

| OGRE 14.5 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Paging
Optional Components

Render large modular structures. More...

## Classes
class | Ogre::Grid2DPageStrategy
| Page strategy which loads new pages based on a regular 2D grid. More...
class | Ogre::Grid2DPageStrategyData
| Specialisation of PageStrategyData for Grid2DPageStrategy. More...
class | Ogre::Grid3DPageStrategy
| Page strategy which loads new pages based on a regular 3D grid. More...
class | Ogre::Grid3DPageStrategyData
| Specialisation of PageStrategyData for Grid3DPageStrategy. More...
class | Ogre::Page
| Page class. More...
class | Ogre::PageContent
| Interface definition for a unit of content within a page. More...
class | Ogre::PageContentCollection
| Definition of the interface for a collection of PageContent instances. More...
class | Ogre::PageContentCollectionFactory
| Define the interface to a factory class that will create subclasses of PageContentCollection. More...
class | Ogre::PageContentFactory
| Define the interface to a factory class that will create subclasses of PageContent. More...
class | Ogre::PagedWorld
| This class represents a collection of pages which make up a world. More...
class | Ogre::PagedWorldSection
| Represents a section of the PagedWorld which uses a given PageStrategy, and which is made up of a generally localised set of Page instances. More...
class | Ogre::PagedWorldSectionFactory
| A factory class for creating types of world section. More...
class | Ogre::PageManager
| The PageManager is the entry point through which you load all PagedWorld instances, and the place where PageStrategy instances and factory classes are registered to customise the paging behaviour. More...
class | Ogre::PageProvider
| Abstract class that can be implemented by the user application to provide a way to retrieve or generate page data from a source of their choosing. More...
class | Ogre::PageStrategy
| Defines the interface to a strategy class which is responsible for deciding when Page instances are requested for addition and removal from the paging system. More...
class | Ogre::PageStrategyData
| Abstract marker class representing the data held against the PagedWorldSection which is specifically used by the PageStrategy. More...
class | Ogre::SimplePageContentCollection
| Specialisation of PageContentCollection which just provides a simple list of PageContent instances. More...
class | Ogre::SimplePageContentCollectionFactory
| Factory class for SimplePageContentCollection. More...

## Typedefs
typedef std::vector< PageContent * > | Ogre::SimplePageContentCollection::ContentList

## Enumerations
enum | Ogre::Grid2DMode { Ogre::G2D_X_Z = 0 , Ogre::G2D_X_Y = 1 , Ogre::G2D_Y_Z = 2 }
| The 2D grid mode. More...

## Functions
| Ogre::Grid3DPageStrategy::Grid3DPageStrategy (PageManager *manager)
| Ogre::Grid3DPageStrategyData::Grid3DPageStrategyData ()
| Ogre::PageStrategy::PageStrategy (const String &name, PageManager *manager)
| Ogre::PageStrategyData::PageStrategyData ()
| Ogre::SimplePageContentCollection::SimplePageContentCollection (PageContentCollectionFactory *creator)
| Ogre::SimplePageContentCollectionFactory::SimplePageContentCollectionFactory ()
| Ogre::Grid3DPageStrategy::~Grid3DPageStrategy ()
| Ogre::Grid3DPageStrategyData::~Grid3DPageStrategyData ()
virtual | Ogre::PageStrategy::~PageStrategy ()
virtual | Ogre::PageStrategyData::~PageStrategyData ()
| Ogre::SimplePageContentCollection::~SimplePageContentCollection ()
| Ogre::SimplePageContentCollectionFactory::~SimplePageContentCollectionFactory ()
void | Ogre::Grid3DPageStrategyData::calculateCell (PageID inPageID, int32 *x, int32 *y, int32 *z)
PageID | Ogre::Grid3DPageStrategyData::calculatePageID (int32 x, int32 y, int32 z)
virtual PageContent * | Ogre::SimplePageContentCollection::createContent (const String &typeName)
| Create a new PageContent within this collection.
PageStrategyData * | Ogre::Grid3DPageStrategy::createData () override
| Create a PageStrategyData instance containing the data specific to this PageStrategy.
virtual PageStrategyData * | Ogre::PageStrategy::createData ()=0
| Create a PageStrategyData instance containing the data specific to this PageStrategy.
PageContentCollection * | Ogre::SimplePageContentCollectionFactory::createInstance () override
virtual void | Ogre::SimplePageContentCollection::destroyContent (PageContent *coll)
| Destroy a PageContent within this page.
void | Ogre::Grid3DPageStrategy::destroyData (PageStrategyData *d) override
| Destroy a PageStrategyData instance containing the data specific to this PageStrategy.
virtual void | Ogre::PageStrategy::destroyData (PageStrategyData *d)=0
| Destroy a PageStrategyData instance containing the data specific to this PageStrategy.
void | Ogre::SimplePageContentCollectionFactory::destroyInstance (PageContentCollection *c) override
void | Ogre::Grid3DPageStrategyData::determineGridLocation (const Vector3 &gridpos, int32 *x, int32 *y, int32 *z)
| Convert a grid position into a row and column index.
virtual void | Ogre::PageStrategy::frameEnd (Real timeElapsed, PagedWorldSection *section)
| Called when the frame ends.
void | Ogre::SimplePageContentCollection::frameEnd (Real timeElapsed) override
| Called when the frame ends.
virtual void | Ogre::PageStrategy::frameStart (Real timeSinceLastFrame, PagedWorldSection *section)
| Called when the frame starts.
void | Ogre::SimplePageContentCollection::frameStart (Real timeSinceLastFrame) override
| Called when the frame starts.
virtual void | Ogre::Grid3DPageStrategyData::getBottomLeftGridSpace (int32 x, int32 y, int z, Vector3 &bl)
| Get the (grid space) bottom-left of a cell.
virtual int32 | Ogre::Grid3DPageStrategyData::getCellRangeMaxX () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | Ogre::Grid3DPageStrategyData::getCellRangeMaxY () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | Ogre::Grid3DPageStrategyData::getCellRangeMaxZ () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | Ogre::Grid3DPageStrategyData::getCellRangeMinX () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | Ogre::Grid3DPageStrategyData::getCellRangeMinY () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | Ogre::Grid3DPageStrategyData::getCellRangeMinZ () const
| get the index range of all cells (values outside this will be ignored)
virtual Vector3 | Ogre::Grid3DPageStrategyData::getCellSize () const
| Get the size of the cells in the grid.
virtual const ContentList & | Ogre::SimplePageContentCollection::getContentList () const
| Get const access to the list of content.
virtual void | Ogre::Grid3DPageStrategyData::getCornersGridSpace (int32 x, int32 y, int32 z, Vector3 *pEightPoints)
| Get the (grid space) corners of a cell.
virtual Real | Ogre::Grid3DPageStrategyData::getHoldRadius () const
| Get the Holding radius.
virtual Real | Ogre::Grid3DPageStrategyData::getLoadRadius () const
| Get the loading radius.
PageManager * | Ogre::PageStrategy::getManager () const
virtual void | Ogre::Grid3DPageStrategyData::getMidPointGridSpace (int32 x, int32 y, int32 z, Vector3 &mid)
const String & | Ogre::PageStrategy::getName () const
const String & | Ogre::SimplePageContentCollectionFactory::getName () const override
virtual const Vector3 & | Ogre::Grid3DPageStrategyData::getOrigin (const Vector3 &worldOrigin)
| Get the origin of the grid in world space.
PageID | Ogre::Grid3DPageStrategy::getPageID (const Vector3 &worldPos, PagedWorldSection *section) override
| Get the page ID for a given world position.
virtual PageID | Ogre::PageStrategy::getPageID (const Vector3 &worldPos, PagedWorldSection *section)=0
| Get the page ID for a given world position.
bool | Ogre::Grid3DPageStrategyData::load (StreamSerialiser &stream) override
| Load this data from a stream (returns true if successful).
virtual bool | Ogre::PageStrategyData::load (StreamSerialiser &stream)=0
| Load this data from a stream (returns true if successful).
void | Ogre::SimplePageContentCollection::load () override
| Load - will be called in main thread.
void | Ogre::Grid3DPageStrategy::notifyCamera (Camera *cam, PagedWorldSection *section) override
| Called when a camera is used for any kind of rendering.
virtual void | Ogre::PageStrategy::notifyCamera (Camera *cam, PagedWorldSection *section)
| Called when a camera is used for any kind of rendering.
void | Ogre::SimplePageContentCollection::notifyCamera (Camera *cam) override
| Notify a section of the current camera.
bool | Ogre::SimplePageContentCollection::prepare (StreamSerialiser &stream) override
| Prepare data - may be called in the background.
void | Ogre::Grid3DPageStrategyData::save (StreamSerialiser &stream) override
| Save this data to a stream.
virtual void | Ogre::PageStrategyData::save (StreamSerialiser &stream)=0
| Save this data to a stream.
void | Ogre::SimplePageContentCollection::save (StreamSerialiser &stream) override
| Save the collection to a stream.
virtual void | Ogre::Grid3DPageStrategyData::setCellRange (int32 minX, int32 minY, int32 minZ, int32 maxX, int32 maxY, int32 maxZ)
| Set the index range of all cells (values outside this will be ignored).
virtual void | Ogre::Grid3DPageStrategyData::setCellRangeMaxX (int32 maxX)
| Set the index range of all cells (values outside this will be ignored).
virtual void | Ogre::Grid3DPageStrategyData::setCellRangeMaxY (int32 maxY)
| Set the index range of all cells (values outside this will be ignored).
virtual void | Ogre::Grid3DPageStrategyData::setCellRangeMaxZ (int32 maxZ)
| get the index range of all cells (values outside this will be ignored)
virtual void | Ogre::Grid3DPageStrategyData::setCellRangeMinX (int32 minX)
| Set the index range of all cells (values outside this will be ignored).
virtual void | Ogre::Grid3DPageStrategyData::setCellRangeMinY (int32 minY)
| Set the index range of all cells (values outside this will be ignored).
virtual void | Ogre::Grid3DPageStrategyData::setCellRangeMinZ (int32 minZ)
| Set the index range of all cells (values outside this will be ignored).
virtual void | Ogre::Grid3DPageStrategyData::setCellSize (const Vector3 &sz)
| Set the size of the cells in the grid.
virtual void | Ogre::Grid3DPageStrategyData::setHoldRadius (Real sz)
| Set the Holding radius.
virtual void | Ogre::Grid3DPageStrategyData::setLoadRadius (Real sz)
| Set the loading radius.
virtual void | Ogre::Grid3DPageStrategyData::setOrigin (const Vector3 &worldOrigin)
| Set the origin of the grid in world space.
void | Ogre::SimplePageContentCollection::unload () override
| Unload - will be called in main thread.
void | Ogre::SimplePageContentCollection::unprepare () override
| Unprepare data - may be called in the background.
void | Ogre::Grid3DPageStrategy::updateDebugDisplay (Page *p, SceneNode *sn) override
| Update the contents of the passed in SceneNode to reflect the debug display of a given page.
virtual void | Ogre::PageStrategy::updateDebugDisplay (Page *p, SceneNode *sn)=0
| Update the contents of the passed in SceneNode to reflect the debug display of a given page.

## Variables
static const uint32 | Ogre::Grid3DPageStrategyData::CHUNK_ID
static const uint16 | Ogre::Grid3DPageStrategyData::CHUNK_VERSION
static String | Ogre::SimplePageContentCollectionFactory::FACTORY_NAME
static const uint32 | Ogre::SimplePageContentCollection::SUBCLASS_CHUNK_ID
static const uint16 | Ogre::SimplePageContentCollection::SUBCLASS_CHUNK_VERSION

## Detailed Description

Render large modular structures.

Some details on paging component

Some details on paging component

Some details on paging component

Some details on paging component

Some details on paging component

Some details on paging component

Some details on paging component

Some details on paging component

Some details on paging component

Some details on paging component

Some details on paging component

Some details on paging component

# File Format

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.

Paging world files have by default an extension ".world", 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 StreamSerialiser::makeIdentifier. All data will be read and written using DataStream and the StreamSerialiser class.

Data types are expressed at the lowest level exposed by the StreamSerialiser class, which is used to read / write this file.

## Chunk Definitions

  PagedWorld (Identifier 'PWLD')
  [Version 1]

  Name | Type | Description
  World Name | char* | The name of the world - should be unique
  PagedWorldSection List | Chunk List | A variable-length list of nested PagedWorldSection chunks

  PagedWorldSection (Identifier 'PWSC')
  [Version 1]

  Name | Type | Description
  World Section Name | char* | The name of the world section - should be unique within world
  Bounding box | AABB | AABB of this world section in world space
  PageStrategy name | char* | The name of the PageStrategy class this world section uses to manage pages
  Page Strategy Data | Nested Chunk | PageStrategy specific data for this world section

  PagedStrategyData (Identifier defined by subclass)
  [Version 1]

  Name | Type | Description
  PageStrategy defined | ??? | This chunk will contain data as defined by the specific PageStrategyData used by the parent PagedWorldSection

  Page (Identifier 'PAGE')
  [Version 1]

  Name | Type | Description
  Page ID | uint32 | The identifier of the page
  PageContentCollection list | Nested chunk list | 1-n nested chunks of type PageContentCollection

  PageContentCollection (Identifier 'PGCC')
  [Version 1]

  Name | Type | Description
  Factory name | char* | The name of the content collection factory
  PageContentCollectionData chunk | Nested chunk | Data required to initialise & configure the content collection

  PageContentCollectionData (Identifier defined by subclass)
  [Version 1]

  Name | Type | Description
  PageContentCollection subclass defined | ??? | This chunk will contain data as defined by the specific PageContentCollection subclass

  PageContent (Identifier 'PGCN')
  [Version 1]

  Name | Type | Description
  Factory name | char* | The name of the content factory
  PageContentData chunk | Nested chunk | Data required to initialise & configure the content

  PageContentData (Identifier defined by subclass)
  [Version 1]

  Name | Type | Description
  PageContent subclass defined | ??? | This chunk will contain data as defined by the specific PageContent subclass

## Typedef Documentation

## ◆ ContentList

typedef std::vector<PageContent*> Ogre::SimplePageContentCollection::ContentList

## Enumeration Type Documentation

## ◆ Grid2DMode

enum Ogre::Grid2DMode

The 2D grid mode.

Enumerator
G2D_X_Z | Grid is in the X/Z plane.
G2D_X_Y | Grid is in the X/Y plane.
G2D_Y_Z | Grid is in the Y/Z plane.

## Function Documentation

## ◆ Grid3DPageStrategyData()

Ogre::Grid3DPageStrategyData::Grid3DPageStrategyData | ( |  | ) |

## ◆ ~Grid3DPageStrategyData()

Ogre::Grid3DPageStrategyData::~Grid3DPageStrategyData | ( |  | ) |

## ◆ setOrigin()

virtual void Ogre::Grid3DPageStrategyData::setOrigin | ( | const Vector3 & | worldOrigin | ) |
| virtual

Set the origin of the grid in world space.

## ◆ getOrigin()

virtual const Vector3 & Ogre::Grid3DPageStrategyData::getOrigin | ( | const Vector3 & | worldOrigin | ) |
| inlinevirtual

Get the origin of the grid in world space.

## ◆ setCellSize()

virtual void Ogre::Grid3DPageStrategyData::setCellSize | ( | const Vector3 & | sz | ) |
| virtual

Set the size of the cells in the grid.

## ◆ getCellSize()

virtual Vector3 Ogre::Grid3DPageStrategyData::getCellSize | ( |  | ) | const
| inlinevirtual

Get the size of the cells in the grid.

## ◆ setLoadRadius()

virtual void Ogre::Grid3DPageStrategyData::setLoadRadius | ( | Real | sz | ) |
| virtual

Set the loading radius.

## ◆ getLoadRadius()

virtual Real Ogre::Grid3DPageStrategyData::getLoadRadius | ( |  | ) | const
| inlinevirtual

Get the loading radius.

## ◆ setHoldRadius()

virtual void Ogre::Grid3DPageStrategyData::setHoldRadius | ( | Real | sz | ) |
| virtual

Set the Holding radius.

## ◆ getHoldRadius()

virtual Real Ogre::Grid3DPageStrategyData::getHoldRadius | ( |  | ) | const
| inlinevirtual

Get the Holding radius.

## ◆ setCellRange()

virtual void Ogre::Grid3DPageStrategyData::setCellRange | ( | int32 | minX,
|  | int32 | minY,
|  | int32 | minZ,
|  | int32 | maxX,
|  | int32 | maxY,
|  | int32 | maxZ )
| virtual

Set the index range of all cells (values outside this will be ignored).

## ◆ setCellRangeMinX()

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMinX | ( | int32 | minX | ) |
| virtual

Set the index range of all cells (values outside this will be ignored).

## ◆ setCellRangeMinY()

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMinY | ( | int32 | minY | ) |
| virtual

Set the index range of all cells (values outside this will be ignored).

## ◆ setCellRangeMinZ()

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMinZ | ( | int32 | minZ | ) |
| virtual

Set the index range of all cells (values outside this will be ignored).

## ◆ setCellRangeMaxX()

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMaxX | ( | int32 | maxX | ) |
| virtual

Set the index range of all cells (values outside this will be ignored).

## ◆ setCellRangeMaxY()

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMaxY | ( | int32 | maxY | ) |
| virtual

Set the index range of all cells (values outside this will be ignored).

## ◆ setCellRangeMaxZ()

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMaxZ | ( | int32 | maxZ | ) |
| virtual

get the index range of all cells (values outside this will be ignored)

## ◆ getCellRangeMinX()

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMinX | ( |  | ) | const
| inlinevirtual

get the index range of all cells (values outside this will be ignored)

## ◆ getCellRangeMinY()

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMinY | ( |  | ) | const
| inlinevirtual

get the index range of all cells (values outside this will be ignored)

## ◆ getCellRangeMinZ()

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMinZ | ( |  | ) | const
| inlinevirtual

get the index range of all cells (values outside this will be ignored)

## ◆ getCellRangeMaxX()

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMaxX | ( |  | ) | const
| inlinevirtual

get the index range of all cells (values outside this will be ignored)

## ◆ getCellRangeMaxY()

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMaxY | ( |  | ) | const
| inlinevirtual

get the index range of all cells (values outside this will be ignored)

## ◆ getCellRangeMaxZ()

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMaxZ | ( |  | ) | const
| inlinevirtual

get the index range of all cells (values outside this will be ignored)

## ◆ load() [1/3]

bool Ogre::Grid3DPageStrategyData::load | ( | StreamSerialiser & | stream | ) |
| overridevirtual

Load this data from a stream (returns true if successful).

Implements Ogre::PageStrategyData.

## ◆ save() [1/3]

void Ogre::Grid3DPageStrategyData::save | ( | StreamSerialiser & | stream | ) |
| overridevirtual

Save this data to a stream.

Implements Ogre::PageStrategyData.

## ◆ getMidPointGridSpace()

virtual void Ogre::Grid3DPageStrategyData::getMidPointGridSpace | ( | int32 | x,
|  | int32 | y,
|  | int32 | z,
|  | Vector3 & | mid )
| virtual

## ◆ getBottomLeftGridSpace()

virtual void Ogre::Grid3DPageStrategyData::getBottomLeftGridSpace | ( | int32 | x,
|  | int32 | y,
|  | int | z,
|  | Vector3 & | bl )
| virtual

Get the (grid space) bottom-left of a cell.

## ◆ getCornersGridSpace()

virtual void Ogre::Grid3DPageStrategyData::getCornersGridSpace | ( | int32 | x,
|  | int32 | y,
|  | int32 | z,
|  | Vector3 * | pEightPoints )
| virtual

Get the (grid space) corners of a cell.

Populates pEightPoints in anticlockwise order from the bottom left point.

## ◆ determineGridLocation()

void Ogre::Grid3DPageStrategyData::determineGridLocation | ( | const Vector3 & | gridpos,
|  | int32 * | x,
|  | int32 * | y,
|  | int32 * | z )

Convert a grid position into a row and column index.

## ◆ calculatePageID()

PageID Ogre::Grid3DPageStrategyData::calculatePageID | ( | int32 | x,
|  | int32 | y,
|  | int32 | z )

## ◆ calculateCell()

void Ogre::Grid3DPageStrategyData::calculateCell | ( | PageID | inPageID,
|  | int32 * | x,
|  | int32 * | y,
|  | int32 * | z )

## ◆ Grid3DPageStrategy()

Ogre::Grid3DPageStrategy::Grid3DPageStrategy | ( | PageManager * | manager | ) |

## ◆ ~Grid3DPageStrategy()

Ogre::Grid3DPageStrategy::~Grid3DPageStrategy | ( |  | ) |

## ◆ notifyCamera() [1/3]

void Ogre::Grid3DPageStrategy::notifyCamera | ( | Camera * | cam,
|  | PagedWorldSection * | section )
| overridevirtual

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

This is probably the primary way in which the strategy will request new pages.

Parameters

  cam | 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.
  section |

Reimplemented from Ogre::PageStrategy.

## ◆ createData() [1/2]

PageStrategyData * Ogre::Grid3DPageStrategy::createData | ( |  | ) |
| overridevirtual

Create a PageStrategyData instance containing the data specific to this PageStrategy.

  This data will be held by a given PagedWorldSection and the structure of the data will be specific to the PageStrategy subclass.

Implements Ogre::PageStrategy.

## ◆ destroyData() [1/2]

void Ogre::Grid3DPageStrategy::destroyData | ( | PageStrategyData * | d | ) |
| overridevirtual

Destroy a PageStrategyData instance containing the data specific to this PageStrategy.

  This data will be held by a given PagedWorldSection and the structure of the data will be specific to the PageStrategy subclass.

Implements Ogre::PageStrategy.

## ◆ updateDebugDisplay() [1/2]

void Ogre::Grid3DPageStrategy::updateDebugDisplay | ( | Page * | p,
|  | SceneNode * | sn )
| overridevirtual

Update the contents of the passed in SceneNode to reflect the debug display of a given page.

The PageStrategy is to have complete control of the contents of this SceneNode, it must not be altered / added to by others.

Implements Ogre::PageStrategy.

## ◆ getPageID() [1/2]

PageID Ogre::Grid3DPageStrategy::getPageID | ( | const Vector3 & | worldPos,
|  | PagedWorldSection * | section )
| overridevirtual

Get the page ID for a given world position.

Returns
  The page ID

Implements Ogre::PageStrategy.

## ◆ PageStrategyData()

Ogre::PageStrategyData::PageStrategyData | ( |  | ) |
| inline

## ◆ ~PageStrategyData()

virtual Ogre::PageStrategyData::~PageStrategyData | ( |  | ) |
| inlinevirtual

## ◆ load() [2/3]

virtual bool Ogre::PageStrategyData::load | ( | StreamSerialiser & | stream | ) |
| pure virtual

Load this data from a stream (returns true if successful).

Implemented in Ogre::Grid2DPageStrategyData, and Ogre::Grid3DPageStrategyData.

## ◆ save() [2/3]

virtual void Ogre::PageStrategyData::save | ( | StreamSerialiser & | stream | ) |
| pure virtual

Save this data to a stream.

Implemented in Ogre::Grid2DPageStrategyData, and Ogre::Grid3DPageStrategyData.

## ◆ PageStrategy()

Ogre::PageStrategy::PageStrategy | ( | const String & | name,
|  | PageManager * | manager )
| inline

## ◆ ~PageStrategy()

virtual Ogre::PageStrategy::~PageStrategy | ( |  | ) |
| inlinevirtual

## ◆ getName() [1/2]

const String & Ogre::PageStrategy::getName | ( |  | ) | const
| inline

## ◆ getManager()

PageManager * Ogre::PageStrategy::getManager | ( |  | ) | const
| inline

## ◆ frameStart() [1/2]

virtual void Ogre::PageStrategy::frameStart | ( | Real | timeSinceLastFrame,
|  | PagedWorldSection * | section )
| inlinevirtual

Called when the frame starts.

## ◆ frameEnd() [1/2]

virtual void Ogre::PageStrategy::frameEnd | ( | Real | timeElapsed,
|  | PagedWorldSection * | section )
| inlinevirtual

Called when the frame ends.

## ◆ notifyCamera() [2/3]

virtual void Ogre::PageStrategy::notifyCamera | ( | Camera * | cam,
|  | PagedWorldSection * | section )
| inlinevirtual

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

This is probably the primary way in which the strategy will request new pages.

Parameters

  cam | 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.
  section |

Reimplemented in Ogre::Grid2DPageStrategy, and Ogre::Grid3DPageStrategy.

## ◆ createData() [2/2]

virtual PageStrategyData * Ogre::PageStrategy::createData | ( |  | ) |
| pure virtual

Create a PageStrategyData instance containing the data specific to this PageStrategy.

  This data will be held by a given PagedWorldSection and the structure of the data will be specific to the PageStrategy subclass.

Implemented in Ogre::Grid2DPageStrategy, and Ogre::Grid3DPageStrategy.

References OGRE_NODISCARD.

## ◆ destroyData() [2/2]

virtual void Ogre::PageStrategy::destroyData | ( | PageStrategyData * | d | ) |
| pure virtual

Destroy a PageStrategyData instance containing the data specific to this PageStrategy.

  This data will be held by a given PagedWorldSection and the structure of the data will be specific to the PageStrategy subclass.

Implemented in Ogre::Grid2DPageStrategy, and Ogre::Grid3DPageStrategy.

References destroyData().

Referenced by destroyData().

## ◆ updateDebugDisplay() [2/2]

virtual void Ogre::PageStrategy::updateDebugDisplay | ( | Page * | p,
|  | SceneNode * | sn )
| pure virtual

Update the contents of the passed in SceneNode to reflect the debug display of a given page.

The PageStrategy is to have complete control of the contents of this SceneNode, it must not be altered / added to by others.

Implemented in Ogre::Grid2DPageStrategy, and Ogre::Grid3DPageStrategy.

References updateDebugDisplay().

Referenced by updateDebugDisplay().

## ◆ getPageID() [2/2]

virtual PageID Ogre::PageStrategy::getPageID | ( | const Vector3 & | worldPos,
|  | PagedWorldSection * | section )
| pure virtual

Get the page ID for a given world position.

Returns
  The page ID

Implemented in Ogre::Grid2DPageStrategy, and Ogre::Grid3DPageStrategy.

References getPageID().

Referenced by getPageID().

## ◆ SimplePageContentCollection()

Ogre::SimplePageContentCollection::SimplePageContentCollection | ( | PageContentCollectionFactory * | creator | ) |

## ◆ ~SimplePageContentCollection()

Ogre::SimplePageContentCollection::~SimplePageContentCollection | ( |  | ) |

## ◆ createContent()

virtual PageContent * Ogre::SimplePageContentCollection::createContent | ( | const String & | typeName | ) |
| virtual

Create a new PageContent within this collection.

Parameters

  typeName | The name of the type of content (see PageManager::getContentFactories)

## ◆ destroyContent()

virtual void Ogre::SimplePageContentCollection::destroyContent | ( | PageContent * | coll | ) |
| virtual

Destroy a PageContent within this page.

This is equivalent to calling detachContent and PageManager::destroyContent.

## ◆ getContentList()

virtual const ContentList & Ogre::SimplePageContentCollection::getContentList | ( |  | ) | const
| inlinevirtual

Get const access to the list of content.

## ◆ save() [3/3]

void Ogre::SimplePageContentCollection::save | ( | StreamSerialiser & | stream | ) |
| overridevirtual

Save the collection to a stream.

Implements Ogre::PageContentCollection.

## ◆ frameStart() [2/2]

void Ogre::SimplePageContentCollection::frameStart | ( | Real | timeSinceLastFrame | ) |
| overridevirtual

Called when the frame starts.

Implements Ogre::PageContentCollection.

## ◆ frameEnd() [2/2]

void Ogre::SimplePageContentCollection::frameEnd | ( | Real | timeElapsed | ) |
| overridevirtual

Called when the frame ends.

Implements Ogre::PageContentCollection.

## ◆ notifyCamera() [3/3]

void Ogre::SimplePageContentCollection::notifyCamera | ( | Camera * | cam | ) |
| overridevirtual

Notify a section of the current camera.

Implements Ogre::PageContentCollection.

## ◆ prepare()

bool Ogre::SimplePageContentCollection::prepare | ( | StreamSerialiser & | ser | ) |
| overridevirtual

Prepare data - may be called in the background.

Implements Ogre::PageContentCollection.

## ◆ load() [3/3]

void Ogre::SimplePageContentCollection::load | ( |  | ) |
| overridevirtual

Load - will be called in main thread.

Implements Ogre::PageContentCollection.

## ◆ unload()

void Ogre::SimplePageContentCollection::unload | ( |  | ) |
| overridevirtual

Unload - will be called in main thread.

Implements Ogre::PageContentCollection.

## ◆ unprepare()

void Ogre::SimplePageContentCollection::unprepare | ( |  | ) |
| overridevirtual

Unprepare data - may be called in the background.

Implements Ogre::PageContentCollection.

## ◆ SimplePageContentCollectionFactory()

Ogre::SimplePageContentCollectionFactory::SimplePageContentCollectionFactory | ( |  | ) |
| inline

## ◆ ~SimplePageContentCollectionFactory()

Ogre::SimplePageContentCollectionFactory::~SimplePageContentCollectionFactory | ( |  | ) |
| inline

## ◆ getName() [2/2]

const String & Ogre::SimplePageContentCollectionFactory::getName | ( |  | ) | const
| inlineoverridevirtual

Implements Ogre::PageContentCollectionFactory.

References FACTORY_NAME.

## ◆ createInstance()

PageContentCollection * Ogre::SimplePageContentCollectionFactory::createInstance | ( |  | ) |
| inlineoverridevirtual

Implements Ogre::PageContentCollectionFactory.

References OGRE_NODISCARD.

## ◆ destroyInstance()

void Ogre::SimplePageContentCollectionFactory::destroyInstance | ( | PageContentCollection * | c | ) |
| inlineoverridevirtual

Implements Ogre::PageContentCollectionFactory.

## Variable Documentation

## ◆ CHUNK_ID

const uint32 Ogre::Grid3DPageStrategyData::CHUNK_ID
| static

## ◆ CHUNK_VERSION

const uint16 Ogre::Grid3DPageStrategyData::CHUNK_VERSION
| static

## ◆ SUBCLASS_CHUNK_ID

const uint32 Ogre::SimplePageContentCollection::SUBCLASS_CHUNK_ID
| static

## ◆ SUBCLASS_CHUNK_VERSION

const uint16 Ogre::SimplePageContentCollection::SUBCLASS_CHUNK_VERSION
| static

## ◆ FACTORY_NAME

String Ogre::SimplePageContentCollectionFactory::FACTORY_NAME
| static

Referenced by getName().