#include <OgreStaticGeometry.h>
Inheritance diagram for Ogre::StaticGeometry:
Public Types | |||||||
typedef std::list< OptimisedSubMeshGeometry * > | OptimisedSubMeshGeometryList | ||||||
typedef std::vector< SubMeshLodGeometryLink > | SubMeshLodGeometryLinkList | ||||||
typedef std::map< SubMesh *, SubMeshLodGeometryLinkList * > | SubMeshGeometryLookup | ||||||
typedef std::vector< QueuedSubMesh * > | QueuedSubMeshList | ||||||
typedef std::vector< QueuedGeometry * > | QueuedGeometryList | ||||||
typedef std::map< uint32, Region * > | RegionMap | ||||||
Indexed region map based on packed x/y/z region index, 10 bits for each axis. | |||||||
typedef MapIterator< RegionMap > | RegionIterator | ||||||
Iterator for iterating over contained regions. | |||||||
Public Member Functions | |||||||
StaticGeometry (SceneManager *owner, const String &name) | |||||||
Constructor; do not use directly (. | |||||||
virtual | ~StaticGeometry () | ||||||
Destructor. | |||||||
const String & | getName (void) const | ||||||
Get the name of this object. | |||||||
virtual void | addEntity (Entity *ent, const Vector3 &position, const Quaternion &orientation=Quaternion::IDENTITY, const Vector3 &scale=Vector3::UNIT_SCALE) | ||||||
Adds an Entity to the static geometry. | |||||||
virtual void | addSceneNode (const SceneNode *node) | ||||||
Adds all the Entity objects attached to a SceneNode and all it's children to the static geometry. | |||||||
virtual void | build (void) | ||||||
Build the geometry. | |||||||
virtual void | destroy (void) | ||||||
Destroys all the built geometry state (reverse of build). | |||||||
virtual void | reset (void) | ||||||
Clears any of the entities / nodes added to this geometry and destroys anything which has already been built. | |||||||
virtual void | setRenderingDistance (Real dist) | ||||||
Sets the distance at which batches are no longer rendered. | |||||||
virtual Real | getRenderingDistance (void) const | ||||||
Gets the distance at which batches are no longer rendered. | |||||||
virtual Real | getSquaredRenderingDistance (void) const | ||||||
Gets the squared distance at which batches are no longer rendered. | |||||||
virtual void | setVisible (bool visible) | ||||||
Hides or shows all the batches. | |||||||
virtual bool | isVisible (void) const | ||||||
Are the batches visible? | |||||||
virtual void | setCastShadows (bool castShadows) | ||||||
Sets whether this geometry should cast shadows. | |||||||
virtual bool | getCastShadows (void) | ||||||
Will the geometry from this object cast shadows? | |||||||
virtual void | setRegionDimensions (const Vector3 &size) | ||||||
Sets the size of a single region of geometry. | |||||||
virtual const Vector3 & | getRegionDimensions (void) const | ||||||
Gets the size of a single batch of geometry. | |||||||
virtual void | setOrigin (const Vector3 &origin) | ||||||
Sets the origin of the geometry. | |||||||
virtual const Vector3 & | getOrigin (void) const | ||||||
Gets the origin of this geometry. | |||||||
virtual void | setRenderQueueGroup (uint8 queueID) | ||||||
Sets the render queue group this object will be rendered through. | |||||||
virtual uint8 | getRenderQueueGroup (void) const | ||||||
Gets the queue group for this entity, see setRenderQueueGroup for full details. | |||||||
void | visitRenderables (Renderable::Visitor *visitor, bool debugRenderables=false) | ||||||
| |||||||
RegionIterator | getRegionIterator (void) | ||||||
Get an iterator over the regions in this geometry. | |||||||
virtual void | dump (const String &filename) const | ||||||
Dump the contents of this StaticGeometry to a file for diagnostic purposes. | |||||||
AllocatedObject () | |||||||
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 *) | ||||||
Protected Types | |||||||
typedef std::map< size_t, size_t > | IndexRemap | ||||||
Protected Member Functions | |||||||
virtual Region * | getRegion (const AxisAlignedBox &bounds, bool autoCreate) | ||||||
Virtual method for getting a region most suitable for the passed in bounds. | |||||||
virtual Region * | getRegion (const Vector3 &point, bool autoCreate) | ||||||
Get the region within which a point lies. | |||||||
virtual Region * | getRegion (ushort x, ushort y, ushort z, bool autoCreate) | ||||||
Get the region using indexes. | |||||||
virtual Region * | getRegion (uint32 index) | ||||||
Get the region using a packed index, returns null if it doesn't exist. | |||||||
virtual void | getRegionIndexes (const Vector3 &point, ushort &x, ushort &y, ushort &z) | ||||||
Get the region indexes for a point. | |||||||
virtual uint32 | packIndex (ushort x, ushort y, ushort z) | ||||||
Pack 3 indexes into a single index value. | |||||||
virtual Real | getVolumeIntersection (const AxisAlignedBox &box, ushort x, ushort y, ushort z) | ||||||
Get the volume intersection for an indexed region with some bounds. | |||||||
virtual AxisAlignedBox | getRegionBounds (ushort x, ushort y, ushort z) | ||||||
Get the bounds of an indexed region. | |||||||
virtual Vector3 | getRegionCentre (ushort x, ushort y, ushort z) | ||||||
Get the centre of an indexed region. | |||||||
virtual AxisAlignedBox | calculateBounds (VertexData *vertexData, const Vector3 &position, const Quaternion &orientation, const Vector3 &scale) | ||||||
Calculate world bounds from a set of vertex data. | |||||||
SubMeshLodGeometryLinkList * | determineGeometry (SubMesh *sm) | ||||||
Look up or calculate the geometry data to use for this SubMesh. | |||||||
void | splitGeometry (VertexData *vd, IndexData *id, SubMeshLodGeometryLink *targetGeomLink) | ||||||
Split some shared geometry into dedicated geometry. | |||||||
template<typename T> | |||||||
void | buildIndexRemap (T *pBuffer, size_t numIndexes, IndexRemap &remap) | ||||||
Method for figuring out which vertices are used by an index buffer and calculating a remap lookup for a vertex buffer just containing those vertices. | |||||||
template<typename T> | |||||||
void | remapIndexes (T *src, T *dst, const IndexRemap &remap, size_t numIndexes) | ||||||
Method for altering indexes based on a remap. | |||||||
Protected Attributes | |||||||
SceneManager * | mOwner | ||||||
String | mName | ||||||
bool | mBuilt | ||||||
Real | mUpperDistance | ||||||
Real | mSquaredUpperDistance | ||||||
bool | mCastShadows | ||||||
Vector3 | mRegionDimensions | ||||||
Vector3 | mHalfRegionDimensions | ||||||
Vector3 | mOrigin | ||||||
bool | mVisible | ||||||
uint8 | mRenderQueueID | ||||||
The render queue to use when rendering this object. | |||||||
bool | mRenderQueueIDSet | ||||||
Flags whether the RenderQueue's default should be used. | |||||||
QueuedSubMeshList | mQueuedSubMeshes | ||||||
OptimisedSubMeshGeometryList | mOptimisedSubMeshGeometryList | ||||||
List of geometry which has been optimised for SubMesh use This is the primary storage used for cleaning up later. | |||||||
SubMeshGeometryLookup | mSubMeshGeometryLookup | ||||||
Cached links from SubMeshes to (potentially optimised) geometry This is not used for deletion since the lookup may reference original vertex data. | |||||||
RegionMap | mRegionMap | ||||||
Map of regions. | |||||||
Classes | |||||||
class | GeometryBucket | ||||||
A GeometryBucket is a the lowest level bucket where geometry with the same vertex & index format is stored. More... | |||||||
class | LODBucket | ||||||
A LODBucket is a collection of smaller buckets with the same LOD. More... | |||||||
class | MaterialBucket | ||||||
A MaterialBucket is a collection of smaller buckets with the same Material (and implicitly the same LOD). More... | |||||||
class | OptimisedSubMeshGeometry | ||||||
Struct holding geometry optimised per SubMesh / lod level, ready for copying to instances. More... | |||||||
struct | QueuedGeometry | ||||||
Structure recording a queued geometry for low level builds. More... | |||||||
struct | QueuedSubMesh | ||||||
Structure recording a queued submesh for the build. More... | |||||||
class | Region | ||||||
The details of a topological region which is the highest level of partitioning for this class. More... | |||||||
struct | SubMeshLodGeometryLink | ||||||
Saved link between SubMesh at a LOD and vertex/index data May point to original or optimised geometry. More... |
Definition at line 113 of file OgreStaticGeometry.h.
|
Definition at line 538 of file OgreStaticGeometry.h. |
|
Definition at line 140 of file OgreStaticGeometry.h. |
|
Definition at line 172 of file OgreStaticGeometry.h. |
|
Definition at line 163 of file OgreStaticGeometry.h. |
|
Iterator for iterating over contained regions.
Definition at line 742 of file OgreStaticGeometry.h. |
|
Indexed region map based on packed x/y/z region index, 10 bits for each axis.
Definition at line 468 of file OgreStaticGeometry.h. |
|
Definition at line 149 of file OgreStaticGeometry.h. |
|
Definition at line 148 of file OgreStaticGeometry.h. |
|
Constructor; do not use directly (.
|
|
Destructor.
|
|
Adds an Entity to the static geometry.
|
|
Adds all the Entity objects attached to a SceneNode and all it's children to the static geometry.
|
|
Definition at line 55 of file OgreMemoryAllocatedObject.h. |
|
Build the geometry.
|
|
Method for figuring out which vertices are used by an index buffer and calculating a remap lookup for a vertex buffer just containing those vertices.
Definition at line 544 of file OgreStaticGeometry.h. |
|
Calculate world bounds from a set of vertex data.
|
|
Destroys all the built geometry state (reverse of build).
|
|
Look up or calculate the geometry data to use for this SubMesh.
|
|
Dump the contents of this StaticGeometry to a file for diagnostic purposes.
|
|
Will the geometry from this object cast shadows?
Definition at line 689 of file OgreStaticGeometry.h. |
|
Get the name of this object.
Definition at line 576 of file OgreStaticGeometry.h. |
|
Gets the origin of this geometry.
Definition at line 720 of file OgreStaticGeometry.h. |
|
Get the region using a packed index, returns null if it doesn't exist.
|
|
Get the region using indexes.
|
|
Get the region within which a point lies.
|
|
Virtual method for getting a region most suitable for the passed in bounds. Can be overridden by subclasses. |
|
Get the bounds of an indexed region.
|
|
Get the centre of an indexed region.
|
|
Gets the size of a single batch of geometry.
Definition at line 706 of file OgreStaticGeometry.h. |
|
Get the region indexes for a point.
|
|
Get an iterator over the regions in this geometry.
|
|
Gets the distance at which batches are no longer rendered.
Definition at line 658 of file OgreStaticGeometry.h. |
|
Gets the queue group for this entity, see setRenderQueueGroup for full details.
|
|
Gets the squared distance at which batches are no longer rendered.
Definition at line 661 of file OgreStaticGeometry.h. |
|
Get the volume intersection for an indexed region with some bounds.
|
|
Are the batches visible?
Definition at line 668 of file OgreStaticGeometry.h. |
|
Definition at line 101 of file OgreMemoryAllocatedObject.h. |
|
Definition at line 95 of file OgreMemoryAllocatedObject.h. |
|
Definition at line 89 of file OgreMemoryAllocatedObject.h. |
|
Definition at line 112 of file OgreMemoryAllocatedObject.h. |
|
Definition at line 106 of file OgreMemoryAllocatedObject.h. |
|
placement operator new
Definition at line 73 of file OgreMemoryAllocatedObject.h. |
|
Definition at line 67 of file OgreMemoryAllocatedObject.h. |
|
operator new, with debug line info
Definition at line 62 of file OgreMemoryAllocatedObject.h. |
|
Definition at line 84 of file OgreMemoryAllocatedObject.h. |
|
array operator new, with debug line info
Definition at line 79 of file OgreMemoryAllocatedObject.h. |
|
Pack 3 indexes into a single index value.
|
|
Method for altering indexes based on a remap.
Definition at line 557 of file OgreStaticGeometry.h. |
|
Clears any of the entities / nodes added to this geometry and destroys anything which has already been built.
|
|
Sets whether this geometry should cast shadows.
|
|
Sets the origin of the geometry.
Definition at line 718 of file OgreStaticGeometry.h. |
|
Sets the size of a single region of geometry.
Definition at line 701 of file OgreStaticGeometry.h. |
|
Sets the distance at which batches are no longer rendered.
Definition at line 652 of file OgreStaticGeometry.h. |
|
Sets the render queue group this object will be rendered through.
|
|
Hides or shows all the batches.
|
|
Split some shared geometry into dedicated geometry.
|
|
|
|
Definition at line 473 of file OgreStaticGeometry.h. |
|
Definition at line 476 of file OgreStaticGeometry.h. |
|
Definition at line 478 of file OgreStaticGeometry.h. |
|
Definition at line 472 of file OgreStaticGeometry.h. |
|
List of geometry which has been optimised for SubMesh use This is the primary storage used for cleaning up later.
Definition at line 490 of file OgreStaticGeometry.h. |
|
Definition at line 479 of file OgreStaticGeometry.h. |
|
Definition at line 471 of file OgreStaticGeometry.h. |
|
Definition at line 486 of file OgreStaticGeometry.h. |
|
Definition at line 477 of file OgreStaticGeometry.h. |
|
Map of regions.
Definition at line 499 of file OgreStaticGeometry.h. |
|
The render queue to use when rendering this object.
Definition at line 482 of file OgreStaticGeometry.h. |
|
Flags whether the RenderQueue's default should be used.
Definition at line 484 of file OgreStaticGeometry.h. |
|
Definition at line 475 of file OgreStaticGeometry.h. |
|
Cached links from SubMeshes to (potentially optimised) geometry This is not used for deletion since the lookup may reference original vertex data.
Definition at line 496 of file OgreStaticGeometry.h. |
|
Definition at line 474 of file OgreStaticGeometry.h. |
|
Definition at line 480 of file OgreStaticGeometry.h. |
Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sat Apr 11 13:54:57 2009