public bool HasCollision(RayX ray) { bool hasCollision = false; m_collisionMeshTree.DoActionOnIntersectingMeshes(ray.GetBoundingBox(), (Vector3[] points) => { for (int i = 0; i < points.Length; i += 3) { float t = ray.IntersectsTriangle(points[i], points[i + 1], points[i + 2]); if (t <= ray.Limit) { hasCollision = true; return(false); // stop } } return(true); }); return(hasCollision); }