Exemplo n.º 1
0
    public static bool hitTriangleAll(Vector3 rayOrigin, Vector3 rayDirection,
                                      Vector3[] vertices, int[] triangles, out float minDist)
    {
        bool found = false;

        minDist = Mathf.Infinity;
        TriangleTester.HitRes hit = new TriangleTester.HitRes();

        for (int triOffset = 0; triOffset < triangles.Length; triOffset += 3)
        {
            if (hitTriangle(rayOrigin, rayDirection, vertices, triangles, triOffset, ref hit) == 0)
            {
                continue;
            }

            if (hit.t < minDist)
            {
                minDist = hit.t;
                found   = true;
            }
        }

        return(found);
    }
Exemplo n.º 2
0
    public static bool hitTriangleAll(Vector3 rayOrigin, Vector3 rayDirection, 
			Vector3[] vertices, int[] triangles, out float minDist)
    {
        bool found = false;
        minDist = Mathf.Infinity;
        TriangleTester.HitRes hit = new TriangleTester.HitRes();

        for (int triOffset = 0; triOffset < triangles.Length; triOffset+=3) {
            if (hitTriangle(rayOrigin, rayDirection, vertices, triangles, triOffset, ref hit) == 0)
                continue;

            if (hit.t < minDist) {
                minDist = hit.t;
                found = true;
            }
        }

        return found;
    }