Ogre::Grid3DPageStrategyData Class Reference
Components | Paging

Specialisation of PageStrategyData for Grid3DPageStrategy. More...

`#include <OgreGrid3DPageStrategy.h>`

Inheritance diagram for Ogre::Grid3DPageStrategyData:
[legend]

List of all members.

## Public Member Functions

| Grid3DPageStrategyData ()
| ~Grid3DPageStrategyData ()
virtual void | setOrigin (const Vector3 &worldOrigin)
| Set the origin of the grid in world space.
virtual const Vector3 & | getOrigin (const Vector3 &worldOrigin)
| Get the origin of the grid in world space.
virtual void | setCellSize (const Vector3 &sz)
| Set the size of the cells in the grid.
virtual Vector3 | getCellSize () const
| Get the size of the cells in the grid.
virtual void | setLoadRadius (Real sz)
| Set the loading radius.
virtual Real | getLoadRadius () const
| Get the loading radius.
virtual void | setHoldRadius (Real sz)
| Set the Holding radius.
virtual Real | getHoldRadius () const
| Get the Holding radius.
virtual void | setCellRange (int32 minX, int32 minY, int32 minZ, int32 maxX, int32 maxY, int32 maxZ)
| Set the index range of all cells (values outside this will be ignored)
virtual void | setCellRangeMinX (int32 minX)
| Set the index range of all cells (values outside this will be ignored)
virtual void | setCellRangeMinY (int32 minY)
| Set the index range of all cells (values outside this will be ignored)
virtual void | setCellRangeMinZ (int32 minZ)
| Set the index range of all cells (values outside this will be ignored)
virtual void | setCellRangeMaxX (int32 maxX)
| Set the index range of all cells (values outside this will be ignored)
virtual void | setCellRangeMaxY (int32 maxY)
| Set the index range of all cells (values outside this will be ignored)
virtual void | setCellRangeMaxZ (int32 maxZ)
| get the index range of all cells (values outside this will be ignored)
virtual int32 | getCellRangeMinX () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | getCellRangeMinY () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | getCellRangeMinZ () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | getCellRangeMaxX () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | getCellRangeMaxY () const
| get the index range of all cells (values outside this will be ignored)
virtual int32 | getCellRangeMaxZ () const
| get the index range of all cells (values outside this will be ignored)
bool | load (StreamSerialiser &stream)
| Load this data from a stream (returns true if successful)
void | save (StreamSerialiser &stream)
| Save this data to a stream.
virtual void | getMidPointGridSpace (int32 x, int32 y, int32 z, Vector3 &mid)
virtual void | getBottomLeftGridSpace (int32 x, int32 y, int z, Vector3 &bl)
| Get the (grid space) bottom-left of a cell.
virtual void | getCornersGridSpace (int32 x, int32 y, int32 z, Vector3 *pEightPoints)
| Get the (grid space) corners of a cell.
void | determineGridLocation (const Vector3 &gridpos, int32 *x, int32 *y, int32 *z)
| Convert a grid position into a row and column index.
PageID | calculatePageID (int32 x, int32 y, int32 z)
void | calculateCell (PageID inPageID, int32 *x, int32 *y, int32 *z)
void * | operator new (size_t sz, const char *file, int line, const char *func)
| operator new, with debug line info
void * | operator new (size_t sz)
void * | operator new (size_t sz, void *ptr)
| placement operator new
void * | operator new[] (size_t sz, const char *file, int line, const char *func)
| array operator new, with debug line info
void * | operator new[] (size_t sz)
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 *)

## Static Public Attributes

static const uint32 | CHUNK_ID
static const uint16 | CHUNK_VERSION

## Protected Attributes

Vector3 | mWorldOrigin
| Origin (world space)
Vector3 | mOrigin
| Origin (grid-aligned world space)
Vector3 | mCellSize
| Grid cell (page) size.
Real | mLoadRadius
| Load radius.
Real | mHoldRadius
| Hold radius.
int32 | mMinCellX
int32 | mMinCellY
int32 | mMinCellZ
int32 | mMaxCellX
int32 | mMaxCellY
int32 | mMaxCellZ

## Detailed Description

Specialisation of PageStrategyData for Grid3DPageStrategy.

Remarks:
  Structurally this data defines with a 3D grid of pages, with the logical origin in the center of the entire grid. The grid cells are indexed from 0 as a 'centre' slot, supporting both positive and negative values. so (0,0,0) is the centre cell, (1,0,0) is the cell to the right of the centre, (0,0,1) is the cell in front of the centre, (0,1,0) the cell above the center, etc. The maximum extent of each axis is -512 to +511, so in other words enough for over 2 billion different entries.

  To limit the page load requests that are generated to a fixed region, you can set the min and max cell indexes (inclusive)for each direction; if a page request would address a cell outside this range it is ignored so you don't have the expense of checking for page data that will never exist.

  The data format for this in a file is:
  Grid3DPageStrategyData (Identifier 'G3DD')
  [Version 1]

  Name | Type | Description
  Grid origin | Vector3 | World origin of the grid.
  Grid cell size | Vector3 | The size of each cell (page) in the grid
  Grid cell range (minx, maxx, miny, maxy, minz, maxz) | int16 * 6 | The extents of the world in cell indexes
  Load radius | Real | The outer radius at which new pages should start loading
  Hold radius | Real | The radius at which existing pages should be held if already loaded but not actively loaded (should be larger than Load radius)

See also:
  Grid2DPageStrategyData

Definition at line 104 of file OgreGrid3DPageStrategy.h.

## Constructor & Destructor Documentation

Ogre::Grid3DPageStrategyData::Grid3DPageStrategyData | ( |  | ) |

Ogre::Grid3DPageStrategyData::~Grid3DPageStrategyData | ( |  | ) |

## Member Function Documentation

void Ogre::Grid3DPageStrategyData::calculateCell | ( | PageID | inPageID,
|  | int32 * | x,
|  | int32 * | y,
|  | int32 * | z
| ) |  |

PageID Ogre::Grid3DPageStrategyData::calculatePageID | ( | int32 | x,
|  | int32 | y,
|  | int32 | z
| ) |  |

void Ogre::Grid3DPageStrategyData::determineGridLocation | ( | const Vector3 & | gridpos,
|  | int32 * | x,
|  | int32 * | y,
|  | int32 * | z
| ) |  |

Convert a grid position into a row and column index.

virtual void Ogre::Grid3DPageStrategyData::getBottomLeftGridSpace | ( | int32 | x,
|  | int32 | y,
|  | int | z,
|  | Vector3 & | bl
| ) |  | `[virtual]`

Get the (grid space) bottom-left of a cell.

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMaxX | ( |  | ) | const`[virtual]`

get the index range of all cells (values outside this will be ignored)

Definition at line 169 of file OgreGrid3DPageStrategy.h.

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMaxY | ( |  | ) | const`[virtual]`

get the index range of all cells (values outside this will be ignored)

Definition at line 171 of file OgreGrid3DPageStrategy.h.

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMaxZ | ( |  | ) | const`[virtual]`

get the index range of all cells (values outside this will be ignored)

Definition at line 173 of file OgreGrid3DPageStrategy.h.

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMinX | ( |  | ) | const`[virtual]`

get the index range of all cells (values outside this will be ignored)

Definition at line 163 of file OgreGrid3DPageStrategy.h.

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMinY | ( |  | ) | const`[virtual]`

get the index range of all cells (values outside this will be ignored)

Definition at line 165 of file OgreGrid3DPageStrategy.h.

virtual int32 Ogre::Grid3DPageStrategyData::getCellRangeMinZ | ( |  | ) | const`[virtual]`

get the index range of all cells (values outside this will be ignored)

Definition at line 167 of file OgreGrid3DPageStrategy.h.

virtual Vector3 Ogre::Grid3DPageStrategyData::getCellSize | ( |  | ) | const`[virtual]`

Get the size of the cells in the grid.

Definition at line 138 of file OgreGrid3DPageStrategy.h.

virtual void Ogre::Grid3DPageStrategyData::getCornersGridSpace | ( | int32 | x,
|  | int32 | y,
|  | int32 | z,
|  | Vector3 * | pEightPoints
| ) |  | `[virtual]`

Get the (grid space) corners of a cell.

Remarks:
  Populates pEightPoints in anticlockwise order from the bottom left point.

virtual Real Ogre::Grid3DPageStrategyData::getHoldRadius | ( |  | ) | const`[virtual]`

Get the Holding radius.

Definition at line 146 of file OgreGrid3DPageStrategy.h.

virtual Real Ogre::Grid3DPageStrategyData::getLoadRadius | ( |  | ) | const`[virtual]`

Get the loading radius.

Definition at line 142 of file OgreGrid3DPageStrategy.h.

virtual void Ogre::Grid3DPageStrategyData::getMidPointGridSpace | ( | int32 | x,
|  | int32 | y,
|  | int32 | z,
|  | Vector3 & | mid
| ) |  | `[virtual]`

virtual const Vector3& Ogre::Grid3DPageStrategyData::getOrigin | ( | const Vector3 & | worldOrigin | ) | `[virtual]`

Get the origin of the grid in world space.

Definition at line 134 of file OgreGrid3DPageStrategy.h.

bool Ogre::Grid3DPageStrategyData::load | ( | StreamSerialiser & | stream | ) | `[virtual]`

Load this data from a stream (returns true if successful)

Implements Ogre::PageStrategyData.

template<class Alloc >

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

Definition at line 95 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 101 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 107 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 112 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 118 of file OgreMemoryAllocatedObject.h.

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 67 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 72 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

placement operator new

Definition at line 78 of file OgreMemoryAllocatedObject.h.

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 85 of file OgreMemoryAllocatedObject.h.

template<class Alloc >

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

Definition at line 90 of file OgreMemoryAllocatedObject.h.

void Ogre::Grid3DPageStrategyData::save | ( | StreamSerialiser & | stream | ) | `[virtual]`

Save this data to a stream.

Implements Ogre::PageStrategyData.

virtual void Ogre::Grid3DPageStrategyData::setCellRange | ( | int32 | minX,
|  | int32 | minY,
|  | int32 | minZ,
|  | int32 | maxX,
|  | int32 | maxY,
|  | int32 | maxZ
| ) |  | `[virtual]`

Set the index range of all cells (values outside this will be ignored)

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMaxX | ( | int32 | maxX | ) | `[virtual]`

Set the index range of all cells (values outside this will be ignored)

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMaxY | ( | int32 | maxY | ) | `[virtual]`

Set the index range of all cells (values outside this will be ignored)

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMaxZ | ( | int32 | maxZ | ) | `[virtual]`

get the index range of all cells (values outside this will be ignored)

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMinX | ( | int32 | minX | ) | `[virtual]`

Set the index range of all cells (values outside this will be ignored)

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMinY | ( | int32 | minY | ) | `[virtual]`

Set the index range of all cells (values outside this will be ignored)

virtual void Ogre::Grid3DPageStrategyData::setCellRangeMinZ | ( | int32 | minZ | ) | `[virtual]`

Set the index range of all cells (values outside this will be ignored)

virtual void Ogre::Grid3DPageStrategyData::setCellSize | ( | const Vector3 & | sz | ) | `[virtual]`

Set the size of the cells in the grid.

virtual void Ogre::Grid3DPageStrategyData::setHoldRadius | ( | Real | sz | ) | `[virtual]`

Set the Holding radius.

virtual void Ogre::Grid3DPageStrategyData::setLoadRadius | ( | Real | sz | ) | `[virtual]`

Set the loading radius.

virtual void Ogre::Grid3DPageStrategyData::setOrigin | ( | const Vector3 & | worldOrigin | ) | `[virtual]`

Set the origin of the grid in world space.

## Member Data Documentation

const uint32 Ogre::Grid3DPageStrategyData::CHUNK_ID`[static]`

Definition at line 125 of file OgreGrid3DPageStrategy.h.

const uint16 Ogre::Grid3DPageStrategyData::CHUNK_VERSION`[static]`

Definition at line 126 of file OgreGrid3DPageStrategy.h.

Vector3 Ogre::Grid3DPageStrategyData::mCellSize`[protected]`

Grid cell (page) size.

Definition at line 112 of file OgreGrid3DPageStrategy.h.

Real Ogre::Grid3DPageStrategyData::mHoldRadius`[protected]`

Hold radius.

Definition at line 116 of file OgreGrid3DPageStrategy.h.

Real Ogre::Grid3DPageStrategyData::mLoadRadius`[protected]`

Load radius.

Definition at line 114 of file OgreGrid3DPageStrategy.h.

int32 Ogre::Grid3DPageStrategyData::mMaxCellX`[protected]`

Definition at line 120 of file OgreGrid3DPageStrategy.h.

int32 Ogre::Grid3DPageStrategyData::mMaxCellY`[protected]`

Definition at line 121 of file OgreGrid3DPageStrategy.h.

int32 Ogre::Grid3DPageStrategyData::mMaxCellZ`[protected]`

Definition at line 122 of file OgreGrid3DPageStrategy.h.

int32 Ogre::Grid3DPageStrategyData::mMinCellX`[protected]`

Definition at line 117 of file OgreGrid3DPageStrategy.h.

int32 Ogre::Grid3DPageStrategyData::mMinCellY`[protected]`

Definition at line 118 of file OgreGrid3DPageStrategy.h.

int32 Ogre::Grid3DPageStrategyData::mMinCellZ`[protected]`

Definition at line 119 of file OgreGrid3DPageStrategy.h.

Vector3 Ogre::Grid3DPageStrategyData::mOrigin`[protected]`

Origin (grid-aligned world space)

Definition at line 110 of file OgreGrid3DPageStrategy.h.

Vector3 Ogre::Grid3DPageStrategyData::mWorldOrigin`[protected]`

Origin (world space)

Definition at line 108 of file OgreGrid3DPageStrategy.h.

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

- OgreGrid3DPageStrategy.h

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Last modified Sun Sep 2 2012 07:27:43