RavEngine
Loading...
Searching...
No Matches
physx::PxTriangleMeshAnalysisResult Class Reference

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

#include <PxTriangleMeshAnalysisResult.h>

Public Types

enum  Enum {
  eVALID = 0 , eZERO_VOLUME = (1 << 0) , eOPEN_BOUNDARIES = (1 << 1) , eSELF_INTERSECTIONS = (1 << 2) ,
  eINCONSISTENT_TRIANGLE_ORIENTATION = (1 << 3) , eCONTAINS_ACUTE_ANGLED_TRIANGLES = (1 << 4) , eEDGE_SHARED_BY_MORE_THAN_TWO_TRIANGLES = (1 << 5) , eCONTAINS_DUPLICATE_POINTS = (1 << 6) ,
  eCONTAINS_INVALID_POINTS = (1 << 7) , eREQUIRES_32BIT_INDEX_BUFFER = (1 << 8) , eMESH_IS_PROBLEMATIC = (1 << 9) , eMESH_IS_INVALID = (1 << 10)
}
 

Detailed Description

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

Member Enumeration Documentation

◆ Enum

Enumerator
eZERO_VOLUME 

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

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.

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

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

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.

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.

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.

eCONTAINS_INVALID_POINTS 

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

eREQUIRES_32BIT_INDEX_BUFFER 

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

eMESH_IS_PROBLEMATIC 

flag is set if the mesh is categorized as problematic

eMESH_IS_INVALID 

flag is set if the mesh is categorized as invalid


The documentation for this class was generated from the following file: