A triangle mesh, also called a 'polygon soup'.
More...
#include <PxTriangleMesh.h>
A triangle mesh, also called a 'polygon soup'.
It is represented as an indexed triangle list. There are no restrictions on the triangle data.
To avoid duplicating data when you have several instances of a particular mesh positioned differently, you do not use this class to represent a mesh object directly. Instead, you create an instance of this mesh via the PxTriangleMeshGeometry and PxShape classes.
Creation
To create an instance of this class call PxPhysics::createTriangleMesh(), and release() to delete it. This is only possible once you have released all of its PxShape instances.
Visualizations:
- See also
- PxTriangleMeshDesc PxTriangleMeshGeometry PxShape PxPhysics.createTriangleMesh()
◆ PxTriangleMesh() [1/2]
◆ PxTriangleMesh() [2/2]
◆ ~PxTriangleMesh()
virtual PxTriangleMesh::~PxTriangleMesh |
( |
| ) |
|
|
inlineprotectedvirtual |
◆ acquireReference()
virtual void PxTriangleMesh::acquireReference |
( |
| ) |
|
|
pure virtual |
Acquires a counted reference to a triangle mesh.
This method increases the reference count of the triangle mesh by 1. Decrement the reference count by calling release()
◆ getLocalBounds()
virtual PxBounds3 PxTriangleMesh::getLocalBounds |
( |
| ) |
const |
|
pure virtual |
Returns the local-space (vertex space) AABB from the triangle mesh.
- Returns
- local-space bounds
◆ getNbTriangles()
virtual PxU32 PxTriangleMesh::getNbTriangles |
( |
| ) |
const |
|
pure virtual |
◆ getNbVertices()
virtual PxU32 PxTriangleMesh::getNbVertices |
( |
| ) |
const |
|
pure virtual |
Returns the number of vertices.
- Returns
- number of vertices
- See also
- getVertices()
◆ getReferenceCount()
virtual PxU32 PxTriangleMesh::getReferenceCount |
( |
| ) |
const |
|
pure virtual |
Returns the reference count for shared meshes.
At creation, the reference count of the mesh is 1. Every shape referencing this mesh increments the count by 1. When the reference count reaches 0, and only then, the mesh gets destroyed automatically.
- Returns
- the current reference count.
◆ getTriangleMaterialIndex()
Returns material table index of given triangle.
This function takes a post cooking triangle index.
- Parameters
-
[in] | triangleIndex | (internal) index of desired triangle |
- Returns
- Material table index, or 0xffff if no per-triangle materials are used
◆ getTriangleMeshFlags()
◆ getTriangles()
virtual const void* PxTriangleMesh::getTriangles |
( |
| ) |
const |
|
pure virtual |
◆ getTrianglesRemap()
virtual const PxU32* PxTriangleMesh::getTrianglesRemap |
( |
| ) |
const |
|
pure virtual |
◆ getVertices()
virtual const PxVec3* PxTriangleMesh::getVertices |
( |
| ) |
const |
|
pure virtual |
◆ getVerticesForModification()
virtual PxVec3* PxTriangleMesh::getVerticesForModification |
( |
| ) |
|
|
pure virtual |
Returns all mesh vertices for modification.
This function will return the vertices of the mesh so that their positions can be changed in place. After modifying the vertices you must call refitBVH for the refitting to actually take place. This function maintains the old mesh topology (triangle indices).
- Returns
- inplace vertex coordinates for each existing mesh vertex.
- Note
- works only for PxMeshMidPhase::eBVH33
-
Size of array returned is equal to the number returned by getNbVertices().
-
This function operates on cooked vertex indices.
-
This means the index mapping and vertex count can be different from what was provided as an input to the cooking routine.
-
To achieve unchanged 1-to-1 index mapping with orignal mesh data (before cooking) please use the following cooking flags:
-
eWELD_VERTICES = 0, eDISABLE_CLEAN_MESH = 1.
-
It is also recommended to make sure that a call to validateTriangleMesh returns true if mesh cleaning is disabled.
- See also
- getNbVertices()
-
refitBVH()
◆ isKindOf()
virtual bool PxTriangleMesh::isKindOf |
( |
const char * |
superClass | ) |
const |
|
inlineprotectedvirtual |
◆ refitBVH()
virtual PxBounds3 PxTriangleMesh::refitBVH |
( |
| ) |
|
|
pure virtual |
Refits BVH for mesh vertices.
This function will refit the mesh BVH to correctly enclose the new positions updated by getVerticesForModification. Mesh BVH will not be reoptimized by this function so significantly different new positions will cause significantly reduced performance.
- Returns
- New bounds for the entire mesh.
- Note
- works only for PxMeshMidPhase::eBVH33
-
PhysX does not keep a mapping from the mesh to mesh shapes that reference it.
-
Call PxShape::setGeometry on each shape which references the mesh, to ensure that internal data structures are updated to reflect the new geometry.
-
PxShape::setGeometry does not guarantee correct/continuous behavior when objects are resting on top of old or new geometry.
-
It is also recommended to make sure that a call to validateTriangleMesh returns true if mesh cleaning is disabled.
-
Active edges information will be lost during refit, the rigid body mesh contact generation might not perform as expected.
- See also
- getNbVertices()
-
getVerticesForModification()
◆ release()
virtual void PxTriangleMesh::release |
( |
| ) |
|
|
pure virtual |
The documentation for this class was generated from the following file: