29 #ifndef __Ogre_PagedWorldSection_H__
30 #define __Ogre_PagedWorldSection_H__
#define _OgrePagingExport
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
A 3D box aligned with the x/y/z axes.
A viewpoint from which the scene will be rendered.
The PageManager is the entry point through which you load all PagedWorld instances,...
Abstract class that can be implemented by the user application to provide a way to retrieve or genera...
Abstract marker class representing the data held against the PagedWorldSection which is specifically ...
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.
virtual ~PagedWorldSectionFactory()
virtual void destroyInstance(PagedWorldSection *)=0
virtual const String & getName() const =0
virtual PagedWorldSection * createInstance(const String &name, PagedWorld *parent, SceneManager *sm)=0
Represents a section of the PagedWorld which uses a given PageStrategy, and which is made up of a gen...
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 setStrategy(PageStrategy *strat)
Change the page strategy.
static const uint32 CHUNK_ID
virtual void loadSubtypeData(StreamSerialiser &ser)
Load data specific to a subtype of this class (if any)
virtual void removeAllPages()
Remove all pages immediately.
map< PageID, Page * >::type PageMap
PagedWorldSection(const String &name, PagedWorld *parent, SceneManager *sm)
Construct a new instance, specifying the parent and scene manager.
virtual void setBoundingBox(const AxisAlignedBox &box)
Set the bounds of this section.
virtual PageID getPageID(const Vector3 &worldPos)
Get the page ID for a given world position.
virtual bool _prepareProceduralPage(Page *page)
Give a section the opportunity to prepare page content procedurally.
virtual void setPageProvider(PageProvider *provider)
Set the PageProvider which can provide streams Pages in this section.
PageManager * getManager() const
virtual PageProvider * getPageProvider() const
Get the PageProvider which can provide streams for Pages in this section.
virtual void setStrategy(const String &stratName)
Change the page strategy.
virtual SceneManager * getSceneManager() const
Get the current SceneManager.
virtual StreamSerialiser * _writePageStream(PageID pageID)
Get a serialiser set up to write Page data for the given PageID.
virtual const String & getType()
Get the type name of this section.
virtual void notifyCamera(Camera *cam)
Notify a section of the current camera.
virtual void saveSubtypeData(StreamSerialiser &ser)
virtual const String & getName() const
Get the name of this section.
virtual void unloadPage(PageID pageID, bool forceSynchronous=false)
Ask for a page to be unloaded with the given (section-relative) PageID.
PageProvider * mPageProvider
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.
PageStrategyData * mStrategyData
virtual bool _unloadProceduralPage(Page *page)
Give a section the opportunity to unload page content procedurally.
static const uint16 CHUNK_VERSION
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 Page * getPage(PageID pageID)
Retrieves a Page.
virtual void save(StreamSerialiser &stream)
Save this section to a stream.
virtual bool _unprepareProceduralPage(Page *page)
Give a section the opportunity to unprepare page content procedurally.
virtual bool load(StreamSerialiser &stream)
Load this section from a stream (returns true if successful)
virtual bool _loadProceduralPage(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 void setSceneManager(const String &smName)
Change the SceneManager.
virtual ~PagedWorldSection()
virtual void frameStart(Real timeSinceLastFrame)
Called when the frame starts.
virtual void unloadPage(Page *p, bool forceSynchronous=false)
Ask for a page to be unloaded with the given (section-relative) PageID.
virtual void frameEnd(Real timeElapsed)
Called when the frame ends.
virtual const AxisAlignedBox & getBoundingBox() const
Get the bounds of this section.
virtual void setSceneManager(SceneManager *sm)
Change the SceneManager.
This class represents a collection of pages which make up a world.
Manages the organisation and rendering of a 'scene' i.e.
Utility class providing helper methods for reading / writing structured data held in a DataStream.
Standard 3-dimensional vector.
std::ostream & operator<<(std::ostream &o, const TRect< T > &r)
uint32 PageID
Identifier for a page.
float Real
Software floating point type.