32#include "foundation/PxSimpleTypes.h"
33#include "common/PxPhysXCommonConfig.h"
35#include "foundation/Px.h"
36#include "foundation/PxUserAllocated.h"
50 PX_EDGE_FORCE_DWORD = 0x7fffffff
55 PX_EDGE_ACTIVE = (1<<0)
92 MSH_EDGE_LINK_MASK = 0x0fffffff,
93 MSH_ACTIVE_EDGE_MASK = 0x80000000,
94 MSH_ACTIVE_VERTEX_MASK = 0x40000000
105 PX_INLINE static PxIntBool HasActiveEdge01(
const EdgeTriangleData& data) {
return PxIntBool(data.mLink[0] & MSH_ACTIVE_EDGE_MASK); }
106 PX_INLINE static PxIntBool HasActiveEdge12(
const EdgeTriangleData& data) {
return PxIntBool(data.mLink[1] & MSH_ACTIVE_EDGE_MASK); }
107 PX_INLINE static PxIntBool HasActiveEdge20(
const EdgeTriangleData& data) {
return PxIntBool(data.mLink[2] & MSH_ACTIVE_EDGE_MASK); }
108 PX_INLINE static PxIntBool HasActiveEdge(
const EdgeTriangleData& data, PxU32 i) {
return PxIntBool(data.mLink[i] & MSH_ACTIVE_EDGE_MASK); }
118 FacesToEdges (
false),
119 EdgesToFaces (
false),
154 PX_FORCE_INLINE const PxU32* getFacesByEdges()
const {
return mFacesByEdges; }
155 PX_FORCE_INLINE PxU32 getFacesByEdges(PxU32 face_index)
const {
return mFacesByEdges[face_index]; }
166 PxU32* mFacesByEdges;
168 bool createFacesToEdges(PxU32 nb_faces,
const PxU32* dfaces,
const PxU16* wfaces);
169 bool createEdgesToFaces(PxU32 nb_faces,
const PxU32* dfaces,
const PxU16* wfaces);
170 bool computeActiveEdges(PxU32 nb_faces,
const PxU32* dfaces,
const PxU16* wfaces,
const PxVec3* verts,
float epsilon);
Definition GuEdgeList.h:135
PX_PHYSX_COMMON_API bool init(const EDGELISTCREATE &create)
Definition GuEdgeList.cpp:100
Definition GuEdgeList.h:98
Definition PxUserAllocated.h:43
3 Element vector class.
Definition PxVec3.h:50
#define PX_FORCE_INLINE
Definition PxPreprocessor.h:335
#define PX_COMPILE_TIME_ASSERT(exp)
Definition PxPreprocessor.h:428
#define PX_INLINE
Definition PxPreprocessor.h:320
EdgeType
Definition GuEdgeList.h:43
@ PX_EDGE_BOUNDARY
Edge belongs to a single triangle.
Definition GuEdgeList.h:46
@ PX_EDGE_INTERNAL
Edge belongs to exactly two triangles.
Definition GuEdgeList.h:47
@ PX_EDGE_SINGULAR
Edge belongs to three or more triangles.
Definition GuEdgeList.h:48
Sorts an array of objects in ascending order, assuming that the predicate implements the < operator:
Definition PxBoxController.h:39
The edge-list creation structure.
Definition GuEdgeList.h:113
PxU32 NbFaces
Number of faces in source topo.
Definition GuEdgeList.h:124
const PxU32 * DFaces
List of faces (dwords) or NULL.
Definition GuEdgeList.h:125
const PxU16 * WFaces
List of faces (words) or NULL.
Definition GuEdgeList.h:126
Basic edge-data using 8-bit references.
Definition GuEdgeList.h:68
PxU8 Ref0
First vertex reference.
Definition GuEdgeList.h:69
PxU8 Ref1
Second vertex reference.
Definition GuEdgeList.h:70
Basic edge-data.
Definition GuEdgeList.h:60
PxU32 Ref1
Second vertex reference.
Definition GuEdgeList.h:62
PxU32 Ref0
First vertex reference
Definition GuEdgeList.h:61
A count/offset pair = an edge descriptor.
Definition GuEdgeList.h:76
Edge<->triangle mapping.
Definition GuEdgeList.h:85