OGRE 14.3
Object-Oriented Graphics Rendering Engine
|
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...
#include <OgrePagedWorldSection.h>
Public Types | |
typedef std::map< PageID, Page * > | PageMap |
Public Member Functions | |
PagedWorldSection (const String &name, PagedWorld *parent, SceneManager *sm) | |
Construct a new instance, specifying the parent and scene manager. | |
virtual | ~PagedWorldSection () |
virtual bool | _loadProceduralPage (Page *page) |
Give a section the opportunity to prepare page content procedurally. | |
virtual bool | _prepareProceduralPage (Page *page) |
Give a section the opportunity to prepare page content procedurally. | |
virtual StreamSerialiser * | _readPageStream (PageID pageID) |
Get a serialiser set up to read Page data for the given PageID. | |
virtual bool | _unloadProceduralPage (Page *page) |
Give a section the opportunity to unload page content procedurally. | |
virtual bool | _unprepareProceduralPage (Page *page) |
Give a section the opportunity to unprepare page content procedurally. | |
virtual StreamSerialiser * | _writePageStream (PageID pageID) |
Get a serialiser set up to write Page data for the given PageID. | |
virtual void | frameEnd (Real timeElapsed) |
Called when the frame ends. | |
virtual void | frameStart (Real timeSinceLastFrame) |
Called when the frame starts. | |
virtual const AxisAlignedBox & | getBoundingBox () const |
Get the bounds of this section. | |
PageManager * | getManager () const |
virtual const String & | getName () const |
Get the name of this section. | |
virtual Page * | getPage (PageID pageID) |
Retrieves a Page. | |
virtual PageID | getPageID (const Vector3 &worldPos) |
Get the page ID for a given world position. | |
virtual PageProvider * | getPageProvider () const |
Get the PageProvider which can provide streams for Pages in this section. | |
virtual SceneManager * | getSceneManager () const |
Get the current SceneManager. | |
virtual PageStrategy * | getStrategy () const |
Get the page strategy which this section is using. | |
virtual PageStrategyData * | getStrategyData () const |
Get the data required by the PageStrategy which is specific to this world section. | |
virtual const String & | getType () |
Get the type name of this section. | |
virtual PagedWorld * | getWorld () const |
Get the parent world. | |
virtual void | holdPage (PageID pageID) |
Ask for a page to be kept in memory if it's loaded. | |
virtual bool | load (StreamSerialiser &stream) |
Load this section from a stream (returns true if successful) | |
virtual Page * | loadOrCreatePage (const Vector3 &worldPos) |
Load or create a page against this section covering the given world space position. | |
virtual void | loadPage (PageID pageID, bool forceSynchronous=false) |
Ask for a page to be loaded with the given (section-relative) PageID. | |
virtual void | notifyCamera (Camera *cam) |
Notify a section of the current camera. | |
virtual void | removeAllPages () |
Remove all pages immediately. | |
virtual void | save (StreamSerialiser &stream) |
Save this section to a stream. | |
virtual void | setBoundingBox (const AxisAlignedBox &box) |
Set the bounds of this section. | |
virtual void | setPageProvider (PageProvider *provider) |
Set the PageProvider which can provide streams Pages in this section. | |
virtual void | setSceneManager (const String &smName) |
Change the SceneManager. | |
virtual void | setSceneManager (SceneManager *sm) |
Change the SceneManager. | |
virtual void | setStrategy (const String &stratName) |
Change the page strategy. | |
virtual void | setStrategy (PageStrategy *strat) |
Change the page strategy. | |
virtual void | unloadPage (Page *p, bool forceSynchronous=false) |
Ask for a page to be unloaded with the given (section-relative) PageID. | |
virtual void | unloadPage (PageID pageID, bool forceSynchronous=false) |
Ask for a page to be unloaded with the given (section-relative) PageID. | |
Static Public Attributes | |
static const uint32 | CHUNK_ID |
static const uint16 | CHUNK_VERSION |
Represents a section of the PagedWorld which uses a given PageStrategy, and which is made up of a generally localised set of Page instances.
The reason for PagedWorldSection is that you may wish to cater for multiple sections of your world which use a different approach to paging (ie a different PageStrategy), or which are significantly far apart or separate that the parameters you want to pass to the PageStrategy are different.
typedef std::map<PageID, Page*> Ogre::PagedWorldSection::PageMap |
Ogre::PagedWorldSection::PagedWorldSection | ( | const String & | name, |
PagedWorld * | parent, | ||
SceneManager * | sm | ||
) |
Construct a new instance, specifying the parent and scene manager.
|
virtual |
PageManager * Ogre::PagedWorldSection::getManager | ( | ) | const |
Get the name of this section.
|
inlinevirtual |
Get the page strategy which this section is using.
|
virtual |
Change the page strategy.
Doing this will invalidate any pages attached to this world section, and require the PageStrategyData to be repopulated.
Change the page strategy.
Doing this will invalidate any pages attached to this world section, and require the PageStrategyData to be repopulated.
|
virtual |
Change the SceneManager.
Doing this will invalidate any pages attached to this world section, and require the pages to be reloaded.
Change the SceneManager.
Doing this will invalidate any pages attached to this world section, and require the pages to be reloaded.
smName | The instance name of the SceneManager |
|
inlinevirtual |
Get the current SceneManager.
|
inlinevirtual |
Get the parent world.
|
inlinevirtual |
Get the data required by the PageStrategy which is specific to this world section.
|
virtual |
Set the bounds of this section.
|
virtual |
Get the bounds of this section.
|
virtual |
Load this section from a stream (returns true if successful)
|
virtual |
Save this section to a stream.
Called when the frame starts.
Called when the frame ends.
Notify a section of the current camera.
Load or create a page against this section covering the given world space position.
This method is designed mainly for editors - it will try to load an existing page if there is one, otherwise it will create a new one synchronously.
Get the page ID for a given world position.
|
virtual |
Ask for a page to be loaded with the given (section-relative) PageID.
You would not normally call this manually, the PageStrategy is in charge of it usually. If this page is already loaded, this request will not load it again. If the page needs loading, then it may be an asynchronous process depending on whether threading is enabled.
pageID | The page ID to load |
forceSynchronous | If true, the page will always be loaded synchronously |
Reimplemented in Ogre::TerrainPagedWorldSection.
|
virtual |
Ask for a page to be unloaded with the given (section-relative) PageID.
You would not normally call this manually, the PageStrategy is in charge of it usually.
pageID | The page ID to unload |
forceSynchronous | If true, the page will always be unloaded synchronously |
Reimplemented in Ogre::TerrainPagedWorldSection.
|
virtual |
Ask for a page to be unloaded with the given (section-relative) PageID.
You would not normally call this manually, the PageStrategy is in charge of it usually.
p | The Page to unload |
forceSynchronous | If true, the page will always be unloaded synchronously |
Give a section the opportunity to prepare page content procedurally.
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
Give a section the opportunity to prepare page content procedurally.
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.
Give a section the opportunity to unload page content procedurally.
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.
Give a section the opportunity to unprepare page content procedurally.
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
Ask for a page to be kept in memory if it's loaded.
This method indicates that a page should be retained if it's already in memory, but if it's not then it won't trigger a load. This is useful for retaining pages that have just gone out of range, but which you don't want to unload just yet because it's quite possible they may come back into the active set again very quickly / easily. But at the same time, if they've already been purged you don't want to force them to load. This is the 'maybe' region of pages.
Remove all pages immediately.
Effectively 'resets' this section by deleting all pages.
|
inlinevirtual |
Set the PageProvider which can provide streams Pages in this section.
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.
|
inlinevirtual |
Get the PageProvider which can provide streams for Pages in this section.
|
virtual |
Get a serialiser set up to read Page data for the given PageID.
pageID | The ID of the page being requested |
The StreamSerialiser returned is the responsibility of the caller to delete.
|
virtual |
Get a serialiser set up to write Page data for the given PageID.
pageID | The ID of the page being requested |
The StreamSerialiser returned is the responsibility of the caller to delete.
Get the type name of this section.