#pragma once #include "vde/core/triangle.h" #include "vde/core/aabb.h" namespace vde::collision { using core::Triangle3D; using core::AABB3D; using core::Point3D; // Separating-axis test for two triangles bool tri_tri_intersect(const Triangle3D& t1, const Triangle3D& t2); // Detailed tri-tri intersection — returns the intersection segment struct TriTriIntersection { bool intersects; Point3D p0, p1; }; TriTriIntersection tri_tri_intersect_detailed(const Triangle3D& t1, const Triangle3D& t2); // Fast SAT test: triangle vs AABB (13 separating axes) bool tri_aabb_overlap(const Triangle3D& tri, const AABB3D& box); } // namespace vde::collision