Sketch.GetNearestTriangle C# (CSharp) Method

GetNearestTriangle() public method

public GetNearestTriangle ( Vector3 position ) : int
position Vector3
return int
    public int GetNearestTriangle(Vector3 position)
    {
        float minimumDistance = Mathf.Infinity, distance;
        int nearestTriangle = 0;

        for (int i = 0; i < Mesh.triangles.Length; i += 3)
        {
            distance = GetTriangleDistance (i, position);
            if (distance < minimumDistance)
            {
                minimumDistance = distance;
                nearestTriangle = i;
            }
        }

        return nearestTriangle;
    }

Usage Example

Example #1
0
    static void ResolveGUISelection(Sketch sketch)
    {
        RaycastHit hitInfo;
        int hitTriangle;

        if (Physics.Raycast (Event.current.mouseRay.origin, Event.current.mouseRay.direction, out hitInfo))
        {
            if (hitInfo.transform == sketch.transform)
            {
                Event.current.Use ();

                hitTriangle = sketch.GetNearestTriangle (hitInfo.point);
                sketch.Select (hitTriangle);
            }
            else
            {
                Debug.Log ("Obstructed by " + hitInfo.transform.gameObject.name);
            }
        }
    }