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); }
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); }