PxTriangleMeshAnalysisResult

Defined in include/extensions/PxTriangleMeshAnalysisResult.h

class PxTriangleMeshAnalysisResult

These flags indicate what kind of deficiencies a triangle mesh has and describe if the mesh is considered ok, problematic or invalid for tetmeshing.

Public Types

enum Enum

Values:

enumerator eVALID
enumerator eZERO_VOLUME

invalid: Flat mesh without meaningful amount of volume - cannot be meshed since a tetmesh is volumetric

enumerator eOPEN_BOUNDARIES

problematic: Open boundary means that the mesh is not watertight and that there are holes. The mesher can fill holes but the surface might have an unexpected shape where the hole was.

enumerator eSELF_INTERSECTIONS

problematic: The surface of the resulting mesh won’t match exactly at locations of self-intersections. The tetmesh might be connected at self-intersections even if the input triangle mesh is not

enumerator eINCONSISTENT_TRIANGLE_ORIENTATION

invalid: It is not possible to distinguish what is inside and outside of the mesh. If there are no self-intersections and not edges shared by more than two triangles, a call to makeTriOrientationConsistent can fix this. Without fixing it, the output from the tetmesher will be incorrect

enumerator eCONTAINS_ACUTE_ANGLED_TRIANGLES

problematic: An ideal mesh for a softbody has triangles with similar angles and evenly distributed vertices. Acute angles can be handled but might lead to a poor quality tetmesh.

enumerator eEDGE_SHARED_BY_MORE_THAN_TWO_TRIANGLES

problematic: Border case of a self-intersecting mesh. The tetmesh might not match the surace exactly near such edges.

enumerator eCONTAINS_DUPLICATE_POINTS

ok: Duplicate points can be handled by the mesher without problems. The resulting tetmesh will only make use of first unique point that is found, duplicate points will get mapped to that unique point in the tetmesh. Therefore the tetmesh can contain points that are not accessed by a tet.

enumerator eCONTAINS_INVALID_POINTS

invalid: Points contain NAN, infinity or similar values that will lead to an invalid mesh

enumerator eREQUIRES_32BIT_INDEX_BUFFER

invalid: Mesh contains more indices than a 16bit index buffer can address

enumerator eTRIANGLE_INDEX_OUT_OF_RANGE

invalid: A mesh triangle index is negative or lager than the size of the vertex buffer

enumerator eMESH_IS_PROBLEMATIC

flag is set if the mesh is categorized as problematic

enumerator eMESH_IS_INVALID

flag is set if the mesh is categorized as invalid