#include <OgreBspLevel.h>
Inheritance diagram for Ogre::BspLevel:
Public Member Functions | |
BspLevel (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0) | |
Default constructor - used by BspResourceManager (do not call directly). | |
~BspLevel () | |
bool | isLeafVisible (const BspNode *from, const BspNode *to) const |
Determines if one leaf node is visible from another. | |
const BspNode * | getRootNode (void) |
Returns a pointer to the root node (BspNode) of the BSP tree. | |
BspNode * | findLeaf (const Vector3 &point) const |
Walks the entire BSP tree and returns the leaf which contains the given point. | |
void | _notifyObjectMoved (const MovableObject *mov, const Vector3 &pos) |
Ensures that the MovableObject is attached to the right leaves of the BSP tree. | |
void | _notifyObjectDetached (const MovableObject *mov) |
Internal method, makes sure an object is removed from the leaves when detached from a node. | |
BspNode * | getLeafStart (void) |
Gets a pointer to the start of the leaf nodes. | |
int | getNumLeaves (void) const |
Gets the number of leaf nodes. | |
void | load (DataStreamPtr &stream) |
Load direct from stream. | |
bool | isSkyEnabled (void) const |
Is sky enabled? | |
const String & | getSkyMaterialName (void) const |
Get Sky material name. | |
Real | getSkyCurvature (void) const |
Get sky curvature. | |
virtual void | load (void) |
Loads the resource, if it is not already. | |
virtual void | reload (void) |
Reloads the resource, if it is already loaded. | |
bool | isReloadable (void) const |
Returns true if the Resource is reloadable, false otherwise. | |
bool | isManuallyLoaded (void) const |
Is this resource manually loaded? | |
virtual void | unload (void) |
Unloads the resource; this is not permanent, the resource can be reloaded later if required. | |
size_t | getSize (void) const |
Retrieves info about the size of the resource. | |
virtual void | touch (void) |
'Touches' the resource to indicate it has been used. | |
const String & | getName (void) const |
Gets resource name. | |
ResourceHandle | getHandle (void) const |
bool | isLoaded (void) const |
Returns true if the Resource has been loaded, false otherwise. | |
const String & | getGroup (void) |
Gets the group which this resource is a member of. | |
void | changeGroupOwnership (const String &newGroup) |
Change the resource group ownership of a Resource. | |
ResourceManager * | getCreator (void) |
Gets the manager which created this resource. | |
const String & | getOrigin (void) const |
Get the origin of this resource, e.g. | |
void | _notifyOrigin (const String &origin) |
Notify this resource of it's origin. | |
ParamDictionary * | getParamDictionary (void) |
Retrieves the parameter dictionary for this class. | |
const ParamDictionary * | getParamDictionary (void) const |
const ParameterList & | getParameters (void) const |
Retrieves a list of parameters valid for this object. | |
virtual bool | setParameter (const String &name, const String &value) |
Generic parameter setting method. | |
virtual void | setParameterList (const NameValuePairList ¶mList) |
Generic multiple parameter setting method. | |
virtual String | getParameter (const String &name) const |
Generic parameter retrieval method. | |
virtual void | copyParametersTo (StringInterface *dest) const |
Method for copying this object's parameters to another object. | |
Static Public Member Functions | |
size_t | calculateLoadingStages (const String &levelName) |
Calculate the number of loading stages required for a given level. | |
size_t | calculateLoadingStages (DataStreamPtr &stream) |
Calculate the number of loading stages required for a given level. | |
void | cleanupDictionary () |
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. | |
Protected Types | |
typedef std::map< const MovableObject *, std::list< BspNode * > > | MovableToNodeMap |
typedef std::map< int, PatchSurface * > | PatchMap |
Protected Member Functions | |
void | loadImpl (void) |
. | |
void | unloadImpl (void) |
. | |
size_t | calculateSize (void) const |
. | |
void | loadQuake3Level (const Quake3Level &q3lvl) |
Internal utility function for loading data from Quake3. | |
void | loadEntities (const Quake3Level &q3lvl) |
Internal method for parsing chosen entities. | |
void | tagNodesWithMovable (BspNode *node, const MovableObject *mov, const Vector3 &pos) |
void | initQuake3Patches (const Quake3Level &q3lvl, VertexDeclaration *decl) |
void | buildQuake3Patches (size_t vertOffset, size_t indexOffset) |
void | quakeVertexToBspVertex (const bsp_vertex_t *src, BspVertex *dest) |
bool | createParamDictionary (const String &className) |
Internal method for creating a parameter dictionary for the class, if it does not already exist. | |
Protected Attributes | |
BspNode * | mRootNode |
Pointer to the root node of the BSP tree; This pointer actually has a dual purpose; to avoid allocating lots of small chunks of memory, the BspLevel actually allocates all nodes required through this pointer. | |
int | mNumNodes |
int | mNumLeaves |
int | mLeafStart |
VertexData * | mVertexData |
Vertex data holding all the data for the level, but able to render parts of it. | |
int * | mLeafFaceGroups |
Array of indexes into the mFaceGroups array. | |
int | mNumLeafFaceGroups |
StaticFaceGroup * | mFaceGroups |
Array of face groups, indexed into by contents of mLeafFaceGroups. | |
int | mNumFaceGroups |
size_t | mNumIndexes |
indexes for the whole level, will be copied to the real indexdata per frame | |
HardwareIndexBufferSharedPtr | mIndexes |
BspNode::Brush * | mBrushes |
Brushes as used for collision, main memory is here. | |
std::vector< ViewPoint > | mPlayerStarts |
Vector of player start points. | |
VisData | mVisData |
MovableToNodeMap | mMovableToNodeMap |
Map for locating the nodes a movable is currently a member of. | |
PatchMap | mPatches |
size_t | mPatchVertexCount |
size_t | mPatchIndexCount |
bool | mSkyEnabled |
String | mSkyMaterial |
Real | mSkyCurvature |
ResourceManager * | mCreator |
Creator. | |
String | mName |
Unique name of the resource. | |
String | mGroup |
The name of the resource group. | |
ResourceHandle | mHandle |
Numeric handle for more efficient look up than name. | |
bool | mIsLoaded |
Is the resource currently loaded? | |
size_t | mSize |
The size of the resource in bytes. | |
bool | mIsManual |
Is this file manually loaded? | |
String | mOrigin |
Origin of this resource (e.g. script name) - optional. | |
ManualResourceLoader * | mLoader |
Optional manual loader; if provided, data is loaded from here instead of a file. | |
String | mParamDictName |
Class name for this instance to be used as a lookup (must be initialised by subclasses). | |
Static Protected Attributes | |
ParamDictionaryMap | msDictionary |
Dictionary of parameters. | |
Friends | |
class | BspSceneManager |
The data used here is populated by loading level files via the BspLevelManager::load method, although application users are more likely to call SceneManager::setWorldGeometry which will automatically arrange the loading of the level. Note that this assumes that you have asked for an indoor-specialised SceneManager (specify ST_INDOOR when calling Root::getSceneManager). Ogre currently only supports loading from Quake3 Arena level files, although any source that can be converted into this classes structure could also be used. The Quake3 level load process is in a different class called Quake3Level to keep the specifics separate.
Definition at line 53 of file OgreBspLevel.h.
|
Definition at line 200 of file OgreBspLevel.h. |
|
Definition at line 207 of file OgreBspLevel.h. |
|
Default constructor - used by BspResourceManager (do not call directly).
|
|
|
|
Internal method, makes sure an object is removed from the leaves when detached from a node.
|
|
Ensures that the MovableObject is attached to the right leaves of the BSP tree.
|
|
Notify this resource of it's origin.
Definition at line 223 of file OgreResource.h. References Ogre::String. |
|
|
|
Calculate the number of loading stages required for a given level.
|
|
Calculate the number of loading stages required for a given level.
|
|
.
Implements Ogre::Resource. |
|
Change the resource group ownership of a Resource.
|
|
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. MaterialManager) initializes. |
|
Method for copying this object's parameters to another object.
Definition at line 296 of file OgreStringInterface.h. References Ogre::ParamDictionary::mParamDefs, and Ogre::StringInterface::setParameter(). |
|
Internal method for creating a parameter dictionary for the class, if it does not already exist.
Definition at line 172 of file OgreStringInterface.h. References Ogre::String. |
|
Walks the entire BSP tree and returns the leaf which contains the given point.
|
|
Gets the manager which created this resource.
Definition at line 214 of file OgreResource.h. |
|
Gets the group which this resource is a member of.
Definition at line 202 of file OgreResource.h. References Ogre::String. |
|
Definition at line 188 of file OgreResource.h. References Ogre::ResourceHandle. |
|
Gets a pointer to the start of the leaf nodes.
Definition at line 81 of file OgreBspLevel.h. References mLeafStart. |
|
Gets resource name.
Definition at line 183 of file OgreResource.h. References Ogre::String. |
|
Gets the number of leaf nodes.
Definition at line 83 of file OgreBspLevel.h. References mNumLeaves. |
|
Get the origin of this resource, e.g. a script file name.
Definition at line 221 of file OgreResource.h. References Ogre::String. |
|
Definition at line 209 of file OgreStringInterface.h. |
|
Retrieves the parameter dictionary for this class.
Definition at line 196 of file OgreStringInterface.h. |
|
Generic parameter retrieval method.
Definition at line 265 of file OgreStringInterface.h. References Ogre::ParamCommand::doGet(), Ogre::ParamDictionary::getParamCommand(), and Ogre::String. |
|
Retrieves a list of parameters valid for this object.
|
|
Returns a pointer to the root node (BspNode) of the BSP tree.
|
|
Retrieves info about the size of the resource.
Definition at line 172 of file OgreResource.h. |
|
Get sky curvature.
|
|
Get Sky material name.
|
|
|
|
Determines if one leaf node is visible from another.
|
|
Returns true if the Resource has been loaded, false otherwise.
Definition at line 195 of file OgreResource.h. References OGRE_LOCK_AUTO_MUTEX. |
|
Is this resource manually loaded?
Definition at line 160 of file OgreResource.h. |
|
Returns true if the Resource is reloadable, false otherwise.
Definition at line 153 of file OgreResource.h. |
|
Is sky enabled?
|
|
Loads the resource, if it is not already.
Reimplemented in Ogre::Mesh, and Ogre::GLSLGpuProgram. |
|
Load direct from stream.
|
|
Internal method for parsing chosen entities.
|
|
.
Implements Ogre::Resource. |
|
Internal utility function for loading data from Quake3.
|
|
|
|
Reloads the resource, if it is already loaded.
|
|
Generic parameter setting method.
Referenced by Ogre::StringInterface::copyParametersTo(). |
|
Generic multiple parameter setting method.
|
|
|
|
'Touches' the resource to indicate it has been used.
Reimplemented in Ogre::Material. |
|
Unloads the resource; this is not permanent, the resource can be reloaded later if required.
Reimplemented in Ogre::GLSLGpuProgram. |
|
.
Implements Ogre::Resource. |
|
Definition at line 55 of file OgreBspLevel.h. |
|
Brushes as used for collision, main memory is here.
Definition at line 165 of file OgreBspLevel.h. |
|
Creator.
Definition at line 73 of file OgreResource.h. |
|
Array of face groups, indexed into by contents of mLeafFaceGroups.
Definition at line 149 of file OgreBspLevel.h. |
|
The name of the resource group.
Definition at line 77 of file OgreResource.h. |
|
Numeric handle for more efficient look up than name.
Definition at line 79 of file OgreResource.h. |
|
Definition at line 162 of file OgreBspLevel.h. |
|
Is the resource currently loaded?
Definition at line 81 of file OgreResource.h. |
|
Is this file manually loaded?
Definition at line 85 of file OgreResource.h. |
|
Array of indexes into the mFaceGroups array. This buffer is organised by leaf node so leaves can just use contiguous chunks of it and get repointed to the actual entries in mFaceGroups. Definition at line 145 of file OgreBspLevel.h. |
|
Definition at line 117 of file OgreBspLevel.h. Referenced by getLeafStart(). |
|
Optional manual loader; if provided, data is loaded from here instead of a file.
Definition at line 89 of file OgreResource.h. |
|
Map for locating the nodes a movable is currently a member of.
Definition at line 202 of file OgreBspLevel.h. |
|
Unique name of the resource.
Definition at line 75 of file OgreResource.h. |
|
Definition at line 150 of file OgreBspLevel.h. |
|
indexes for the whole level, will be copied to the real indexdata per frame
Definition at line 160 of file OgreBspLevel.h. |
|
Definition at line 146 of file OgreBspLevel.h. |
|
Definition at line 116 of file OgreBspLevel.h. Referenced by getNumLeaves(). |
|
Definition at line 115 of file OgreBspLevel.h. |
|
Origin of this resource (e.g. script name) - optional.
Definition at line 87 of file OgreResource.h. |
|
Class name for this instance to be used as a lookup (must be initialised by subclasses).
Definition at line 160 of file OgreStringInterface.h. |
|
Definition at line 208 of file OgreBspLevel.h. |
|
Definition at line 212 of file OgreBspLevel.h. |
|
Definition at line 210 of file OgreBspLevel.h. |
|
Vector of player start points.
Definition at line 168 of file OgreBspLevel.h. |
|
Pointer to the root node of the BSP tree; This pointer actually has a dual purpose; to avoid allocating lots of small chunks of memory, the BspLevel actually allocates all nodes required through this pointer. So this pointer is the handle for the allocation of memory for all nodes. It also happens to point to the root node, since the first one in the memory chunk is the root node. Definition at line 114 of file OgreBspLevel.h. |
|
Dictionary of parameters.
Definition at line 157 of file OgreStringInterface.h. |
|
The size of the resource in bytes.
Definition at line 83 of file OgreResource.h. |
|
Definition at line 218 of file OgreBspLevel.h. |
|
Definition at line 214 of file OgreBspLevel.h. |
|
Definition at line 216 of file OgreBspLevel.h. |
|
Vertex data holding all the data for the level, but able to render parts of it.
Definition at line 140 of file OgreBspLevel.h. |
|
Definition at line 194 of file OgreBspLevel.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:46:32 2006