Ogre::PagedWorld Class Reference
Components » Paging

This class represents a collection of pages which make up a world. More...

`#include <OgrePagedWorld.h>`

Inheritance diagram for Ogre::PagedWorld:
[legend]

## Public Types

typedef map< String, PagedWorldSection * >::type | SectionMap

## Public Member Functions

| PagedWorld (const String &name, PageManager *manager)
| Constructor. More...
virtual | ~PagedWorld ()
virtual bool | _loadProceduralPage (Page *page, PagedWorldSection *section)
| Give a world the opportunity to prepare page content procedurally. More...
virtual bool | _prepareProceduralPage (Page *page, PagedWorldSection *section)
| Give a world the opportunity to prepare page content procedurally. More...
StreamSerialiser * | _readPageStream (PageID pageID, PagedWorldSection *section)
| Get a serialiser set up to read Page data for the given PageID. More...
virtual bool | _unloadProceduralPage (Page *page, PagedWorldSection *section)
| Give a world the opportunity to unload page content procedurally. More...
virtual bool | _unprepareProceduralPage (Page *page, PagedWorldSection *section)
| Give a world the opportunity to unprepare page content procedurally. More...
StreamSerialiser * | _writePageStream (PageID pageID, PagedWorldSection *section)
| Get a serialiser set up to read Page data for the given PageID. More...
PagedWorldSection * | createSection (SceneManager *sceneMgr, const String &typeName, const String &sectionName=StringUtil::BLANK)
| Create a new section of the world based on a specialised type. More...
PagedWorldSection * | createSection (const String &strategyName, SceneManager *sceneMgr, const String &sectionName=StringUtil::BLANK)
| Create a new manually defined section of the world. More...
PagedWorldSection * | createSection (PageStrategy *strategy, SceneManager *sceneMgr, const String &sectionName=StringUtil::BLANK)
| Create a manually defined new section of the world. More...
void | destroyAllSections ()
| Destroy all world sections. More...
void | destroySection (const String &name)
| Destroy a section of world. More...
void | destroySection (PagedWorldSection *sec)
| Destroy a section of world. More...
virtual void | frameEnd (Real timeElapsed)
| Called when the frame ends. More...
virtual void | frameStart (Real timeSinceLastFrame)
| Called when the frame starts. More...
PageManager * | getManager () const
| Get the manager of this world. More...
const String & | getName () const
PageProvider * | getPageProvider () const
| Get the PageProvider which can provide streams for Pages in this world. More...
PagedWorldSection * | getSection (const String &name)
| Retrieve a section of the world. More...
size_t | getSectionCount () const
| Get the number of sections this world has. More...
const SectionMap & | getSections () const
| Retrieve a const reference to all the sections in this world. More...
void | load (const String &filename)
| Load world data from a file. More...
void | load (const DataStreamPtr &stream)
| Load world data from a stream. More...
bool | load (StreamSerialiser &stream)
| Load world data from a serialiser (returns true if successful) More...
virtual void | notifyCamera (Camera *cam)
| Notify a world of the current camera. More...
void | operator delete (void *ptr)
void | operator delete (void *ptr, void *)
void | operator delete (void *ptr, const char *, int, const char *)
void | operator delete[] (void *ptr)
void | operator delete[] (void *ptr, const char *, int, const char *)
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info More...
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new More...
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info More...
void * | operator new[] (size_t sz)
void | save (const String &filename)
| Save world data to a file. More...
void | save (const DataStreamPtr &stream)
| Save world data to a stream. More...
void | save (StreamSerialiser &stream)
| Save world data to a serialiser. More...
void | setPageProvider (PageProvider *provider)
| Set the PageProvider which can provide streams for Pages in this world. More...

## Static Public Attributes

static const uint32 | CHUNK_ID
static const uint32 | CHUNK_SECTIONDECLARATION_ID
static const uint16 | CHUNK_VERSION

## Protected Attributes

PageManager * | mManager
String | mName
PageProvider * | mPageProvider
NameGenerator | mSectionNameGenerator
SectionMap | mSections

## Friends

_OgrePagingExport friend std::ostream & | operator<< (std::ostream &o, const PagedWorld &p)
| Function for writing to a stream. More...

## Detailed Description

This class represents a collection of pages which make up a world.

Remarks
  It's important to bear in mind that the PagedWorld only delineates the world and knows how to find out about the contents of it. It does not, by design, contain all elements of the world, in memory, at once.

Definition at line 57 of file OgrePagedWorld.h.

## Member Typedef Documentation

## SectionMap

typedef map<String, PagedWorldSection*>::type Ogre::PagedWorld::SectionMap

Definition at line 161 of file OgrePagedWorld.h.

## Constructor & Destructor Documentation

## PagedWorld()

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

Constructor.

Parameters

  name | The name of the world, which must be enough to identify the place where data for it can be loaded from (doesn't have to be a filename necessarily).
  manager | The PageManager that is in charge of providing this world with services such as related object factories.

## ~PagedWorld()

virtual Ogre::PagedWorld::~PagedWorld | ( |  | ) |

virtual

## Member Function Documentation

## _loadProceduralPage()

virtual bool Ogre::PagedWorld::_loadProceduralPage | ( | Page * | page,
|  | PagedWorldSection * | section
| ) |  |

virtual

Give a world the opportunity to prepare page content procedurally.

Remarks
  You should not call this method directly. This call will happen in the main render thread so it can access GPU resources. Use _prepareProceduralPage for background preparation.

Returns
  true if the page was populated, false otherwise

## _prepareProceduralPage()

virtual bool Ogre::PagedWorld::_prepareProceduralPage | ( | Page * | page,
|  | PagedWorldSection * | section
| ) |  |

virtual

Give a world the opportunity to prepare page content procedurally.

Remarks
  You should not call this method directly. This call may well happen in a separate thread so it should not access GPU resources, use _loadProceduralPage for that

Returns
  true if the page was populated, false otherwise

## _readPageStream()

StreamSerialiser* Ogre::PagedWorld::_readPageStream | ( | PageID | pageID,
|  | PagedWorldSection * | section
| ) |  |

Get a serialiser set up to read Page data for the given PageID.

Parameters

  pageID | The ID of the page being requested
  section | The parent section to which this page will belong

Remarks
  The StreamSerialiser returned is the responsibility of the caller to delete.

## _unloadProceduralPage()

virtual bool Ogre::PagedWorld::_unloadProceduralPage | ( | Page * | page,
|  | PagedWorldSection * | section
| ) |  |

virtual

Give a world the opportunity to unload page content procedurally.

Remarks
  You should not call this method directly. This call will happen in the main render thread so it can access GPU resources. Use _unprepareProceduralPage for background preparation.

Returns
  true if the page was populated, false otherwise

## _unprepareProceduralPage()

virtual bool Ogre::PagedWorld::_unprepareProceduralPage | ( | Page * | page,
|  | PagedWorldSection * | section
| ) |  |

virtual

Give a world the opportunity to unprepare page content procedurally.

Remarks
  You should not call this method directly. This call may well happen in a separate thread so it should not access GPU resources, use _unloadProceduralPage for that

Returns
  true if the page was unpopulated, false otherwise

## _writePageStream()

StreamSerialiser* Ogre::PagedWorld::_writePageStream | ( | PageID | pageID,
|  | PagedWorldSection * | section
| ) |  |

Get a serialiser set up to read Page data for the given PageID.

Parameters

  pageID | The ID of the page being requested
  section | The parent section to which this page will belong

Remarks
  The StreamSerialiser returned is the responsibility of the caller to delete.

## createSection() [1/3]

PagedWorldSection* Ogre::PagedWorld::createSection | ( | SceneManager * | sceneMgr,
|  | const String & | typeName,
|  | const String & | sectionName = `StringUtil::BLANK`
| ) |  |

Create a new section of the world based on a specialised type.

Remarks
  World sections are areas of the world that use a particular PageStrategy, with a certain set of parameters specific to that strategy, and potentially some other rules. So you would have more than one section in a world only if you needed different simultaneous paging strategies, or you wanted the same strategy but parameterised differently.

Parameters

  sceneMgr | The SceneManager to use for this section.
  typeName | The type of section to use (must be registered with PageManager), or blank to use the default type (simple grid)
  sectionName | An optional name to give the section (if none is provided, one will be generated)

## createSection() [2/3]

PagedWorldSection* Ogre::PagedWorld::createSection | ( | const String & | strategyName,
|  | SceneManager * | sceneMgr,
|  | const String & | sectionName = `StringUtil::BLANK`
| ) |  |

Create a new manually defined section of the world.

Remarks
  World sections are areas of the world that use a particular PageStrategy, with a certain set of parameters specific to that strategy. So you would have more than one section in a world only if you needed different simultaneous paging strategies, or you wanted the same strategy but parameterised differently.

Parameters

  strategyName | The name of the strategy to use (must be registered with PageManager)
  sceneMgr | The SceneManager to use for this section
  sectionName | An optional name to give the section (if none is provided, one will be generated)

## createSection() [3/3]

PagedWorldSection* Ogre::PagedWorld::createSection | ( | PageStrategy * | strategy,
|  | SceneManager * | sceneMgr,
|  | const String & | sectionName = `StringUtil::BLANK`
| ) |  |

Create a manually defined new section of the world.

Remarks
  World sections are areas of the world that use a particular PageStrategy, with a certain set of parameters specific to that strategy. So you would have more than one section in a world only if you needed different simultaneous paging strategies, or you wanted the same strategy but parameterised differently.

Parameters

  strategy | The strategy to use
  sceneMgr | The SceneManager to use for this section
  sectionName | An optional name to give the section (if none is provided, one will be generated)

## destroyAllSections()

void Ogre::PagedWorld::destroyAllSections | ( |  | ) |

Destroy all world sections.

## destroySection() [1/2]

void Ogre::PagedWorld::destroySection | ( | const String & | name | ) |

Destroy a section of world.

## destroySection() [2/2]

void Ogre::PagedWorld::destroySection | ( | PagedWorldSection * | sec | ) |

Destroy a section of world.

## frameEnd()

virtual void Ogre::PagedWorld::frameEnd | ( | Real | timeElapsed | ) |

virtual

Called when the frame ends.

## frameStart()

virtual void Ogre::PagedWorld::frameStart | ( | Real | timeSinceLastFrame | ) |

virtual

Called when the frame starts.

## getManager()

PageManager* Ogre::PagedWorld::getManager | ( |  | ) | const

Get the manager of this world.

Definition at line 80 of file OgrePagedWorld.h.

References Ogre::StringUtil::BLANK.

## getName()

const String& Ogre::PagedWorld::getName | ( | void |  | ) | const

Definition at line 78 of file OgrePagedWorld.h.

## getPageProvider()

PageProvider* Ogre::PagedWorld::getPageProvider | ( |  | ) | const

Get the PageProvider which can provide streams for Pages in this world.

Definition at line 179 of file OgrePagedWorld.h.

References _OgrePagingExport, and Ogre::operator<<().

## getSection()

PagedWorldSection* Ogre::PagedWorld::getSection | ( | const String & | name | ) |

Retrieve a section of the world.

## getSectionCount()

size_t Ogre::PagedWorld::getSectionCount | ( |  | ) | const

Get the number of sections this world has.

Definition at line 156 of file OgrePagedWorld.h.

## getSections()

const SectionMap& Ogre::PagedWorld::getSections | ( |  | ) | const

Retrieve a const reference to all the sections in this world.

Definition at line 163 of file OgrePagedWorld.h.

## load() [1/3]

void Ogre::PagedWorld::load | ( | const String & | filename | ) |

Load world data from a file.

## load() [2/3]

void Ogre::PagedWorld::load | ( | const DataStreamPtr & | stream | ) |

Load world data from a stream.

## load() [3/3]

bool Ogre::PagedWorld::load | ( | StreamSerialiser & | stream | ) |

Load world data from a serialiser (returns true if successful)

## notifyCamera()

virtual void Ogre::PagedWorld::notifyCamera | ( | Camera * | cam | ) |

virtual

Notify a world of the current camera.

## operator delete() [1/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr | ) |

inherited

Definition at line 96 of file OgreMemoryAllocatedObject.h.

## operator delete() [2/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | void * |
| ) |  |

inherited

Definition at line 102 of file OgreMemoryAllocatedObject.h.

## operator delete() [3/3]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 108 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [1/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr | ) |

inherited

Definition at line 113 of file OgreMemoryAllocatedObject.h.

## operator delete[]() [2/2]

template<class Alloc >

void Ogre::AllocatedObject< Alloc >::operator delete[] | ( | void * | ptr,
|  | const char * | ,
|  | int | ,
|  | const char * |
| ) |  |

inherited

Definition at line 119 of file OgreMemoryAllocatedObject.h.

## operator new() [1/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

operator new, with debug line info

Definition at line 68 of file OgreMemoryAllocatedObject.h.

## operator new() [2/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz | ) |

inherited

Definition at line 73 of file OgreMemoryAllocatedObject.h.

## operator new() [3/3]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new | ( | size_t | sz,
|  | void * | ptr
| ) |  |

inherited

placement operator new

Definition at line 79 of file OgreMemoryAllocatedObject.h.

## operator new[]() [1/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz,
|  | const char * | file,
|  | int | line,
|  | const char * | func
| ) |  |

inherited

array operator new, with debug line info

Definition at line 86 of file OgreMemoryAllocatedObject.h.

## operator new[]() [2/2]

template<class Alloc >

void* Ogre::AllocatedObject< Alloc >::operator new[] | ( | size_t | sz | ) |

inherited

Definition at line 91 of file OgreMemoryAllocatedObject.h.

## save() [1/3]

void Ogre::PagedWorld::save | ( | const String & | filename | ) |

Save world data to a file.

Parameters

  filename | The name of the file to create; this can either be an absolute filename or

## save() [2/3]

void Ogre::PagedWorld::save | ( | const DataStreamPtr & | stream | ) |

Save world data to a stream.

## save() [3/3]

void Ogre::PagedWorld::save | ( | StreamSerialiser & | stream | ) |

Save world data to a serialiser.

## setPageProvider()

void Ogre::PagedWorld::setPageProvider | ( | PageProvider * | provider | ) |

Set the PageProvider which can provide streams for Pages in this world.

Remarks
  This is the top-level way that you can direct how Page data is loaded. When data for a Page is requested for a PagedWorldSection, the following sequence of classes will be checked to see if they have a provider willing to supply the stream: PagedWorldSection, PagedWorld, PageManager. If none of these do, then the default behaviour is to look for a file called worldname_sectionname_pageID.page.

Note
  The caller remains responsible for the destruction of the provider.

Definition at line 176 of file OgrePagedWorld.h.

## Friends And Related Function Documentation

## operator<<

_OgrePagingExport friend std::ostream& operator<< | ( | std::ostream & | o,
|  | const PagedWorld & | p
| ) |  |

friend

Function for writing to a stream.

## Member Data Documentation

## CHUNK_ID

const uint32 Ogre::PagedWorld::CHUNK_ID

static

Definition at line 65 of file OgrePagedWorld.h.

## CHUNK_SECTIONDECLARATION_ID

const uint32 Ogre::PagedWorld::CHUNK_SECTIONDECLARATION_ID

static

Definition at line 67 of file OgrePagedWorld.h.

## CHUNK_VERSION

const uint16 Ogre::PagedWorld::CHUNK_VERSION

static

Definition at line 66 of file OgrePagedWorld.h.

## mManager

PageManager* Ogre::PagedWorld::mManager

protected

Definition at line 61 of file OgrePagedWorld.h.

## mName

String Ogre::PagedWorld::mName

protected

Definition at line 60 of file OgrePagedWorld.h.

## mPageProvider

PageProvider* Ogre::PagedWorld::mPageProvider

protected

Definition at line 62 of file OgrePagedWorld.h.

## mSectionNameGenerator

NameGenerator Ogre::PagedWorld::mSectionNameGenerator

protected

Definition at line 245 of file OgrePagedWorld.h.

## mSections

SectionMap Ogre::PagedWorld::mSections

protected

Definition at line 244 of file OgrePagedWorld.h.

The documentation for this class was generated from the following file:

- OgrePagedWorld.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.