66void weldTriMesh(WorldTriMesh& mesh,
float coplanarTolerance = 0.0349065850f );
77 [[nodiscard]]
bool valid() const noexcept
95 [[nodiscard]]
bool valid() const noexcept
109TriMeshValidationReport
validateTriMesh(
const WorldTriMesh& mesh,
float positionEpsilon = 1e-4f);
112TriMeshValidationTotals
validateTriMeshes(std::span<const WorldTriMesh> meshes,
float positionEpsilon = 1e-4f);
148HitResult
sweepAABBvsTriMesh(glm::vec3 halfExtents, glm::vec3 start, glm::vec3 end,
const WorldTriMesh& mesh);
173 glm::vec3& pos, glm::vec3& vel, glm::vec3 halfExtents,
const WorldTriMesh& mesh,
float pushback = 0.03125f);
180HitResult
sweepCapsuleVsTriMesh(CapsuleShape capsule, glm::vec3 start, glm::vec3 end,
const WorldTriMesh& mesh);
222ClosestPointOnMeshResult
closestPointOnMesh(glm::vec3 segA, glm::vec3 segB,
float maxDist,
const WorldTriMesh& mesh);
226ClosestPointOnMeshResult
227closestPointOnMesh(CapsuleShape capsule, glm::vec3 center,
float maxDist,
const WorldTriMesh& mesh);
235 CapsuleShape capsule, glm::vec3 center,
float maxDist,
const WorldTriMesh& mesh, uint32_t triId);
256 CapsuleShape capsule, glm::vec3 pos,
float maxDistance,
float minWalkableDot,
const WorldTriMesh& mesh);
Swept AABB and sphere collision queries against world geometry.
Pure physics math — no ECS types, no registry.
Definition BroadphaseTree.cpp:11
HitResult sweepCapsuleVsTriMesh(CapsuleShape capsule, glm::vec3 start, glm::vec3 end, const WorldTriMesh &mesh)
Sweep a capsule against a triangle mesh.
Definition TriMeshCollision.cpp:1597
GroundProbeResult groundProbeCapsuleVsTriMesh(CapsuleShape capsule, glm::vec3 pos, float maxDistance, float minWalkableDot, const WorldTriMesh &mesh)
Downward ground probe against walkable triangle faces only.
Definition TriMeshCollision.cpp:1876
TriRegion
Voronoi region of a triangle.
Definition TriMeshCollision.hpp:27
@ Vert2
Definition TriMeshCollision.hpp:34
@ Vert1
Definition TriMeshCollision.hpp:33
@ Edge0
Edge v0 → v1.
Definition TriMeshCollision.hpp:29
@ Vert0
Definition TriMeshCollision.hpp:32
@ Face
Definition TriMeshCollision.hpp:28
@ Edge2
Edge v2 → v0.
Definition TriMeshCollision.hpp:31
@ Edge1
Edge v1 → v2.
Definition TriMeshCollision.hpp:30
ClosestPointOnMeshResult closestPointOnMeshTriangle(CapsuleShape capsule, glm::vec3 center, float maxDist, const WorldTriMesh &mesh, uint32_t triId)
Closest point from a capsule axis to one specific cooked triangle.
Definition TriMeshCollision.cpp:1818
TriMeshValidationTotals validateTriMeshes(std::span< const WorldTriMesh > meshes, float positionEpsilon)
Validate every triangle mesh in an authored collision set.
Definition TriMeshCollision.cpp:1263
void buildTriMeshBVH(WorldTriMesh &mesh)
Build the BVH for a WorldTriMesh.
Definition TriMeshCollision.cpp:1032
ClosestPointOnMeshResult closestPointOnMesh(glm::vec3 segA, glm::vec3 segB, float maxDist, const WorldTriMesh &mesh)
Find the closest point on the mesh's surface to a query segment, considering only points within maxDi...
Definition TriMeshCollision.cpp:1726
TriMeshCookStats collectTriMeshCookStats(std::span< const WorldTriMesh > meshes)
Collect aggregate map-cooking diagnostics for already-cooked meshes.
Definition TriMeshCollision.cpp:1282
void depenetrateAABBvsTriMesh(glm::vec3 &pos, glm::vec3 &vel, glm::vec3 halfExtents, const WorldTriMesh &mesh, float pushback)
Push an AABB out of a triangle mesh using Voronoi-clipped face-normal MTVs.
Definition TriMeshCollision.cpp:1399
HitResult sweepAABBvsTriMesh(glm::vec3 halfExtents, glm::vec3 start, glm::vec3 end, const WorldTriMesh &mesh)
Sweep an AABB against a triangle mesh using Voronoi-clipped per-triangle tests.
Definition TriMeshCollision.cpp:1332
ClearanceResult clearanceCapsuleVsTriMesh(CapsuleShape capsule, glm::vec3 pos, float maxReach, const WorldTriMesh &mesh)
Capsule-vs-trimesh clearance.
Definition TriMeshCollision.cpp:1857
void weldTriMesh(WorldTriMesh &mesh, float coplanarTolerance)
Compute face normals + active edge / vertex flags for a triangle mesh.
Definition TriMeshCollision.cpp:1064
TriMeshValidationReport validateTriMesh(const WorldTriMesh &mesh, float positionEpsilon)
Validate authored collision mesh topology before/after cooking.
Definition TriMeshCollision.cpp:1199
DepenContact deepestCapsuleContactVsTriMesh(CapsuleShape capsule, glm::vec3 pos, glm::vec3 vel, const WorldTriMesh &mesh)
Single deepest surface contact of a capsule against any triangle in this mesh.
Definition TriMeshCollision.cpp:1658
Result of a closest-point-on-mesh query.
Definition TriMeshCollision.hpp:201
glm::vec3 pointOnSegment
Definition TriMeshCollision.hpp:204
bool found
Definition TriMeshCollision.hpp:202
glm::vec3 normal
Definition TriMeshCollision.hpp:206
uint32_t triId
Definition TriMeshCollision.hpp:207
float dist
Definition TriMeshCollision.hpp:203
TriRegion region
Definition TriMeshCollision.hpp:208
glm::vec3 pointOnMesh
Definition TriMeshCollision.hpp:205
Runtime/cook summary for authored static collision triangle meshes.
Definition TriMeshCollision.hpp:116
uint32_t triangleCount
Definition TriMeshCollision.hpp:119
uint32_t meshCount
Definition TriMeshCollision.hpp:117
uint32_t invalidNormals
Definition TriMeshCollision.hpp:126
uint32_t boundaryHalfEdges
Definition TriMeshCollision.hpp:125
uint32_t meshBvhNodeCount
Definition TriMeshCollision.hpp:120
uint32_t weldedHalfEdges
Definition TriMeshCollision.hpp:124
uint32_t meshBvhLeafCount
Definition TriMeshCollision.hpp:121
uint32_t vertexCount
Definition TriMeshCollision.hpp:118
uint32_t maxMeshBvhDepth
Definition TriMeshCollision.hpp:122
uint32_t activeHalfEdges
Definition TriMeshCollision.hpp:123
Map-cooking validation counters for authored collision triangle meshes.
Definition TriMeshCollision.hpp:70
uint32_t degenerateTriangles
Definition TriMeshCollision.hpp:72
bool valid() const noexcept
Definition TriMeshCollision.hpp:77
uint32_t duplicatedOppositeWindingFaces
Definition TriMeshCollision.hpp:73
uint32_t nonManifoldEdges
Definition TriMeshCollision.hpp:74
uint32_t triangleCount
Definition TriMeshCollision.hpp:71
uint32_t invalidIndices
Definition TriMeshCollision.hpp:75
Aggregate validation counters across a whole authored collision set.
Definition TriMeshCollision.hpp:86
uint32_t invalidMeshCount
Definition TriMeshCollision.hpp:88
uint32_t degenerateTriangles
Definition TriMeshCollision.hpp:90
uint32_t triangleCount
Definition TriMeshCollision.hpp:89
bool valid() const noexcept
Definition TriMeshCollision.hpp:95
uint32_t duplicatedOppositeWindingFaces
Definition TriMeshCollision.hpp:91
uint32_t nonManifoldEdges
Definition TriMeshCollision.hpp:92
uint32_t invalidIndices
Definition TriMeshCollision.hpp:93
uint32_t meshCount
Definition TriMeshCollision.hpp:87