#include <OgreStaticGeometry.h>
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 ( SceneManager::createStaticGeometry). | |
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. | |
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. | |
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. |
Definition at line 106 of file OgreStaticGeometry.h.
|
Definition at line 526 of file OgreStaticGeometry.h. Referenced by buildIndexRemap(), and remapIndexes(). |
|
Definition at line 133 of file OgreStaticGeometry.h. |
|
Definition at line 165 of file OgreStaticGeometry.h. |
|
Definition at line 156 of file OgreStaticGeometry.h. |
|
Iterator for iterating over contained regions.
Definition at line 727 of file OgreStaticGeometry.h. |
|
Indexed region map based on packed x/y/z region index, 10 bits for each axis.
Definition at line 456 of file OgreStaticGeometry.h. |
|
Definition at line 142 of file OgreStaticGeometry.h. |
|
Definition at line 141 of file OgreStaticGeometry.h. |
|
Constructor; do not use directly ( SceneManager::createStaticGeometry).
|
|
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.
|
|
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 532 of file OgreStaticGeometry.h. References IndexRemap. |
|
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 677 of file OgreStaticGeometry.h. |
|
Get the name of this object.
Definition at line 564 of file OgreStaticGeometry.h. References Ogre::String. |
|
Gets the origin of this geometry.
Definition at line 708 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 694 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 646 of file OgreStaticGeometry.h. References Ogre::Real. |
|
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 649 of file OgreStaticGeometry.h. References Ogre::Real. |
|
Get the volume intersection for an indexed region with some bounds.
|
|
Are the batches visible?
Definition at line 656 of file OgreStaticGeometry.h. |
|
Pack 3 indexes into a single index value.
|
|
Method for altering indexes based on a remap.
Definition at line 545 of file OgreStaticGeometry.h. References IndexRemap. |
|
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 706 of file OgreStaticGeometry.h. |
|
Sets the size of a single region of geometry.
Definition at line 689 of file OgreStaticGeometry.h. |
|
Sets the distance at which batches are no longer rendered.
Definition at line 640 of file OgreStaticGeometry.h. References Ogre::Real. |
|
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 461 of file OgreStaticGeometry.h. |
|
Definition at line 464 of file OgreStaticGeometry.h. |
|
Definition at line 466 of file OgreStaticGeometry.h. |
|
Definition at line 460 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 478 of file OgreStaticGeometry.h. |
|
Definition at line 467 of file OgreStaticGeometry.h. |
|
Definition at line 459 of file OgreStaticGeometry.h. |
|
Definition at line 474 of file OgreStaticGeometry.h. |
|
Definition at line 465 of file OgreStaticGeometry.h. |
|
Map of regions.
Definition at line 487 of file OgreStaticGeometry.h. |
|
The render queue to use when rendering this object.
Definition at line 470 of file OgreStaticGeometry.h. |
|
Flags whether the RenderQueue's default should be used.
Definition at line 472 of file OgreStaticGeometry.h. |
|
Definition at line 463 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 484 of file OgreStaticGeometry.h. |
|
Definition at line 462 of file OgreStaticGeometry.h. |
|
Definition at line 468 of file OgreStaticGeometry.h. |
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:44:40 2006