Пример #1
0
        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);
        }