MeshCreator.VisualizePolygon C# (CSharp) Method

VisualizePolygon() public method

public VisualizePolygon ( SceneView sceneView ) : void
sceneView SceneView
return void
    void VisualizePolygon(SceneView sceneView)
    {
        #if UNITY_EDITOR
        Event e = Event.current;
        Ray r = HandleUtility.GUIPointToWorldRay(e.mousePosition);
        Vector2 mousePos = r.origin;

        float selectDistance = HandleUtility.GetHandleSize(mousePos) * baseSelectDistance;

        #region Draw vertex handles
        Handles.color = vertexColor;
        for(int i = 0; i < verts.Count; i++) {
            verts[i].position = Handles.FreeMoveHandle(
                        verts[i].position,
                        Quaternion.identity,
                        selectDistance,
                        Vector3.zero,
                        Handles.CircleCap
                    );
        }
        #endregion

        #region Draw holes
        Handles.color = holeColor;
        foreach(var hole in holes)
            Handles.RectangleCap(0, hole, Quaternion.identity, selectDistance);
        #endregion

        #region Draw defined segments
        Handles.color = definedSegmentColor;
        foreach(var seg in segments) {
            if(!seg.IsDeleted())
                Handles.DrawLine(seg.first.position, seg.second.position);
        }
        #endregion

        #region Draw Nearest Segment
        Handles.color = nearSegmentColor;
        var nearSeg = GetSegmentNearPosition(mousePos);
        if(nearSeg != null) Handles.DrawLine(nearSeg.first.position, nearSeg.second.position);
        #endregion

        #region Draw currently defining edge
        if(segmentDefiningDrag && dragStartIndex >= 0) {
            Handles.color = ghostSegmentColor;
            var endVert = GetVertexNearPosition(mousePos);
            if(endVert != null) Handles.DrawLine(verts[dragStartIndex].position, endVert.position);
            else Handles.DrawLine(verts[dragStartIndex].position, mousePos);
        }
        #endregion
        #endif
    }