|  | OGRE-Next 3.0.0
    Object-Oriented Graphics Rendering Engine | 
Patch specialisation of Mesh. More...
#include <OgrePatchMesh.h>
 Inheritance diagram for Ogre::v1::PatchMesh:
 Inheritance diagram for Ogre::v1::PatchMesh:| Public Member Functions | |
| PatchMesh (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group) | |
| Constructor. | |
| void | define (void *controlPointBuffer, VertexDeclaration *declaration, size_t width, size_t height, size_t uMaxSubdivisionLevel=(size_t) PatchSurface::AUTO_LEVEL, size_t vMaxSubdivisionLevel=(size_t) PatchSurface::AUTO_LEVEL, PatchSurface::VisibleSide visibleSide=PatchSurface::VS_FRONT, HardwareBuffer::Usage vbUsage=HardwareBuffer::HBU_STATIC_WRITE_ONLY, HardwareBuffer::Usage ibUsage=HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY, bool vbUseShadow=false, bool ibUseShadow=false) | 
| Define the patch, as defined in MeshManager::createBezierPatch. | |
| void | setSubdivision (Real factor) | 
| void | update (void *controlPointBuffer, size_t width, size_t height, size_t uMaxSubdivisionLevel, size_t vMaxSubdivisionLevel, PatchSurface::VisibleSide visibleSide) | 
| Update the mesh with new control points positions. | |
|  Public Member Functions inherited from Ogre::v1::Mesh | |
| Mesh (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0) | |
| Default constructor - used by MeshManager. | |
| ~Mesh () override | |
| void | _calcBoundsFromVertexBuffer (VertexData *vertexData, AxisAlignedBox &outAABB, Real &outRadius, bool updateOnly=false) | 
| Calculates. | |
| void | _compileBoneAssignments () | 
| Internal method, be called once to compile bone assignments into geometry buffer. | |
| void | _computeBoneBoundingRadius () | 
| Compute the bone bounding radius by looking at the vertices, vertex-bone-assignments, and skeleton bind pose. | |
| void | _determineAnimationTypes () const | 
| Internal method which, if animation types have not been determined, scans any vertex animations and determines the type for each set of vertex data (cannot have 2 different types). | |
| virtual Animation * | _getAnimationImpl (const String &name) const | 
| Internal access to the named vertex Animation object - returns null if it does not exist. | |
| bool | _getAnimationTypesDirty () const | 
| Are the derived animation types out of date? | |
| const LodValueArray * | _getLodValueArray () const | 
| unsigned | _getSubMeshIndex (const String &name) const | 
| Gets the index of a submesh with a given name. | |
| void | _initAnimationState (AnimationStateSet *animSet) | 
| Initialise an animation set suitable for use with this mesh. | |
| bool | _isManualLodLevel (unsigned short level) const | 
| Internal methods for loading LOD, do not use. | |
| void | _notifySkeleton (SkeletonPtr &pSkel) | 
| Internal notification, used to tell the Mesh which Skeleton to use without loading it. | |
| unsigned short | _rationaliseBoneAssignments (size_t vertexCount, VertexBoneAssignmentList &assignments) | 
| Rationalises the passed in bone assignment list. | |
| void | _refreshAnimationState (AnimationStateSet *animSet) | 
| Refresh an animation set suitable for use with this mesh. | |
| void | _setBoneBoundingRadius (Real radius) | 
| Manually set the bone bounding radius. | |
| void | _setBoundingSphereRadius (Real radius) | 
| Manually set the bounding radius. | |
| void | _setBounds (const AxisAlignedBox &bounds, bool pad=true) | 
| Manually set the bounding box for this Mesh. | |
| void | _setLodInfo (unsigned short numLevels) | 
| Internal methods for loading LOD, do not use. | |
| void | _setLodUsage (unsigned short level, const MeshLodUsage &usage) | 
| Internal methods for loading LOD, do not use. | |
| void | _setSubMeshLodFaceList (unsigned subIdx, unsigned short level, IndexData *facedata, bool casterPass) | 
| Internal methods for loading LOD, do not use. | |
| void | _updateBoundsFromVertexBuffers (bool pad=false) | 
| Automatically update the bounding radius and bounding box for this Mesh. | |
| void | _updateCompiledBoneAssignments () | 
| Internal method, be called once to update the compiled bone assignments. | |
| void | addBoneAssignment (const VertexBoneAssignment &vertBoneAssign) | 
| Assigns a vertex to a bone with a given weight, for skeletal animation. | |
| void | arrangeEfficient (bool halfPos, bool halfTexCoords, bool qTangents) | 
| Rearranges the buffers in this Mesh so that they are more efficient for rendering with shaders. | |
| void | buildEdgeList () | 
| Builds an edge list for this mesh, which can be used for generating a shadow volume among other things. | |
| void | buildTangentVectors (VertexElementSemantic targetSemantic=VES_TANGENT, unsigned short sourceTexCoordSet=0, unsigned short index=0, bool splitMirrored=false, bool splitRotated=false, bool storeParityInW=false) | 
| This method builds a set of tangent vectors for a given mesh into a 3D texture coordinate buffer. | |
| void | clearBoneAssignments () | 
| Removes all bone assignments for this mesh. | |
| MeshPtr | clone (const String &newName, const String &newGroup=BLANKSTRING) | 
| Makes a copy of this mesh object and gives it a new name. | |
| Animation * | createAnimation (const String &name, Real length) override | 
| Creates a new Animation object for vertex animating this mesh. | |
| void | createAzdoBuffers () | 
| Pose * | createPose (ushort target, const String &name=BLANKSTRING) | 
| Create a new Pose for this mesh or one of its submeshes. | |
| SubMesh * | createSubMesh () | 
| Creates a new SubMesh. | |
| SubMesh * | createSubMesh (const String &name) | 
| Creates a new SubMesh and gives it a name. | |
| void | dearrangeToInefficient () | 
| Reverts the effects from arrangeEfficient by converting all 16-bit half float back to 32-bit float; and QTangents to Normal, Tangent + Reflection representation, which are more compatible for doing certain operations vertex operations in the CPU. | |
| void | destroyShadowMappingGeom () | 
| void | destroySubMesh (const String &name) | 
| Destroy a SubMesh with the given name. | |
| void | destroySubMesh (unsigned index) | 
| Destroy a SubMesh with the given index. | |
| void | freeEdgeList () | 
| Destroys and frees the edge lists this mesh has built. | |
| Animation * | getAnimation (const String &name) const override | 
| Returns the named vertex Animation object. | |
| Animation * | getAnimation (unsigned short index) const override | 
| Gets a single morph animation by index. | |
| bool | getAutoBuildEdgeLists () 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. | |
| BoneAssignmentIterator | getBoneAssignmentIterator () | 
| Gets an iterator for access all bone assignments. | |
| const VertexBoneAssignmentList & | getBoneAssignments () const | 
| Gets a const reference to the list of bone assignments. | |
| Real | getBoneBoundingRadius () const | 
| Gets the radius used to inflate the bounding box around the bones. | |
| Real | getBoundingSphereRadius () const | 
| Gets the radius of the bounding sphere surrounding this mesh. | |
| const AxisAlignedBox & | getBounds () const | 
| Get the axis-aligned bounding box for this mesh. | |
| EdgeData * | getEdgeList (unsigned short lodIndex=0) | 
| Return the edge list for this mesh, building it if required. | |
| const EdgeData * | getEdgeList (unsigned short lodIndex=0) const | 
| Return the edge list for this mesh, building it if required. | |
| HardwareBufferManagerBase * | getHardwareBufferManager () | 
| const uint64 * | getHashForCaches () const | 
| Returns an array of [2] containing a hash for use in caches. | |
| HardwareBuffer::Usage | getIndexBufferUsage () const | 
| Gets the usage setting for this meshes index buffers. | |
| ushort | getLodIndex (Real value) const | 
| Retrieves the level of detail index for the given LOD value. | |
| const MeshLodUsage & | getLodLevel (ushort index) const | 
| Gets details of the numbered level of detail entry. | |
| const String & | getLodStrategyName () const | 
| Returns the name of the Lod strategy the user lod values have been calibrated for. | |
| unsigned short | getNumAnimations () const override | 
| Gets the number of morph animations in this mesh. | |
| ushort | getNumLodLevels () const | 
| Returns the number of levels of detail that this mesh supports. | |
| unsigned | getNumSubMeshes () const | 
| Gets the number of sub meshes which comprise this mesh. | |
| const SkeletonPtr & | getOldSkeleton () const | 
| Gets a pointer to any linked Skeleton. | |
| Pose * | getPose (const String &name) | 
| Retrieve an existing Pose by name. | |
| Pose * | getPose (ushort index) | 
| Retrieve an existing Pose by index. | |
| size_t | getPoseCount () const | 
| Get the number of poses. | |
| PoseIterator | getPoseIterator () | 
| Get an iterator over all the poses defined. | |
| ConstPoseIterator | getPoseIterator () const | 
| Get an iterator over all the poses defined. | |
| const PoseList & | getPoseList () const | 
| Get pose list. | |
| bool | getSharedVertexDataAnimationIncludesNormals () const | 
| Returns whether animation on shared vertex data includes normals. | |
| virtual VertexAnimationType | getSharedVertexDataAnimationType () const | 
| Gets the type of vertex animation the shared vertex data of this mesh supports. | |
| const SkeletonDefPtr & | getSkeleton () const | 
| const String & | getSkeletonName () const | 
| Gets the name of any linked Skeleton. | |
| SubMesh * | getSubMesh (const String &name) const | 
| Gets a SubMesh by name. | |
| SubMesh * | getSubMesh (unsigned index) const | 
| Gets a pointer to the submesh indicated by the index. | |
| SubMeshIterator | getSubMeshIterator () | 
| Gets an iterator over the available submeshes. | |
| const SubMeshNameMap & | getSubMeshNameMap () const | 
| Gets a reference to the optional name assignments of the SubMeshes. | |
| HardwareBuffer::Usage | getVertexBufferUsage () const | 
| Gets the usage setting for this meshes vertex buffers. | |
| VertexData * | getVertexDataByTrackHandle (unsigned short handle) | 
| Gets a pointer to a vertex data element based on a morph animation track handle. | |
| bool | hasAnimation (const String &name) const override | 
| Returns whether this mesh contains the named vertex animation. | |
| bool | hasIndependentShadowMappingBuffers () const | 
| Returns true if the shadow mapping buffers do not just reference the real buffers, but are rather their own separate set of optimized geometry. | |
| bool | hasManualLodLevel () const | 
| Returns true if this mesh has a manual LOD level. | |
| bool | hasSkeleton () const | 
| Returns true if this Mesh has a linked Skeleton. | |
| bool | hasValidShadowMappingBuffers () const | 
| Returns true if the mesh is ready for rendering with valid shadow mapping buffers Otherwise prepareForShadowMapping must be called on this mesh. | |
| bool | hasVertexAnimation () const | 
| Returns whether or not this mesh has some kind of vertex animation. | |
| void | importV2 (Ogre::Mesh *mesh) | 
| Converts a v2 mesh back to v1. | |
| bool | isEdgeListBuilt () const | 
| Returns whether this mesh has an attached edge list. | |
| bool | isIndexBufferShadowed () const | 
| Gets whether or not this meshes index buffers are shadowed. | |
| bool | isPreparedForShadowVolumes () const | 
| Returns whether this mesh has already had it's geometry prepared for use in rendering shadow volumes. | |
| bool | isVertexBufferShadowed () const | 
| Gets whether or not this meshes vertex buffers are shadowed. | |
| void | mergeAdjacentTexcoords (unsigned short finalTexCoordSet, unsigned short texCoordSetToDestroy) | 
| This method collapses two texcoords into one for all submeshes where this is possible. | |
| void | nameSubMesh (const String &name, unsigned index) | 
| Gives a name to a SubMesh. | |
| void | prepareForShadowMapping (bool forceSameBuffers) | 
| void | prepareForShadowVolume () | 
| This method prepares the mesh for generating a renderable shadow volume. | |
| void | reload (LoadingFlags flags=LF_DEFAULT) override | 
| Reloads the resource, if it is already loaded. | |
| virtual void | removeAllAnimations () | 
| Removes all morph Animations from this mesh. | |
| void | removeAllPoses () | 
| Destroy all poses. | |
| void | removeAnimation (const String &name) override | 
| Removes vertex Animation from this mesh. | |
| void | removeLodLevels () | 
| Removes all LOD data from this Mesh. | |
| void | removePose (const String &name) | 
| Destroy a pose by name. | |
| void | removePose (ushort index) | 
| Destroy a pose by index. | |
| 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. | |
| void | setHardwareBufferManager (HardwareBufferManagerBase *bufferManager) | 
| Sets the manager for the vertex and index 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. | |
| void | setLodStrategyName (const String &name) | 
| void | setSkeletonName (const String &skelName) | 
| Sets the name of the skeleton this Mesh uses for animation. | |
| void | setVertexBufferPolicy (HardwareBuffer::Usage usage, bool shadowBuffer=false) | 
| Sets the policy for the vertex buffers to be used when loading this Mesh. | |
| bool | suggestTangentVectorBuildParams (VertexElementSemantic targetSemantic, unsigned short &outSourceCoordSet, unsigned short &outIndex) | 
| Ask the mesh to suggest parameters to a future buildTangentVectors call, should you wish to use texture coordinates to store the tangents. | |
| void | unnameSubMesh (const String &name) | 
| Removes a name from a SubMesh. | |
| void | updateManualLodLevel (ushort index, const String &meshName) | 
| Changes the alternate mesh to use as a manual LOD at the given index. | |
| void | updateMaterialForAllSubMeshes () | 
| Iterates through all submeshes and requests them to apply their texture aliases to the material they use. | |
|  Public Member Functions inherited from Ogre::Resource | |
| Resource (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0) | |
| Standard constructor. | |
| virtual | ~Resource () | 
| Virtual destructor. | |
| virtual void | _dirtyState () | 
| Manually mark the state of this resource as having been changed. | |
| virtual void | _fireLoadingComplete (bool wasBackgroundLoaded) | 
| Firing of loading complete event. | |
| virtual void | _firePreparingComplete (bool wasBackgroundLoaded) | 
| Firing of preparing complete event. | |
| virtual void | _fireUnloadingComplete () | 
| Firing of unloading complete event. | |
| virtual void | _notifyOrigin (const String &origin) | 
| Notify this resource of it's origin. | |
| virtual void | addListener (Listener *lis) | 
| Register a listener on this resource. | |
| virtual void | changeGroupOwnership (const String &newGroup) | 
| Change the resource group ownership of a Resource. | |
| virtual void | escalateLoading () | 
| Escalates the loading of a background loaded resource. | |
| virtual ResourceManager * | getCreator () | 
| Gets the manager which created this resource. | |
| virtual const String & | getGroup () const | 
| Gets the group which this resource is a member of. | |
| virtual ResourceHandle | getHandle () const | 
| virtual LoadingState | getLoadingState () const | 
| Returns the current loading state. | |
| virtual const String & | getName () const | 
| Gets resource name. | |
| virtual const String & | getOrigin () const | 
| Get the origin of this resource, e.g. | |
| virtual size_t | getSize () const | 
| Retrieves info about the size of the resource. | |
| virtual size_t | getStateCount () const | 
| Returns the number of times this resource has changed state, which generally means the number of times it has been loaded. | |
| virtual bool | isBackgroundLoaded () const | 
| Returns whether this Resource has been earmarked for background loading. | |
| virtual bool | isLoaded () const | 
| Returns true if the Resource has been loaded, false otherwise. | |
| virtual bool | isLoading () const | 
| Returns whether the resource is currently in the process of background loading. | |
| virtual bool | isManuallyLoaded () const | 
| Is this resource manually loaded? | |
| virtual bool | isPrepared () const | 
| Returns true if the Resource has been prepared, false otherwise. | |
| virtual bool | isReloadable () const | 
| Returns true if the Resource is reloadable, false otherwise. | |
| virtual void | load (bool backgroundThread=false) | 
| Loads the resource, if it is not already. | |
| bool | markForReload () | 
| virtual void | prepare (bool backgroundThread=false) | 
| Prepares the resource for load, if it is not already. | |
| virtual void | removeListener (Listener *lis) | 
| Remove a listener on this resource. | |
| virtual void | setBackgroundLoaded (bool bl) | 
| Tells the resource whether it is background loaded or not. | |
| virtual void | setManuallyLoaded (bool isManual) | 
| Set "Is this resource manually loaded?". | |
| virtual void | setToLoaded () | 
| Change the Resource loading state to loaded. | |
| virtual void | touch () | 
| 'Touches' the resource to indicate it has been used. | |
| virtual void | unload () | 
| Unloads the resource; this is not permanent, the resource can be reloaded later if required. | |
|  Public Member Functions inherited from Ogre::StringInterface | |
| StringInterface () | |
| virtual | ~StringInterface () | 
| Virtual destructor, see Effective C++. | |
| virtual void | copyParametersTo (StringInterface *dest) const | 
| Method for copying this object's parameters to another object. | |
| ParamDictionary * | getParamDictionary () | 
| Retrieves the parameter dictionary for this class. | |
| const ParamDictionary * | getParamDictionary () const | 
| virtual String | getParameter (const String &name) const | 
| Generic parameter retrieval method. | |
| const ParameterList & | getParameters () 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. | |
|  Public Member Functions inherited from Ogre::v1::AnimationContainer | |
| virtual | ~AnimationContainer () | 
| Additional Inherited Members | |
|  Public Types inherited from Ogre::v1::Mesh | |
| typedef MapIterator< VertexBoneAssignmentList > | BoneAssignmentIterator | 
| typedef ConstVectorIterator< PoseList > | ConstPoseIterator | 
| typedef FastArray< unsigned short > | IndexMap | 
| typedef FastArray< Real > | LodValueArray | 
| typedef vector< MeshLodUsage >::type | MeshLodUsageList | 
| typedef VectorIterator< PoseList > | PoseIterator | 
| typedef VectorIterator< SubMeshList > | SubMeshIterator | 
| typedef vector< SubMesh * >::type | SubMeshList | 
| typedef unordered_map< String, ushort >::type | SubMeshNameMap | 
| A hashmap used to store optional SubMesh names. | |
| typedef multimap< size_t, VertexBoneAssignment >::type | VertexBoneAssignmentList | 
| Multimap of vertex bone assignments (orders by vertex index). | |
|  Public Types inherited from Ogre::Resource | |
| enum | LoadingFlags { LF_DEFAULT = 0 , LF_INCLUDE_NON_RELOADABLE = 1 , LF_ONLY_UNREFERENCED = 2 , LF_ONLY_UNREFERENCED_INCLUDE_NON_RELOADABLE = 3 , LF_PRESERVE_STATE = 4 , LF_MARKED_FOR_RELOAD = 8 } | 
| Enum that allow to choose subset of unloaded/reloaded resources and to adjust reloading behavior.  More... | |
| enum | LoadingState { LOADSTATE_UNLOADED , LOADSTATE_LOADING , LOADSTATE_LOADED , LOADSTATE_UNLOADING , LOADSTATE_PREPARED , LOADSTATE_PREPARING , LOADSTATE_UNLOADED_MARKED_FOR_RELOAD } | 
| Enum identifying the loading state of the resource.  More... | |
|  Static Public Member Functions inherited from Ogre::v1::Mesh | |
| static void | prepareMatricesForVertexBlend (const Matrix4 **blendMatrices, const Matrix4 *boneMatrices, const IndexMap &indexMap) | 
| Prepare matrices for software indexed vertex blend. | |
| static void | softwareVertexBlend (const VertexData *sourceVertexData, const VertexData *targetVertexData, const Matrix4 *const *blendMatrices, size_t numMatrices, bool blendNormals) | 
| Performs a software indexed vertex blend, of the kind used for skeletal animation although it can be used for other purposes. | |
| static void | softwareVertexMorph (Real t, const HardwareVertexBufferSharedPtr &b1, const HardwareVertexBufferSharedPtr &b2, VertexData *targetVertexData) | 
| Performs a software vertex morph, of the kind used for morph animation although it can be used for other purposes. | |
| static void | softwareVertexPoseBlend (Real weight, const map< size_t, Vector3 >::type &vertexOffsetMap, const map< size_t, Vector3 >::type &normalsMap, VertexData *targetVertexData) | 
| Performs a software vertex pose blend, of the kind used for morph animation although it can be used for other purposes. | |
|  Static Public Member Functions inherited from Ogre::StringInterface | |
| static 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. | |
|  Public Attributes inherited from Ogre::v1::Mesh | |
| IndexMap | sharedBlendIndexToBoneIndexMap | 
| Shared index map for translating blend index to bone index. | |
| VertexData * | sharedVertexData [NumVertexPass] | 
| Shared vertex data. | |
|  Public Attributes inherited from Ogre::Resource | |
| OGRE_AUTO_MUTEX | |
|  Static Public Attributes inherited from Ogre::v1::Mesh | |
| static bool | msOptimizeForShadowMapping | 
| When this bool is false, prepareForShadowMapping will use the same Vaos for both regular and shadow mapping rendering. | |
Patch specialisation of Mesh.
| Ogre::v1::PatchMesh::PatchMesh | ( | ResourceManager * | creator, | 
| const String & | name, | ||
| ResourceHandle | handle, | ||
| const String & | group | ||
| ) | 
Constructor.
| void Ogre::v1::PatchMesh::define | ( | void * | controlPointBuffer, | 
| VertexDeclaration * | declaration, | ||
| size_t | width, | ||
| size_t | height, | ||
| size_t | uMaxSubdivisionLevel = (size_t) PatchSurface::AUTO_LEVEL, | ||
| size_t | vMaxSubdivisionLevel = (size_t) PatchSurface::AUTO_LEVEL, | ||
| PatchSurface::VisibleSide | visibleSide = PatchSurface::VS_FRONT, | ||
| HardwareBuffer::Usage | vbUsage = HardwareBuffer::HBU_STATIC_WRITE_ONLY, | ||
| HardwareBuffer::Usage | ibUsage = HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY, | ||
| bool | vbUseShadow = false, | ||
| bool | ibUseShadow = false | ||
| ) | 
Define the patch, as defined in MeshManager::createBezierPatch.
| void Ogre::v1::PatchMesh::setSubdivision | ( | Real | factor | ) | 
| void Ogre::v1::PatchMesh::update | ( | void * | controlPointBuffer, | 
| size_t | width, | ||
| size_t | height, | ||
| size_t | uMaxSubdivisionLevel, | ||
| size_t | vMaxSubdivisionLevel, | ||
| PatchSurface::VisibleSide | visibleSide | ||
| ) | 
Update the mesh with new control points positions.