Ejemplo n.º 1
0
        private MsaglNode AddNode(SystemViewData view, SystemGraphState state)
        {
            ICurve    curve   = CurveFactory.CreateRectangle(view.position.width, view.position.height, new Point());
            MsaglNode newNode = new MsaglNode(curve, state.systemViews.IndexOf(view).ToString())
            {
                UserData = view
            };

            resultGraph.Nodes.Add(newNode);
            return(newNode);
        }
Ejemplo n.º 2
0
        private void DrawArrowBetweenBoxes(SystemViewData fromView, SystemViewData toView)
        {
            var arrowDirection = toView.Center - fromView.Center;

            if (arrowDirection == Vector3.zero)
            {
                return;
            }
            Handles.color = EditorStyles.label.normal.textColor;
            var startPos = ExteriorPointFromOtherPoint(fromView.position, toView.Center);
            var endPos   = ExteriorPointFromOtherPoint(toView.position, fromView.Center);

            endPos -= (endPos - startPos).normalized * 0.6f * kArrowSize;
            Handles.DrawAAPolyLine(lineTexture, EditorGUIUtility.pixelsPerPoint * kLineWidth, startPos, endPos);
            var rotation = Quaternion.LookRotation(arrowDirection, Vector3.forward);

            Handles.ConeHandleCap(0, endPos, rotation, kArrowSize, Event.current.type);
        }