29#ifndef __Ogre_PageManager_H__
30#define __Ogre_PageManager_H__
50 class PagedWorldSection;
51 class PagedWorldSectionFactory;
#define _OgrePagingExport
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Listener interface so you can be notified of Camera events.
A viewpoint from which the scene will be rendered.
A interface class defining a listener which can be used to receive notifications of frame events.
Page strategy which loads new pages based on a regular 2D grid.
Page strategy which loads new pages based on a regular 3D grid.
Utility class to generate a sequentially numbered series of names.
Define the interface to a factory class that will create subclasses of PageContentCollection.
Definition of the interface for a collection of PageContent instances.
Define the interface to a factory class that will create subclasses of PageContent.
Interface definition for a unit of content within a page.
void cameraDestroyed(Camera *cam)
Called when the camera is being destroyed.
void cameraPreRenderScene(Camera *cam)
Called prior to the scene being rendered with this camera.
bool frameEnded(const FrameEvent &evt)
Called just after a frame has been rendered.
bool frameStarted(const FrameEvent &evt)
Called when a frame is about to begin rendering.
The PageManager is the entry point through which you load all PagedWorld instances,...
void destroyWorld(PagedWorld *world)
Destroy a world.
ContentFactoryMap mContentFactories
void destroyWorldSection(PagedWorldSection *s)
Destroy an instance of PagedWorldSection.
void saveWorld(PagedWorld *world, const String &filename)
Save a PagedWorld instance to a file.
void destroyContent(PageContent *c)
Destroy an instance of PageContent.
SimplePageContentCollectionFactory * mSimpleCollectionFactory
void removeContentFactory(PageContentFactory *f)
Remove a PageContentFactory implementation.
const ContentCollectionFactoryMap & getContentCollectionFactories() const
Get a reference to the registered strategies.
map< String, PageContentFactory * >::type ContentFactoryMap
map< String, PageStrategy * >::type StrategyMap
PageContentFactory * getContentFactory(const String &name)
Get a PageContentFactory.
Grid2DPageStrategy * mGrid2DPageStrategy
ContentCollectionFactoryMap mContentCollectionFactories
PageStrategy * getStrategy(const String &name)
Get a PageStrategy.
PagedWorld * createWorld(const String &name=StringUtil::BLANK)
Create a new PagedWorld instance.
const CameraList & getCameraList() const
Returns a list of cameras being tracked.
bool getPagingOperationsEnabled() const
Get whether paging operations are currently allowed to happen.
PageContent * createContent(const String &typeName)
Create a new instance of PageContent using the registered factories.
void destroyWorld(const String &name)
Destroy a world.
const StrategyMap & getStrategies() const
Get a reference to the registered strategies.
void setPageProvider(PageProvider *provider)
Set the PageProvider which can provide streams for any Page.
PageProvider * mPageProvider
WorldSectionFactoryMap mWorldSectionFactories
PageProvider * getPageProvider() const
Get the PageProvider which can provide streams for any Page.
void removeCamera(Camera *c)
Tells the paging system to stop tracking a given camera.
void removeStrategy(PageStrategy *strategy)
Remove a PageStrategy implementation.
StreamSerialiser * _readWorldStream(const String &filename)
Get a serialiser set up to read PagedWorld data for the given world name.
const String & getPageResourceGroup() const
Get the resource group that will be used to read/write files when the default load routines are used.
void createStandardContentFactories()
virtual bool _loadProceduralPage(Page *page, PagedWorldSection *section)
Give a provider the opportunity to prepare page content procedurally.
void addContentFactory(PageContentFactory *f)
Add a new PageContentFactory implementation.
void addContentCollectionFactory(PageContentCollectionFactory *f)
Add a new PageContentCollectionFactory implementation.
void setDebugDisplayLevel(uint8 lvl)
Set the debug display level.
const ContentFactoryMap & getContentFactories() const
Get a reference to the registered strategies.
PagedWorldSection * createWorldSection(const String &typeName, const String &name, PagedWorld *parent, SceneManager *sm)
Create a new instance of PagedWorldSection using the registered factories.
void addWorldSectionFactory(PagedWorldSectionFactory *f)
Add a new PagedWorldSectionFactory implementation.
StreamSerialiser * _writeWorldStream(const String &filename)
Get a serialiser set up to write PagedWorld data.
PageContentCollection * createContentCollection(const String &typeName)
Create a new instance of PageContentCollection using the registered factories.
map< String, PagedWorldSectionFactory * >::type WorldSectionFactoryMap
const WorldMap & getWorlds() const
Get a reference to the worlds that are currently loaded.
StreamSerialiser * _writePageStream(PageID pageID, PagedWorldSection *section)
Get a serialiser set up to write Page data for the given PageID.
const WorldSectionFactoryMap & getWorldSectionFactories() const
Get a reference to the registered strategies.
Grid3DPageStrategy * mGrid3DPageStrategy
NameGenerator mWorldNameGenerator
void destroyContentCollection(PageContentCollection *coll)
Destroy an instance of PageContentCollection.
String mPageResourceGroup
void createStandardStrategies()
void addStrategy(PageStrategy *strategy)
Add a new PageStrategy implementation.
map< String, PagedWorld * >::type WorldMap
PagedWorld * loadWorld(const String &filename, const String &name=StringUtil::BLANK)
Load a new PagedWorld from a file.
PagedWorld * getWorld(const String &name)
Get a named world.
virtual bool _unloadProceduralPage(Page *page, PagedWorldSection *section)
Give a manager the opportunity to unload page content procedurally.
virtual bool _unprepareProceduralPage(Page *page, PagedWorldSection *section)
Give a manager the opportunity to unprepare page content procedurally.
void saveWorld(PagedWorld *world, const DataStreamPtr &stream)
Save a PagedWorld instance to a file.
PagedWorldSectionFactory * getWorldSectionFactory(const String &name)
Get a PagedWorldSectionFactory.
void removeContentCollectionFactory(PageContentCollectionFactory *f)
Remove a PageContentCollectionFactory implementation.
void addCamera(Camera *c)
Tells the paging system to start tracking a given camera.
void setPagingOperationsEnabled(bool enabled)
Pause or unpause all paging operations.
PageContentCollectionFactory * getContentCollectionFactory(const String &name)
Get a PageContentCollectionFactory.
void removeWorldSectionFactory(PagedWorldSectionFactory *f)
Remove a PagedWorldSectionFactory implementation.
bool hasCamera(Camera *c) const
Returns whether or not a given camera is being watched by the paging system.
uint8 getDebugDisplayLevel() const
Get the debug display level.
vector< Camera * >::type CameraList
map< String, PageContentCollectionFactory * >::type ContentCollectionFactoryMap
PagedWorld * loadWorld(const DataStreamPtr &stream, const String &name=StringUtil::BLANK)
Load a new PagedWorld from a stream.
void setPageResourceGroup(const String &g)
Set the resource group that will be used to read/write files when the default load routines are used.
virtual bool _prepareProceduralPage(Page *page, PagedWorldSection *section)
Give a provider the opportunity to prepare page content procedurally.
StreamSerialiser * _readPageStream(PageID pageID, PagedWorldSection *section)
Get a serialiser set up to read Page data for the given PageID.
Abstract class that can be implemented by the user application to provide a way to retrieve or genera...
virtual StreamSerialiser * readWorldStream(const String &filename)
Get a serialiser set up to read PagedWorld data for the given world filename.
virtual bool loadProceduralPage(Page *page, PagedWorldSection *section)
Give a provider the opportunity to load page content procedurally.
virtual StreamSerialiser * writePageStream(PageID pageID, PagedWorldSection *section)
Get a serialiser set up to write Page data for the given PageID, or null if this provider cannot supp...
virtual bool unprepareProceduralPage(Page *page, PagedWorldSection *section)
Give a provider the opportunity to unprepare page content procedurally.
virtual bool prepareProceduralPage(Page *page, PagedWorldSection *section)
Give a provider the opportunity to prepare page content procedurally.
virtual StreamSerialiser * readPageStream(PageID pageID, PagedWorldSection *section)
Get a serialiser set up to read Page data for the given PageID, or null if this provider cannot suppl...
virtual StreamSerialiser * writeWorldStream(const String &filename)
Get a serialiser set up to write PagedWorld data for the given world filename.
virtual bool unloadProceduralPage(Page *page, PagedWorldSection *section)
Give a provider the opportunity to unload page content procedurally.
Defines the interface to a strategy class which is responsible for deciding when Page instances are r...
A factory class for creating types of world section.
Represents a section of the PagedWorld which uses a given PageStrategy, and which is made up of a gen...
This class represents a collection of pages which make up a world.
Manages the organisation and rendering of a 'scene' i.e.
Factory class for SimplePageContentCollection.
Utility class providing helper methods for reading / writing structured data held in a DataStream.
uint32 PageID
Identifier for a page.
Struct containing information about a frame event.
std::map< K, V, P, A > type