#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 > | 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, bool pad=true) |
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. | |
bool | suggestTangentVectorBuildParams (unsigned short &outSourceCoordSet, unsigned short &outDestCoordSet) |
Ask the mesh to suggest parameters to a future buildTangentVectors call. | |
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. | |
const EdgeData * | getEdgeList (unsigned int lodIndex=0) const |
Return the edge list for this mesh, building it if required. | |
bool | isPreparedForShadowVolumes (void) const |
Returns whether this mesh has already had it's geometry prepared for use in rendering shadow volumes. | |
bool | isEdgeListBuilt (void) const |
Returns whether this mesh has an attached edge list. | |
const SubMeshNameMap & | getSubMeshNameMap (void) const |
Gets a reference to the optional name assignments of the SubMeshes. | |
void | setAutoBuildEdgeLists (bool autobuild) |
Sets whether or not this Mesh should automatically build edge lists when asked for them, or whether it should never build them if they are not already provided. | |
bool | getAutoBuildEdgeLists (void) const |
Sets whether or not this Mesh should automatically build edge lists when asked for them, or whether it should never build them if they are not already provided. | |
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 | |
void | organiseTangentsBuffer (VertexData *vertexData, unsigned short destCoordSet) |
Internal method for making the space for 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 |
bool | mAutoBuildEdgeLists |
String | mName |
ResourceHandle | mHandle |
bool | mIsLoaded |
time_t | mLastAccess |
size_t | mSize |
Friends | |
class | MeshSerializerImpl |
class | MeshSerializerImpl_v1_1 |
class | MeshSerializerImpl_v1_2 |
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 102 of file OgreMesh.h. Referenced by getBoneAssignmentIterator(). |
|
Definition at line 99 of file OgreMesh.h. |
|
Definition at line 154 of file OgreMesh.h. |
|
Definition at line 221 of file OgreMesh.h. |
|
Definition at line 103 of file OgreMesh.h. |
|
A hashmap used to store optional SubMesh names. Translates a name into SubMesh index Definition at line 121 of file OgreMesh.h. |
|
Multimap of vertex bone assignments (orders by vertex index).
Definition at line 101 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, mAutoBuildEdgeLists, mBoneAssignmentsOutOfDate, mBoundRadius, mEdgeListsBuilt, mIndexBufferShadowBuffer, mIndexBufferUsage, mIsLodManual, mManuallyDefined, mMeshLodUsageList, Ogre::Resource::mName, mNumLods, mPreparedForShadowVolumes, mVertexBufferShadowBuffer, mVertexBufferUsage, setSkeletonName(), sharedVertexData, and Ogre::String. |
|
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 496 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 835 of file OgreMesh.cpp. References Except, mSubMeshNameMap, Ogre::String, and Ogre::ushort. Referenced by Ogre::Entity::getSubEntity(), and getSubMesh(). |
|
Initialise an animation set suitable for use with this mesh.
Definition at line 390 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 627 of file OgreMesh.cpp. References Ogre::Resource::getName(), mSkeleton, and mSkeletonName. |
|
Rationalises the passed in bone assignment list.
Definition at line 411 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 331 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(), and Ogre::MeshSerializerImpl::readBoundsInfo(). |
|
Manually set the bounding box for this Mesh.
Definition at line 303 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(), and Ogre::MeshSerializerImpl::readBoundsInfo(). |
|
Internal methods for loading LOD, do not use.
Definition at line 791 of file OgreMesh.cpp. References mEdgeListsBuilt, mIsLodManual, mMeshLodUsageList, mNumLods, and mSubMeshList. |
|
Internal methods for loading LOD, do not use.
Definition at line 808 of file OgreMesh.cpp. References mEdgeListsBuilt, and mMeshLodUsageList. |
|
Internal methods for loading LOD, do not use.
Definition at line 819 of file OgreMesh.cpp. References mEdgeListsBuilt, mIsLodManual, Ogre::SubMesh::mLodFaceList, and mSubMeshList. |
|
Assigns a vertex to a bone with a given weight, for skeletal animation.
Definition at line 377 of file OgreMesh.cpp. References mBoneAssignments, mBoneAssignmentsOutOfDate, and Ogre::VertexBoneAssignment_s::vertexIndex. Referenced by 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 1256 of file OgreMesh.cpp. References Ogre::EdgeListBuilder::addIndexData(), Ogre::EdgeListBuilder::addVertexData(), Ogre::EdgeListBuilder::build(), Ogre::Mesh::MeshLodUsage::edgeData, getEdgeList(), getLodLevel(), Ogre::SubMesh::indexData, Ogre::EdgeData::log(), Ogre::Mesh::MeshLodUsage::manualMesh, mEdgeListsBuilt, mIsLodManual, Ogre::SubMesh::mLodFaceList, mMeshLodUsageList, Ogre::Resource::mName, mSubMeshList, Ogre::SubMesh::operationType, sharedVertexData, Ogre::SubMesh::useSharedVertices, and Ogre::SubMesh::vertexData. Referenced by getEdgeList(), and load(). |
|
This method builds a set of tangent vectors for a given mesh into a 3D texture coordinate buffer.
Definition at line 972 of file OgreMesh.cpp. References Ogre::VertexElement::baseVertexPointerToElement(), Except, Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexBufferBinding::getBuffer(), getNumSubMeshes(), Ogre::VertexElement::getSource(), getSubMesh(), Ogre::VertexElement::getType(), Ogre::IndexData::indexBuffer, Ogre::IndexData::indexCount, Ogre::SubMesh::indexData, Ogre::SharedPtr< HardwareVertexBuffer >::isNull(), Ogre::Resource::mName, Ogre::Vector3::normalise(), organiseTangentsBuffer(), 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 384 of file OgreMesh.cpp. References mBoneAssignments, and mBoneAssignmentsOutOfDate. |
|
|
Compile bone assignments into blend index and weight buffers.
Definition at line 513 of file OgreMesh.cpp. References Ogre::VertexDeclaration::addElement(), Ogre::VertexElement::baseVertexPointerToElement(), Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexDeclaration::getElement(), Ogre::VertexDeclaration::getElementCount(), 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 732 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, Ogre::Mesh::MeshLodUsage::fromDepthSquared, Ogre::Mesh::MeshLodUsage::manualMesh, Ogre::Mesh::MeshLodUsage::manualName, mIsLodManual, mMeshLodUsageList, mNumLods, Ogre::Real, and Ogre::String. |
|
Creates a new SubMesh and gives it a name.
Definition at line 95 of file OgreMesh.cpp. References createSubMesh(), mSubMeshList, nameSubMesh(), Ogre::String, 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(), 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 1339 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, mEdgeListsBuilt, mIsLodManual, and mMeshLodUsageList. Referenced by removeLodLevels(). |
|
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 644 of file OgreMesh.cpp. References Ogre::ProgressiveMesh::build(), Ogre::Mesh::MeshLodUsage::edgeData, Ogre::Mesh::MeshLodUsage::fromDepthSquared, Ogre::Mesh::MeshLodUsage::manualMesh, mMeshLodUsageList, Ogre::Resource::mName, mNumLods, mSubMeshList, Ogre::Real, removeLodLevels(), and sharedVertexData. |
|
Sets whether or not this Mesh should automatically build edge lists when asked for them, or whether it should never build them if they are not already provided.
Definition at line 626 of file OgreMesh.h. Referenced by Ogre::Entity::Entity(). |
|
Gets an iterator for access all bone assignments.
Definition at line 633 of file OgreMesh.cpp. References BoneAssignmentIterator, and mBoneAssignments. |
|
Gets the radius of the bounding sphere surrounding this mesh.
Definition at line 874 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 298 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 1397 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, and getLodLevel(). |
|
Return the edge list for this mesh, building it if required.
Definition at line 1386 of file OgreMesh.cpp. References buildEdgeList(), Ogre::Mesh::MeshLodUsage::edgeData, getLodLevel(), mAutoBuildEdgeLists, and mEdgeListsBuilt. Referenced by buildEdgeList(), Ogre::MeshSerializerImpl::calcEdgeListSize(), Ogre::Entity::getEdgeList(), and Ogre::MeshSerializerImpl::writeEdgeList(). |
|
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 475 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 767 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 772 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 701 of file OgreMesh.cpp. References mIsLodManual, mMeshLodUsageList, and Ogre::ushort. Referenced by buildEdgeList(), Ogre::Entity::cacheBoneMatrices(), Ogre::Entity::Entity(), getEdgeList(), Ogre::MeshSerializerImpl::readEdgeList(), and Ogre::MeshSerializerImpl::writeLodInfo(). |
|
|
Returns the number of levels of detail that this mesh supports.
Definition at line 696 of file OgreMesh.cpp. References mNumLods, and Ogre::ushort. Referenced by Ogre::MeshSerializerImpl::calcEdgeListSize(), Ogre::Entity::Entity(), Ogre::MeshSerializerImpl::writeEdgeList(), 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::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 372 of file OgreMesh.cpp. References mSkeleton. Referenced by Ogre::Entity::Entity(), and Ogre::Entity::shareSkeletonInstanceWith(). |
|
Gets the name of any linked Skeleton.
Definition at line 639 of file OgreMesh.cpp. References mSkeletonName, and Ogre::String. 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(), Ogre::String, 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::readEdgeList(), Ogre::MeshSerializerImpl::readMeshLodInfo(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::PatchMesh::setSubdivision(), Ogre::MeshSerializerImpl::writeLodUsageGenerated(), and Ogre::MeshSerializerImpl::writeMesh(). |
|
Gets an iterator over the available submeshes.
Definition at line 223 of file OgreMesh.h. |
|
Gets a reference to the optional name assignments of the SubMeshes.
Definition at line 609 of file OgreMesh.h. |
|
Gets the usage setting for this meshes vertex buffers.
Definition at line 473 of file OgreMesh.h. Referenced by Ogre::MeshSerializerImpl_v1_1::readGeometryTexCoords(). |
|
Returns true if this Mesh has a linked Skeleton.
Definition at line 367 of file OgreMesh.cpp. References mSkeletonName. Referenced by Ogre::Entity::cacheBoneMatrices(), Ogre::MeshSerializerImpl::calcMeshSize(), Ogre::Entity::Entity(), and Ogre::MeshSerializerImpl::writeMesh(). |
|
Returns whether this mesh has an attached edge list.
Definition at line 587 of file OgreMesh.h. Referenced by Ogre::MeshSerializerImpl::calcMeshSize(), Ogre::Entity::Entity(), and Ogre::MeshSerializerImpl::writeMesh(). |
|
Gets whether or not this meshes index buffers are shadowed.
Definition at line 479 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 414 of file OgreMesh.h. Referenced by Ogre::Entity::_updateRenderQueue(), Ogre::Entity::cacheBoneMatrices(), Ogre::MeshSerializerImpl::calcEdgeListSize(), Ogre::Entity::Entity(), Ogre::Entity::getShadowVolumeRenderableIterator(), Ogre::MeshSerializerImpl::readMeshLodInfo(), Ogre::Entity::setRenderQueueGroup(), Ogre::MeshSerializerImpl::writeEdgeList(), and Ogre::MeshSerializerImpl::writeLodInfo(). |
|
Returns whether this mesh has already had it's geometry prepared for use in rendering shadow volumes.
Definition at line 584 of file OgreMesh.h. Referenced by Ogre::Entity::getShadowVolumeRenderableIterator(). |
|
Gets whether or not this meshes vertex buffers are shadowed.
Definition at line 477 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(), mAutoBuildEdgeLists, mEdgeListsBuilt, Ogre::Resource::mIsLoaded, mManuallyDefined, Ogre::Resource::mName, prepareForShadowVolume(), Ogre::String, 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, Ogre::String, and Ogre::ushort. Referenced by createSubMesh(), and Ogre::MeshSerializerImpl::readSubMeshNameTable(). |
|
Internal method for making the space for a 3D texture coord buffer to hold tangents.
Definition at line 891 of file OgreMesh.cpp. References Ogre::VertexDeclaration::addElement(), Except, Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexBufferBinding::getBuffer(), Ogre::VertexElement::getSource(), Ogre::VertexElement::getType(), Ogre::VertexBufferBinding::setBinding(), Ogre::VertexData::vertexBufferBinding, Ogre::VertexData::vertexCount, Ogre::VertexData::vertexDeclaration, Ogre::VES_TEXTURE_COORDINATES, and Ogre::VET_FLOAT3. Referenced by buildTangentVectors(). |
|
This method prepares the mesh for generating a renderable shadow volume.
Definition at line 1364 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 845 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, freeEdgeList(), Ogre::Mesh::MeshLodUsage::fromDepthSquared, Ogre::Mesh::MeshLodUsage::manualMesh, mIsLodManual, mMeshLodUsageList, mNumLods, and mSubMeshList. Referenced by generateLodLevels(), and unload(). |
|
Sets whether or not this Mesh should automatically build edge lists when asked for them, or whether it should never build them if they are not already provided.
Definition at line 621 of file OgreMesh.h. |
|
Sets the policy for the index buffers to be used when loading this Mesh.
Definition at line 885 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 207 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 336 of file OgreMesh.cpp. References Ogre::Skeleton::load(), Ogre::Resource::mName, mSkeleton, mSkeletonName, and Ogre::String. Referenced by Mesh(), and Ogre::MeshSerializerImpl::readSkeletonLink(). |
|
Sets the policy for the vertex buffers to be used when loading this Mesh.
Definition at line 879 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 1402 of file OgreMesh.cpp. References Ogre::VertexElement::baseVertexPointerToElement(), Ogre::VertexDeclaration::findElementBySemantic(), Ogre::SharedPtr< HardwareVertexBuffer >::get(), Ogre::VertexBufferBinding::getBuffer(), Ogre::VertexElement::getOffset(), Ogre::VertexElement::getSize(), 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. |
|
Ask the mesh to suggest parameters to a future buildTangentVectors call.
Definition at line 1154 of file OgreMesh.cpp. References Except, Ogre::VertexDeclaration::findElementBySemantic(), Ogre::VertexElement::getIndex(), Ogre::VertexElement::getType(), mSubMeshList, OGRE_MAX_TEXTURE_COORD_SETS, sharedVertexData, Ogre::SubMesh::useSharedVertices, Ogre::SubMesh::vertexData, Ogre::VertexData::vertexDeclaration, Ogre::VES_TEXTURE_COORDINATES, Ogre::VET_FLOAT2, and Ogre::VET_FLOAT3. |
|
'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 184 of file OgreMesh.cpp. References Ogre::Resource::mIsLoaded, mPreparedForShadowVolumes, mSubMeshList, mSubMeshNameMap, removeLodLevels(), and sharedVertexData. |
|
Changes the alternate mesh to use as a manual LOD at the given index.
Definition at line 751 of file OgreMesh.cpp. References Ogre::Mesh::MeshLodUsage::edgeData, Ogre::Mesh::MeshLodUsage::manualMesh, Ogre::Mesh::MeshLodUsage::manualName, mIsLodManual, mMeshLodUsageList, Ogre::String, 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. |
|
Definition at line 84 of file OgreMesh.h. Referenced by createSubMesh(). |
|
Local bounding box volume.
Definition at line 126 of file OgreMesh.h. Referenced by _setBounds(), clone(), getBounds(), and Ogre::MeshSerializerImpl::writeBoundsInfo(). |
|
Definition at line 165 of file OgreMesh.h. Referenced by getEdgeList(), load(), Mesh(), Ogre::MeshSerializerImpl_v1_2::readMesh(), and Ogre::MeshSerializerImpl::readMesh(). |
|
Definition at line 138 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 141 of file OgreMesh.h. Referenced by _compileBoneAssignments(), addBoneAssignment(), clearBoneAssignments(), clone(), and Mesh(). |
|
Local bounding sphere radius (centered on object).
Definition at line 128 of file OgreMesh.h. Referenced by _setBoundingSphereRadius(), _setBounds(), clone(), getBoundingSphereRadius(), Mesh(), and Ogre::MeshSerializerImpl::writeBoundsInfo(). |
|
Definition at line 164 of file OgreMesh.h. Referenced by _setLodInfo(), _setLodUsage(), _setSubMeshLodFaceList(), buildEdgeList(), freeEdgeList(), getEdgeList(), load(), Mesh(), and Ogre::MeshSerializerImpl::readEdgeList(). |
|
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 160 of file OgreMesh.h. Referenced by clone(), Ogre::PatchMesh::load(), Mesh(), Ogre::PatchMesh::PatchMesh(), Ogre::MeshSerializerImpl_v1_2::readGeometryPositions(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readSubMesh(), and setIndexBufferPolicy(). |
|
Definition at line 158 of file OgreMesh.h. Referenced by clone(), Ogre::PatchMesh::load(), Mesh(), Ogre::PatchMesh::PatchMesh(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readSubMesh(), and setIndexBufferPolicy(). |
|
|
Definition at line 152 of file OgreMesh.h. Referenced by _setLodInfo(), _setSubMeshLodFaceList(), buildEdgeList(), clone(), createManualLodLevel(), freeEdgeList(), getLodLevel(), Mesh(), Ogre::MeshSerializerImpl::readMeshLodInfo(), removeLodLevels(), and updateManualLodLevel(). |
|
Definition at line 59 of file OgreResource.h. Referenced by Ogre::Material::operator=(). |
|
Definition at line 130 of file OgreMesh.h. Referenced by load(), Mesh(), and setManuallyDefined(). |
|
Definition at line 155 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 153 of file OgreMesh.h. Referenced by _setLodInfo(), clone(), createManualLodLevel(), generateLodLevels(), getNumLodLevels(), Mesh(), Ogre::MeshSerializerImpl::readMeshLodInfo(), and removeLodLevels(). |
|
Definition at line 163 of file OgreMesh.h. Referenced by Mesh(), prepareForShadowVolume(), and unload(). |
|
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 135 of file OgreMesh.h. Referenced by _initAnimationState(), _notifySkeleton(), clone(), getSkeleton(), and setSkeletonName(). |
|
Optional linked skeleton.
Definition at line 134 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 112 of file OgreMesh.h. Referenced by _initAnimationState(), _setLodInfo(), _setSubMeshLodFaceList(), buildEdgeList(), clone(), createSubMesh(), generateLodLevels(), getNumSubMeshes(), getSubMesh(), prepareForShadowVolume(), removeLodLevels(), suggestTangentVectorBuildParams(), and unload(). |
|
Definition at line 123 of file OgreMesh.h. Referenced by _getSubMeshIndex(), Ogre::MeshSerializerImpl::calcSubMeshNameTableSize(), clone(), nameSubMesh(), unload(), and Ogre::MeshSerializerImpl::writeSubMeshNameTable(). |
|
Definition at line 159 of file OgreMesh.h. Referenced by clone(), Ogre::PatchMesh::load(), Mesh(), Ogre::PatchMesh::PatchMesh(), Ogre::MeshSerializerImpl_v1_2::readGeometryColours(), Ogre::MeshSerializerImpl_v1_2::readGeometryNormals(), Ogre::MeshSerializerImpl_v1_2::readGeometryTexCoords(), Ogre::MeshSerializerImpl::readGeometryVertexBuffer(), and setVertexBufferPolicy(). |
|
Definition at line 157 of file OgreMesh.h. Referenced by clone(), Ogre::PatchMesh::load(), Mesh(), Ogre::PatchMesh::PatchMesh(), Ogre::MeshSerializerImpl_v1_2::readGeometryColours(), Ogre::MeshSerializerImpl_v1_2::readGeometryNormals(), Ogre::MeshSerializerImpl_v1_2::readGeometryPositions(), Ogre::MeshSerializerImpl_v1_2::readGeometryTexCoords(), Ogre::MeshSerializerImpl::readGeometryVertexBuffer(), and setVertexBufferPolicy(). |
|
Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:51:13 2004