#include <OgreMesh.h>
Inheritance diagram for Ogre::Mesh:
Public Types | |
typedef std::vector< Real > | LodDistanceList |
typedef std::multimap< size_t, VertexBoneAssignment > | VertexBoneAssignmentList |
Multimap of vertex bone assignments (orders by vertex index). | |
typedef MapIterator< VertexBoneAssignmentList > | BoneAssignmentIterator |
typedef std::vector< SubMesh * > | SubMeshList |
typedef HashMap< String, ushort, _StringHash > | SubMeshNameMap |
A hashmap used to store optional SubMesh names. | |
typedef VectorIterator< SubMeshList > | SubMeshIterator |
Public Methods | |
Mesh (const String &name) | |
Default constructor - used by MeshManager. | |
~Mesh () | |
virtual void | load (void) |
Generic load - called by MeshManager. | |
virtual void | unload (void) |
Generic unload - called by MeshManager. | |
SubMesh * | createSubMesh (void) |
Creates a new SubMesh. | |
SubMesh * | createSubMesh (const String &name) |
Creates a new SubMesh and gives it a name. | |
void | nameSubMesh (const String &name, ushort index) |
Gives a name to a SubMesh. | |
ushort | _getSubMeshIndex (const String &name) const |
Gets the index of a submesh with a given name. | |
unsigned short | getNumSubMeshes (void) const |
Gets the number of sub meshes which comprise this mesh. | |
SubMesh * | getSubMesh (unsigned short index) const |
Gets a pointer to the submesh indicated by the index. | |
SubMesh * | getSubMesh (const String &name) const |
Gets a SubMesh by name. | |
SubMeshIterator | getSubMeshIterator (void) |
Gets an iterator over the available submeshes. | |
void | setManuallyDefined (bool manuallyDefined) |
Call this to indicate that this Mesh will be manually defined rather than loaded from a file. | |
Mesh * | clone (const String &newName) |
Makes a copy of this mesh object and gives it a new name. | |
const AxisAlignedBox & | getBounds (void) const |
Get the axis-aligned bounding box for this mesh. | |
Real | getBoundingSphereRadius (void) const |
Gets the radius of the bounding sphere surrounding this mesh. | |
void | _setBounds (const AxisAlignedBox &bounds) |
Manually set the bounding box for this Mesh. | |
void | _setBoundingSphereRadius (Real radius) |
Manually set the bounding radius. | |
void | setSkeletonName (const String &skelName) |
Sets the name of the skeleton this Mesh uses for animation. | |
bool | hasSkeleton (void) const |
Returns true if this Mesh has a linked Skeleton. | |
Skeleton * | getSkeleton (void) const |
Gets a pointer to any linked Skeleton. | |
const String & | getSkeletonName (void) const |
Gets the name of any linked Skeleton. | |
void | _initAnimationState (AnimationStateSet *animSet) |
Initialise an animation set suitable for use with this mesh. | |
void | addBoneAssignment (const VertexBoneAssignment &vertBoneAssign) |
Assigns a vertex to a bone with a given weight, for skeletal animation. | |
void | clearBoneAssignments (void) |
Removes all bone assignments for this mesh. | |
void | _notifySkeleton (Skeleton *pSkel) |
Internal notification, used to tell the Mesh which Skeleton to use without loading it. | |
BoneAssignmentIterator | getBoneAssignmentIterator (void) |
Gets an iterator for access all bone assignments. | |
void | generateLodLevels (const LodDistanceList &lodDistances, ProgressiveMesh::VertexReductionQuota reductionMethod, Real reductionValue) |
Automatically generates lower level of detail versions of this mesh for use when a simpler version of the model is acceptable for rendering. | |
ushort | getNumLodLevels (void) const |
Returns the number of levels of detail that this mesh supports. | |
const MeshLodUsage & | getLodLevel (ushort index) const |
Gets details of the numbered level of detail entry. | |
void | createManualLodLevel (Real fromDepth, const String &meshName) |
Adds a new manual level-of-detail entry to this Mesh. | |
void | updateManualLodLevel (ushort index, const String &meshName) |
Changes the alternate mesh to use as a manual LOD at the given index. | |
ushort | getLodIndex (Real depth) const |
Retrieves the level of detail index for the given depth value. | |
ushort | getLodIndexSquaredDepth (Real squaredDepth) const |
Retrieves the level of detail index for the given squared depth value. | |
bool | isLodManual (void) const |
Returns true if this mesh is using manual LOD. | |
void | _setLodInfo (unsigned short numLevels, bool isManual) |
Internal methods for loading LOD, do not use. | |
void | _setLodUsage (unsigned short level, Mesh::MeshLodUsage &usage) |
Internal methods for loading LOD, do not use. | |
void | _setSubMeshLodFaceList (unsigned short subIdx, unsigned short level, IndexData *facedata) |
Internal methods for loading LOD, do not use. | |
void | removeLodLevels (void) |
Removes all LOD data from this Mesh. | |
void | setVertexBufferPolicy (HardwareBuffer::Usage usage, bool shadowBuffer=false) |
Sets the policy for the vertex buffers to be used when loading this Mesh. | |
void | setIndexBufferPolicy (HardwareBuffer::Usage usage, bool shadowBuffer=false) |
Sets the policy for the index buffers to be used when loading this Mesh. | |
HardwareBuffer::Usage | getVertexBufferUsage (void) const |
Gets the usage setting for this meshes vertex buffers. | |
HardwareBuffer::Usage | getIndexBufferUsage (void) const |
Gets the usage setting for this meshes index buffers. | |
bool | isVertexBufferShadowed (void) const |
Gets whether or not this meshes vertex buffers are shadowed. | |
bool | isIndexBufferShadowed (void) const |
Gets whether or not this meshes index buffers are shadowed. | |
unsigned short | _rationaliseBoneAssignments (size_t vertexCount, VertexBoneAssignmentList &assignments) |
Rationalises the passed in bone assignment list. | |
void | _compileBoneAssignments (void) |
Internal method, be called once to compile bone assignments into geometry buffer. | |
void | buildTangentVectors (unsigned short sourceTexCoordSet=0, unsigned short destTexCoordSet=1) |
This method builds a set of tangent vectors for a given mesh into a 3D texture coordinate buffer. | |
void | buildEdgeList (void) |
Builds an edge list for this mesh, which can be used for generating a shadow volume among other things. | |
void | freeEdgeList (void) |
Destroys and frees the edge lists this mesh has built. | |
void | prepareForShadowVolume (void) |
This method prepares the mesh for generating a renderable shadow volume. | |
EdgeData * | getEdgeList (unsigned int lodIndex=0) |
Return the edge list for this mesh, building it if required. | |
bool | isPreparedForShadowVolumes (void) |
Returns whether this mesh has already had it's geometry prepared for use in rendering shadow volumes. | |
const SubMeshNameMap & | getSubMeshNameMap (void) const |
Gets a reference to the optional name assignments of the SubMeshes. | |
virtual 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. | |
time_t | getLastAccess (void) const |
Gets the last time the resource was 'touched'. | |
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. | |
virtual void | destroy () |
A method to make the resource delete itself. | |
Static Public Methods | |
void | softwareVertexBlend (const VertexData *sourceVertexData, const VertexData *targetVertexData, const Matrix4 *pMatrices, bool blendNormals) |
Performs a software indexed vertex blend, of the kind used for skeletal animation although it can be used for other purposes. | |
Public Attributes | |
VertexData * | sharedVertexData |
Shared vertex data. | |
Protected Types | |
typedef std::vector< MeshLodUsage > | MeshLodUsageList |
Protected Methods | |
HardwareVertexBufferSharedPtr | getTangentsBuffer (VertexData *vertexData, unsigned short texCoordSet) |
Internal method for getting or creating a 3D texture coord buffer to hold tangents. | |
void | compileBoneAssignments (const VertexBoneAssignmentList &boneAssignments, unsigned short numBlendWeightsPerVertex, VertexData *targetVertexData) |
Compile bone assignments into blend index and weight buffers. | |
void | compileBoneAssignmentsSoftware (const VertexBoneAssignmentList &boneAssignments, unsigned short numBlendWeightsPerVertex, VertexData *targetVertexData) |
Software blending oriented bone assignment compilation. | |
Protected Attributes | |
SubMeshList | mSubMeshList |
A list of submeshes which make up this mesh. | |
SubMeshNameMap | mSubMeshNameMap |
AxisAlignedBox | mAABB |
Local bounding box volume. | |
Real | mBoundRadius |
Local bounding sphere radius (centered on object). | |
bool | mManuallyDefined |
String | mSkeletonName |
Optional linked skeleton. | |
Skeleton * | mSkeleton |
VertexBoneAssignmentList | mBoneAssignments |
bool | mBoneAssignmentsOutOfDate |
Flag indicating that bone assignments need to be recompiled. | |
bool | mIsLodManual |
ushort | mNumLods |
MeshLodUsageList | mMeshLodUsageList |
HardwareBuffer::Usage | mVertexBufferUsage |
HardwareBuffer::Usage | mIndexBufferUsage |
bool | mVertexBufferShadowBuffer |
bool | mIndexBufferShadowBuffer |
bool | mPreparedForShadowVolumes |
bool | mEdgeListsBuilt |
String | mName |
ResourceHandle | mHandle |
bool | mIsLoaded |
time_t | mLastAccess |
size_t | mSize |
Friends | |
class | MeshSerializerImpl |
class | MeshSerializerImpl_v1 |
class | SubMesh |
Multiple world objects can (indeed should) be created from a single mesh object - see the Entity class for more info. The mesh object will have it's own default material properties, but potentially each world instance may wish to customise the materials from the original. When the object is instantiated into a scene node, the mesh material properties will be taken by default but may be changed. These properties are actually held at the SubMesh level since a single mesh may have parts with different materials.
As described above, because the mesh may have sections of differing material properties, a mesh is inherently a compound contruct, consisting of one or more SubMesh objects. However, it strongly 'owns' it's SubMeshes such that they are loaded / unloaded at the same time. This is contrary to the approach taken to hierarchically related (but loosely owned) scene nodes, where data is loaded / unloaded separately. Note also that mesh sub-sections (when used in an instantiated object) share the same scene node as the parent.
Definition at line 79 of file OgreMesh.h.
|
Definition at line 101 of file OgreMesh.h. Referenced by getBoneAssignmentIterator(). |
|
Definition at line 98 of file OgreMesh.h. |
|
Definition at line 156 of file OgreMesh.h. |
|
Definition at line 222 of file OgreMesh.h. |
|
Definition at line 102 of file OgreMesh.h. |
|
A hashmap used to store optional SubMesh names. Translates a name into SubMesh index Definition at line 120 of file OgreMesh.h. |
|
Multimap of vertex bone assignments (orders by vertex index).
Definition at line 100 of file OgreMesh.h. |
|
Default constructor - used by MeshManager.
Definition at line 44 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, Ogre::Mesh::MeshLodUsage::fromDepthSquared, Ogre::Mesh::MeshLodUsage::manualMesh, mBoneAssignmentsOutOfDate, mBoundRadius, mEdgeListsBuilt, mIndexBufferShadowBuffer, mIndexBufferUsage, mIsLodManual, mManuallyDefined, mMeshLodUsageList, Ogre::Resource::mName, mNumLods, mPreparedForShadowVolumes, mVertexBufferShadowBuffer, mVertexBufferUsage, setSkeletonName(), and sharedVertexData. |
|
Definition at line 76 of file OgreMesh.cpp. References unload(). |
|
Internal method, be called once to compile bone assignments into geometry buffer.
Definition at line 500 of file OgreMesh.cpp. References _rationaliseBoneAssignments(), compileBoneAssignments(), mBoneAssignments, mBoneAssignmentsOutOfDate, sharedVertexData, and Ogre::VertexData::vertexCount. Referenced by _initAnimationState(). |
|
Gets the index of a submesh with a given name.
Definition at line 792 of file OgreMesh.cpp. References Except, mSubMeshNameMap, and Ogre::ushort. Referenced by Ogre::Entity::getSubEntity(), and getSubMesh(). |
|
Initialise an animation set suitable for use with this mesh.
Definition at line 394 of file OgreMesh.cpp. References _compileBoneAssignments(), Ogre::Skeleton::_initAnimationState(), Ogre::AnimationStateSet, mSkeleton, and mSubMeshList. Referenced by Ogre::Entity::Entity(). |
|
Internal notification, used to tell the Mesh which Skeleton to use without loading it.
Definition at line 623 of file OgreMesh.cpp. References Ogre::Resource::getName(), mSkeleton, and mSkeletonName. |
|
Rationalises the passed in bone assignment list.
Definition at line 415 of file OgreMesh.cpp. References Ogre::Resource::mName, OGRE_MAX_BLEND_WEIGHTS, Ogre::Real, and Ogre::WeightIteratorMap. Referenced by Ogre::SubMesh::_compileBoneAssignments(), and _compileBoneAssignments(). |
|
Manually set the bounding radius.
Definition at line 336 of file OgreMesh.cpp. References mBoundRadius, and Ogre::Real. Referenced by Ogre::MeshManager::createCurvedIllusionPlane(), Ogre::MeshManager::createCurvedPlane(), Ogre::MeshManager::createPlane(), Ogre::MeshManager::createPrefabPlane(), Ogre::PatchMesh::load(), Ogre::MeshSerializerImpl::readBoundsInfo(), and Ogre::MeshSerializerImpl_v1::readGeometry(). |
|
Manually set the bounding box for this Mesh.
Definition at line 318 of file OgreMesh.cpp. References Ogre::AxisAlignedBox::getMaximum(), Ogre::AxisAlignedBox::getMinimum(), mAABB, mBoundRadius, Ogre::Real, Ogre::AxisAlignedBox::setExtents(), and Ogre::Vector3::squaredLength(). Referenced by Ogre::MeshManager::createCurvedIllusionPlane(), Ogre::MeshManager::createCurvedPlane(), Ogre::MeshManager::createPlane(), Ogre::MeshManager::createPrefabPlane(), Ogre::PatchMesh::load(), Ogre::MeshSerializerImpl::readBoundsInfo(), and Ogre::MeshSerializerImpl_v1::readGeometry(). |
|
Internal methods for loading LOD, do not use.
Definition at line 767 of file OgreMesh.cpp. References mIsLodManual, mMeshLodUsageList, mNumLods, and mSubMeshList. |
|
Internal methods for loading LOD, do not use.
Definition at line 779 of file OgreMesh.cpp. References mMeshLodUsageList. |
|
Internal methods for loading LOD, do not use.
Definition at line 784 of file OgreMesh.cpp. References Ogre::SubMesh::mLodFaceList, and mSubMeshList. |
|
Assigns a vertex to a bone with a given weight, for skeletal animation.
Definition at line 381 of file OgreMesh.cpp. References mBoneAssignments, mBoneAssignmentsOutOfDate, and Ogre::VertexBoneAssignment_s::vertexIndex. Referenced by Ogre::MeshSerializerImpl_v1::readMeshBoneAssignment(), and Ogre::MeshSerializerImpl::readMeshBoneAssignment(). |
|
Builds an edge list for this mesh, which can be used for generating a shadow volume among other things.
Definition at line 1000 of file OgreMesh.cpp. References Ogre::EdgeListBuilder::addIndexData(), Ogre::EdgeListBuilder::addVertexData(), Ogre::EdgeListBuilder::build(), Ogre::Mesh::MeshLodUsage::edgeData, freeEdgeList(), getEdgeList(), getLodLevel(), Ogre::SubMesh::indexData, Ogre::EdgeData::log(), Ogre::Mesh::MeshLodUsage::manualMesh, mIsLodManual, Ogre::SubMesh::mLodFaceList, mMeshLodUsageList, Ogre::Resource::mName, mSubMeshList, Ogre::SubMesh::operationType, sharedVertexData, Ogre::SubMesh::useSharedVertices, and Ogre::SubMesh::vertexData. Referenced by load(). |
|
This method builds a set of tangent vectors for a given mesh into a 3D texture coordinate buffer.
Definition at line 884 of file OgreMesh.cpp. References Except, Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexBufferBinding::getBuffer(), getNumSubMeshes(), Ogre::VertexElement::getSource(), getSubMesh(), getTangentsBuffer(), Ogre::VertexElement::getType(), Ogre::IndexData::indexBuffer, Ogre::IndexData::indexCount, Ogre::SubMesh::indexData, Ogre::Resource::mName, Ogre::Vector3::normalise(), Ogre::Real, sharedVertexData, Ogre::SubMesh::useSharedVertices, Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::SubMesh::vertexData, Ogre::VertexData::vertexDeclaration, Ogre::VES_POSITION, Ogre::VES_TEXTURE_COORDINATES, Ogre::VET_FLOAT2, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z. |
|
Removes all bone assignments for this mesh.
Definition at line 388 of file OgreMesh.cpp. References mBoneAssignments, and mBoneAssignmentsOutOfDate. |
|
Makes a copy of this mesh object and gives it a new name.
Definition at line 205 of file OgreMesh.cpp. References Ogre::IndexData::clone(), Ogre::VertexData::clone(), createSubMesh(), Ogre::SubMesh::indexData, load(), mAABB, mBoneAssignments, Ogre::SubMesh::mBoneAssignments, mBoneAssignmentsOutOfDate, Ogre::SubMesh::mBoneAssignmentsOutOfDate, mBoundRadius, mIndexBufferShadowBuffer, mIndexBufferUsage, mIsLodManual, Ogre::SubMesh::mMaterialName, Ogre::SubMesh::mMatInitialised, mMeshLodUsageList, mNumLods, mSkeleton, mSkeletonName, mSubMeshList, mSubMeshNameMap, mVertexBufferShadowBuffer, mVertexBufferUsage, Ogre::SubMesh::parent, sharedVertexData, Ogre::Resource::touch(), Ogre::SubMesh::useSharedVertices, and Ogre::SubMesh::vertexData. |
|
Compile bone assignments into blend index and weight buffers.
Definition at line 517 of file OgreMesh.cpp. References Ogre::VertexDeclaration::addElement(), Ogre::VertexElement::baseVertexPointerToElement(), Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexDeclaration::getElement(), Ogre::VertexBufferBinding::getNextIndex(), Ogre::VertexElement::getSemantic(), Ogre::VertexElement::getSource(), Ogre::VertexDeclaration::insertElement(), Ogre::Real, Ogre::VertexDeclaration::removeElement(), Ogre::VertexBufferBinding::setBinding(), Ogre::VertexBufferBinding::unsetBinding(), Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::VertexData::vertexDeclaration, Ogre::VES_BLEND_INDICES, Ogre::VES_BLEND_WEIGHTS, Ogre::VES_POSITION, Ogre::VET_FLOAT1, and Ogre::VET_UBYTE4. Referenced by Ogre::SubMesh::_compileBoneAssignments(), and _compileBoneAssignments(). |
|
Software blending oriented bone assignment compilation.
|
|
Adds a new manual level-of-detail entry to this Mesh.
Definition at line 714 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, Ogre::Mesh::MeshLodUsage::fromDepthSquared, Ogre::Mesh::MeshLodUsage::manualMesh, Ogre::Mesh::MeshLodUsage::manualName, mIsLodManual, mMeshLodUsageList, mNumLods, and Ogre::Real. |
|
Creates a new SubMesh and gives it a name.
Definition at line 95 of file OgreMesh.cpp. References createSubMesh(), mSubMeshList, nameSubMesh(), and Ogre::ushort. |
|
Creates a new SubMesh.
Definition at line 85 of file OgreMesh.cpp. References mSubMeshList, Ogre::SubMesh::parent, and SubMesh. Referenced by clone(), Ogre::MeshManager::createCurvedIllusionPlane(), Ogre::MeshManager::createCurvedPlane(), Ogre::MeshManager::createPlane(), Ogre::MeshManager::createPrefabPlane(), createSubMesh(), Ogre::PatchMesh::load(), Ogre::MeshSerializerImpl_v1::readSubMesh(), and Ogre::MeshSerializerImpl::readSubMesh(). |
|
A method to make the resource delete itself.
Definition at line 137 of file OgreResource.h. |
|
Destroys and frees the edge lists this mesh has built.
Definition at line 1085 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, mIsLodManual, and mMeshLodUsageList. Referenced by buildEdgeList(), and unload(). |
|
Automatically generates lower level of detail versions of this mesh for use when a simpler version of the model is acceptable for rendering.
Definition at line 640 of file OgreMesh.cpp. References Ogre::ProgressiveMesh::build(), Ogre::Mesh::MeshLodUsage::edgeData, Ogre::Mesh::MeshLodUsage::fromDepthSquared, Ogre::Mesh::MeshLodUsage::manualMesh, mIsLodManual, mMeshLodUsageList, Ogre::Resource::mName, mNumLods, mSubMeshList, Ogre::Real, and sharedVertexData. |
|
Gets an iterator for access all bone assignments.
Definition at line 629 of file OgreMesh.cpp. References BoneAssignmentIterator, and mBoneAssignments. |
|
Gets the radius of the bounding sphere surrounding this mesh.
Definition at line 828 of file OgreMesh.cpp. References mBoundRadius, and Ogre::Real. Referenced by Ogre::MeshSerializerImpl::exportMesh(), and Ogre::Entity::getBoundingRadius(). |
|
Get the axis-aligned bounding box for this mesh.
Definition at line 309 of file OgreMesh.cpp. References mAABB. Referenced by Ogre::MeshSerializerImpl::exportMesh(), and Ogre::Entity::getBoundingBox(). |
|
Return the edge list for this mesh, building it if required.
Definition at line 1124 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, and getLodLevel(). Referenced by buildEdgeList(), and Ogre::Entity::getEdgeList(). |
|
Definition at line 120 of file OgreResource.h. References Ogre::ResourceHandle. Referenced by Ogre::Material::clone(), Ogre::BspLevel::loadQuake3Level(), and Ogre::ResourceManager::unload(). |
|
Gets the usage setting for this meshes index buffers.
Definition at line 483 of file OgreMesh.h. |
|
Gets the last time the resource was 'touched'.
Definition at line 108 of file OgreResource.h. |
|
Retrieves the level of detail index for the given depth value.
Definition at line 743 of file OgreMesh.cpp. References getLodIndexSquaredDepth(), Ogre::Real, and Ogre::ushort. |
|
Retrieves the level of detail index for the given squared depth value.
Definition at line 748 of file OgreMesh.cpp. References mMeshLodUsageList, Ogre::Real, and Ogre::ushort. Referenced by Ogre::Entity::_notifyCurrentCamera(), and getLodIndex(). |
|
Gets details of the numbered level of detail entry.
Definition at line 693 of file OgreMesh.cpp. References mIsLodManual, mMeshLodUsageList, and Ogre::ushort. Referenced by buildEdgeList(), Ogre::Entity::cacheBoneMatrices(), Ogre::Entity::Entity(), getEdgeList(), and Ogre::MeshSerializerImpl::writeLodInfo(). |
|
|
Returns the number of levels of detail that this mesh supports.
Definition at line 688 of file OgreMesh.cpp. References mNumLods, and Ogre::ushort. Referenced by Ogre::Entity::Entity(), Ogre::MeshSerializerImpl::writeLodInfo(), and Ogre::MeshSerializerImpl::writeMesh(). |
|
Gets the number of sub meshes which comprise this mesh.
Definition at line 102 of file OgreMesh.cpp. References mSubMeshList. Referenced by Ogre::Entity::buildSubEntityList(), buildTangentVectors(), Ogre::MeshSerializerImpl::calcMeshSize(), Ogre::MeshSerializerImpl::readMeshLodInfo(), Ogre::MeshSerializerImpl_v1::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::writeLodUsageGenerated(), and Ogre::MeshSerializerImpl::writeMesh(). |
|
Retrieves info about the size of the resource.
Definition at line 93 of file OgreResource.h. Referenced by Ogre::ResourceManager::unload(). |
|
Gets a pointer to any linked Skeleton.
Definition at line 376 of file OgreMesh.cpp. References mSkeleton. Referenced by Ogre::Entity::Entity(). |
|
Gets the name of any linked Skeleton.
Definition at line 635 of file OgreMesh.cpp. References mSkeletonName. Referenced by Ogre::MeshSerializerImpl::calcMeshSize(), and Ogre::MeshSerializerImpl::writeMesh(). |
|
Gets a SubMesh by name.
Definition at line 114 of file OgreMesh.cpp. References _getSubMeshIndex(), getSubMesh(), and Ogre::ushort. |
|
Gets a pointer to the submesh indicated by the index.
Definition at line 120 of file OgreMesh.cpp. References mSubMeshList. Referenced by Ogre::Entity::buildSubEntityList(), buildTangentVectors(), Ogre::MeshSerializerImpl::calcMeshSize(), Ogre::Node::getRenderOperation(), getSubMesh(), Ogre::MeshSerializerImpl::readMeshLodInfo(), Ogre::MeshSerializerImpl_v1::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::PatchMesh::setSubdivision(), Ogre::MeshSerializerImpl::writeLodUsageGenerated(), and Ogre::MeshSerializerImpl::writeMesh(). |
|
Gets an iterator over the available submeshes.
Definition at line 224 of file OgreMesh.h. |
|
Gets a reference to the optional name assignments of the SubMeshes.
Definition at line 593 of file OgreMesh.h. |
|
Internal method for getting or creating a 3D texture coord buffer to hold tangents.
Definition at line 845 of file OgreMesh.cpp. References Ogre::VertexDeclaration::addElement(), Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexBufferBinding::getBuffer(), Ogre::VertexBufferBinding::getNextIndex(), Ogre::VertexElement::getSource(), Ogre::VertexElement::getType(), Ogre::VertexDeclaration::removeElement(), Ogre::VertexBufferBinding::setBinding(), Ogre::VertexBufferBinding::unsetBinding(), Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::VertexData::vertexDeclaration, Ogre::VES_TEXTURE_COORDINATES, and Ogre::VET_FLOAT3. Referenced by buildTangentVectors(). |
|
Gets the usage setting for this meshes vertex buffers.
Definition at line 481 of file OgreMesh.h. Referenced by Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords(). |
|
Returns true if this Mesh has a linked Skeleton.
Definition at line 371 of file OgreMesh.cpp. References mSkeletonName. Referenced by Ogre::Entity::cacheBoneMatrices(), Ogre::MeshSerializerImpl::calcMeshSize(), Ogre::Entity::Entity(), and Ogre::MeshSerializerImpl::writeMesh(). |
|
Gets whether or not this meshes index buffers are shadowed.
Definition at line 487 of file OgreMesh.h. |
|
Returns true if the Resource has been loaded, false otherwise.
Definition at line 127 of file OgreResource.h. Referenced by Ogre::GpuProgramUsage::_load(), Ogre::SceneManager::deriveShadowCasterPass(), Ogre::SceneManager::deriveShadowReceiverPass(), Ogre::Technique::isLoaded(), Ogre::D3D9Texture::load(), Ogre::D3D9Texture::unload(), and Ogre::D3D9Texture::~D3D9Texture(). |
|
Returns true if this mesh is using manual LOD.
Definition at line 422 of file OgreMesh.h. Referenced by Ogre::Entity::_updateRenderQueue(), Ogre::Entity::cacheBoneMatrices(), Ogre::Entity::Entity(), Ogre::Entity::getShadowVolumeRenderableIterator(), Ogre::MeshSerializerImpl::readMeshLodInfo(), and Ogre::MeshSerializerImpl::writeLodInfo(). |
|
Returns whether this mesh has already had it's geometry prepared for use in rendering shadow volumes.
Definition at line 570 of file OgreMesh.h. Referenced by Ogre::Entity::getShadowVolumeRenderableIterator(). |
|
Gets whether or not this meshes vertex buffers are shadowed.
Definition at line 485 of file OgreMesh.h. Referenced by Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords(). |
|
Generic load - called by MeshManager.
Implements Ogre::Resource. Reimplemented in Ogre::PatchMesh. Definition at line 126 of file OgreMesh.cpp. References buildEdgeList(), Ogre::DataChunk::clear(), Except, Ogre::MeshSerializer::importMesh(), Ogre::Resource::mIsLoaded, mManuallyDefined, Ogre::Resource::mName, prepareForShadowVolume(), Ogre::String::split(), Ogre::String::toLowerCase(), and unload(). Referenced by clone(), Ogre::MeshManager::createCurvedIllusionPlane(), Ogre::MeshManager::createCurvedPlane(), and Ogre::MeshManager::createPlane(). |
|
Gives a name to a SubMesh.
Definition at line 108 of file OgreMesh.cpp. References mSubMeshNameMap, and Ogre::ushort. Referenced by createSubMesh(), and Ogre::MeshSerializerImpl::readSubMeshNameTable(). |
|
This method prepares the mesh for generating a renderable shadow volume.
Definition at line 1105 of file OgreMesh.cpp. References mPreparedForShadowVolumes, mSubMeshList, Ogre::VertexData::prepareForShadowVolume(), sharedVertexData, Ogre::SubMesh::useSharedVertices, and Ogre::SubMesh::vertexData. Referenced by Ogre::Entity::getShadowVolumeRenderableIterator(), and load(). |
|
Removes all LOD data from this Mesh.
Definition at line 802 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::fromDepthSquared, mIsLodManual, mMeshLodUsageList, mNumLods, and mSubMeshList. |
|
Sets the policy for the index buffers to be used when loading this Mesh.
Definition at line 839 of file OgreMesh.cpp. References mIndexBufferShadowBuffer, and mIndexBufferUsage. Referenced by Ogre::MeshManager::load(). |
|
Call this to indicate that this Mesh will be manually defined rather than loaded from a file.
Definition at line 199 of file OgreMesh.cpp. References mManuallyDefined. Referenced by Ogre::MeshManager::createBezierPatch(), and Ogre::MeshManager::createManual(). |
|
Sets the name of the skeleton this Mesh uses for animation.
Definition at line 341 of file OgreMesh.cpp. References Ogre::Skeleton::load(), Ogre::Resource::mName, mSkeleton, and mSkeletonName. Referenced by Mesh(), and Ogre::MeshSerializerImpl::readSkeletonLink(). |
|
Sets the policy for the vertex buffers to be used when loading this Mesh.
Definition at line 833 of file OgreMesh.cpp. References mVertexBufferShadowBuffer, and mVertexBufferUsage. Referenced by Ogre::MeshManager::load(). |
|
Performs a software indexed vertex blend, of the kind used for skeletal animation although it can be used for other purposes.
Definition at line 1129 of file OgreMesh.cpp. References Ogre::VertexElement::baseVertexPointerToElement(), Ogre::VertexDeclaration::findElementBySemantic(), Ogre::SharedPtr< HardwareVertexBuffer >::get(), Ogre::VertexBufferBinding::getBuffer(), Ogre::VertexElement::getOffset(), Ogre::VertexElement::getSource(), Ogre::VertexElement::getType(), Ogre::Vector3::normalise(), Ogre::Real, Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::VertexData::vertexDeclaration, Ogre::VES_BLEND_INDICES, Ogre::VES_BLEND_WEIGHTS, Ogre::VES_NORMAL, Ogre::VES_POSITION, Ogre::VET_UBYTE4, Ogre::Vector3::x, Ogre::Vector3::y, and Ogre::Vector3::z. |
|
'Touches' the resource to indicate it has been used.
Reimplemented in Ogre::Material. Definition at line 100 of file OgreResource.h. Referenced by clone(), Ogre::MeshManager::createCurvedIllusionPlane(), Ogre::MeshManager::createCurvedPlane(), Ogre::MeshManager::createPlane(), and Ogre::ResourceManager::load(). |
|
Generic unload - called by MeshManager.
Reimplemented from Ogre::Resource. Definition at line 177 of file OgreMesh.cpp. References freeEdgeList(), Ogre::Resource::mIsLoaded, mSubMeshList, mSubMeshNameMap, and sharedVertexData. |
|
Changes the alternate mesh to use as a manual LOD at the given index.
Definition at line 728 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, Ogre::Mesh::MeshLodUsage::manualMesh, Ogre::Mesh::MeshLodUsage::manualName, mIsLodManual, mMeshLodUsageList, and Ogre::ushort. |
|
Definition at line 81 of file OgreMesh.h. |
|
Definition at line 82 of file OgreMesh.h. |
|
Definition at line 83 of file OgreMesh.h. Referenced by createSubMesh(). |
|
Local bounding box volume.
Definition at line 125 of file OgreMesh.h. Referenced by _setBounds(), clone(), getBounds(), Ogre::MeshSerializerImpl_v1::readGeometry(), and Ogre::MeshSerializerImpl::writeBoundsInfo(). |
|
Definition at line 140 of file OgreMesh.h. Referenced by _compileBoneAssignments(), addBoneAssignment(), clearBoneAssignments(), clone(), getBoneAssignmentIterator(), and Ogre::MeshSerializerImpl::writeMesh(). |
|
Flag indicating that bone assignments need to be recompiled.
Definition at line 143 of file OgreMesh.h. Referenced by _compileBoneAssignments(), addBoneAssignment(), clearBoneAssignments(), clone(), and Mesh(). |
|
Local bounding sphere radius (centered on object).
Definition at line 127 of file OgreMesh.h. Referenced by _setBoundingSphereRadius(), _setBounds(), clone(), getBoundingSphereRadius(), Mesh(), Ogre::MeshSerializerImpl_v1::readGeometry(), and Ogre::MeshSerializerImpl::writeBoundsInfo(). |
|
Definition at line 166 of file OgreMesh.h. Referenced by Mesh(). |
|
Definition at line 57 of file OgreResource.h. Referenced by Ogre::ResourceManager::add(), Ogre::Material::clone(), Ogre::Material::copyDetailsTo(), and Ogre::Material::operator=(). |
|
Definition at line 162 of file OgreMesh.h. Referenced by clone(), Ogre::PatchMesh::load(), Mesh(), Ogre::PatchMesh::PatchMesh(), Ogre::MeshSerializerImpl::readGeometryPositions(), Ogre::MeshSerializerImpl_v1::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl_v1::readSubMesh(), Ogre::MeshSerializerImpl::readSubMesh(), and setIndexBufferPolicy(). |
|
Definition at line 160 of file OgreMesh.h. Referenced by clone(), Ogre::PatchMesh::load(), Mesh(), Ogre::PatchMesh::PatchMesh(), Ogre::MeshSerializerImpl_v1::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl_v1::readSubMesh(), Ogre::MeshSerializerImpl::readSubMesh(), and setIndexBufferPolicy(). |
|
|
Definition at line 154 of file OgreMesh.h. Referenced by _setLodInfo(), buildEdgeList(), clone(), createManualLodLevel(), freeEdgeList(), generateLodLevels(), getLodLevel(), Mesh(), Ogre::MeshSerializerImpl::readMeshLodInfo(), removeLodLevels(), and updateManualLodLevel(). |
|
Definition at line 59 of file OgreResource.h. Referenced by Ogre::Material::operator=(). |
|
Definition at line 129 of file OgreMesh.h. Referenced by load(), Mesh(), and setManuallyDefined(). |
|
Definition at line 157 of file OgreMesh.h. Referenced by _setLodInfo(), _setLodUsage(), buildEdgeList(), clone(), createManualLodLevel(), freeEdgeList(), generateLodLevels(), getLodIndexSquaredDepth(), getLodLevel(), Mesh(), Ogre::MeshSerializerImpl::readMeshLodInfo(), removeLodLevels(), and updateManualLodLevel(). |
|
|
Definition at line 155 of file OgreMesh.h. Referenced by _setLodInfo(), clone(), createManualLodLevel(), generateLodLevels(), getNumLodLevels(), Mesh(), Ogre::MeshSerializerImpl::readMeshLodInfo(), and removeLodLevels(). |
|
Definition at line 165 of file OgreMesh.h. Referenced by Mesh(), and prepareForShadowVolume(). |
|
Definition at line 60 of file OgreResource.h. Referenced by Ogre::D3D9Texture::_setFinalAttributes(), Ogre::D3DTexture::loadImage(), Ogre::D3DTexture::loadImage3D(), Ogre::GLTexture::loadImages(), and Ogre::Material::operator=(). |
|
Definition at line 137 of file OgreMesh.h. Referenced by _initAnimationState(), _notifySkeleton(), clone(), getSkeleton(), and setSkeletonName(). |
|
Optional linked skeleton.
Definition at line 136 of file OgreMesh.h. Referenced by _notifySkeleton(), clone(), getSkeletonName(), hasSkeleton(), and setSkeletonName(). |
|
A list of submeshes which make up this mesh. Each mesh is made up of 1 or more submeshes, which are each based on a single material and can have their own vertex data (they may not - they can share vertex data from the Mesh, depending on preference). Definition at line 111 of file OgreMesh.h. Referenced by _initAnimationState(), _setLodInfo(), _setSubMeshLodFaceList(), buildEdgeList(), clone(), createSubMesh(), generateLodLevels(), getNumSubMeshes(), getSubMesh(), prepareForShadowVolume(), removeLodLevels(), and unload(). |
|
Definition at line 122 of file OgreMesh.h. Referenced by _getSubMeshIndex(), Ogre::MeshSerializerImpl::calcSubMeshNameTableSize(), clone(), nameSubMesh(), unload(), and Ogre::MeshSerializerImpl::writeSubMeshNameTable(). |
|
Definition at line 161 of file OgreMesh.h. Referenced by clone(), Ogre::PatchMesh::load(), Mesh(), Ogre::PatchMesh::PatchMesh(), Ogre::MeshSerializerImpl_v1::readGeometry(), Ogre::MeshSerializerImpl::readGeometryColours(), Ogre::MeshSerializerImpl::readGeometryNormals(), Ogre::MeshSerializerImpl::readGeometryTexCoords(), and setVertexBufferPolicy(). |
|
Definition at line 159 of file OgreMesh.h. Referenced by clone(), Ogre::PatchMesh::load(), Mesh(), Ogre::PatchMesh::PatchMesh(), Ogre::MeshSerializerImpl_v1::readGeometry(), Ogre::MeshSerializerImpl::readGeometryColours(), Ogre::MeshSerializerImpl::readGeometryNormals(), Ogre::MeshSerializerImpl::readGeometryPositions(), Ogre::MeshSerializerImpl::readGeometryTexCoords(), and setVertexBufferPolicy(). |
|
Copyright © 2002-2003 by The OGRE Team
Last modified Fri May 14 23:26:33 2004