OGRE  master
Object-Oriented Graphics Rendering Engine

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

Enumerations

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

Detailed Description

Render large modular structures.

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

Enumeration Type Documentation

◆ 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.