Пример #1
0
        private void RenderNormalConnectLine(RenderManager.CameraInfo cameraInfo)
        {
            var pointPair = new MarkupPointPair(SelectPoint, HoverPoint);
            var color     = EditMarkup.ExistConnection(pointPair) ? MarkupColors.Red : MarkupColors.Blue;

            var lineBezier = new Bezier3()
            {
                a = SelectPoint.Position,
                b = HoverPoint.Position,
                c = SelectPoint.Position,
                d = HoverPoint.Position,
            };

            RenderBezier(cameraInfo, color, lineBezier);

            var normal = SelectPoint.Direction.Turn90(false);

            var normalBezier = new Bezier3
            {
                a = SelectPoint.Position + SelectPoint.Direction,
                d = SelectPoint.Position + normal
            };

            normalBezier.b = normalBezier.a + normal / 2;
            normalBezier.c = normalBezier.d + SelectPoint.Direction / 2;
            RenderBezier(cameraInfo, color, normalBezier, 2f, true);
        }
Пример #2
0
        private void RenderConnectCrosswalkLine(RenderManager.CameraInfo cameraInfo)
        {
            var bezier    = new Line3(SelectPoint.Position, HoverPoint.Position).GetBezier();
            var pointPair = new MarkupPointPair(SelectPoint, HoverPoint);
            var color     = EditMarkup.ExistConnection(pointPair) ? MarkupColors.Red : MarkupColors.Green;

            RenderBezier(cameraInfo, color, bezier, MarkupCrosswalkPoint.Shift * 2, true);
        }
Пример #3
0
        private void OnMakeLine(Event e)
        {
            var pointPair = new MarkupPointPair(SelectPoint, HoverPoint);
            var lineType  = pointPair.IsSomeEnter ? e.GetStopStyle() : e.GetSimpleStyle();
            var newLine   = EditMarkup.ToggleConnection(pointPair, lineType);

            Panel.EditLine(newLine);
            SelectPoint = null;
        }
Пример #4
0
        private void OnMakeCrosswalk(Event e)
        {
            var pointPair = new MarkupPointPair(SelectPoint, HoverPoint);

            var newCrosswalkLine = EditMarkup.ToggleConnection(pointPair, e.GetCrosswalkStyle()) as MarkupCrosswalkLine;

            Panel.EditCrosswalk(newCrosswalkLine?.Crosswalk);

            SelectPoint = null;
            SetTarget();
        }
Пример #5
0
        private void OnMakeLine(Event e)
        {
            var pointPair = new MarkupPointPair(SelectPoint, HoverPoint);

            var lineType = pointPair.IsStopLine ? e.GetStopStyle() : e.GetRegularStyle();
            var newLine  = EditMarkup.ToggleConnection(pointPair, lineType);

            Panel.EditLine(newLine);

            SelectPoint = null;
            SetTarget();
        }
Пример #6
0
 private void OnSelectFillerPoint(Event e)
 {
     if (IsHoverFillerPoint)
     {
         if (TempFiller.Add(HoverFillerPoint))
         {
             EditMarkup.AddFiller(TempFiller);
             Panel.EditFiller(TempFiller);
             ToolMode = Mode.ConnectLine;
             return;
         }
         DisableByAlt = false;
         GetFillerPoints();
     }
 }
Пример #7
0
        private void RenderRegularConnectLine(RenderManager.CameraInfo cameraInfo)
        {
            var bezier = new Bezier3()
            {
                a = SelectPoint.Position,
                b = HoverPoint.Enter == SelectPoint.Enter ? HoverPoint.Position - SelectPoint.Position : SelectPoint.Direction,
                c = HoverPoint.Enter == SelectPoint.Enter ? SelectPoint.Position - HoverPoint.Position : HoverPoint.Direction,
                d = HoverPoint.Position,
            };

            var pointPair = new MarkupPointPair(SelectPoint, HoverPoint);
            var color     = EditMarkup.ExistConnection(pointPair) ? MarkupColors.Red : MarkupColors.Green;

            NetSegment.CalculateMiddlePoints(bezier.a, bezier.b, bezier.d, bezier.c, true, true, out bezier.b, out bezier.c);
            RenderBezier(cameraInfo, color, bezier);
        }
Пример #8
0
        private void RenderConnectLineOverlay(RenderManager.CameraInfo cameraInfo)
        {
            if (!IsSelectPoint)
            {
                return;
            }

            var   bezier = new Bezier3();
            Color color;

            if (IsHoverPoint)
            {
                var pointPair = new MarkupPointPair(SelectPoint, HoverPoint);
                color = EditMarkup.ExistConnection(pointPair) ? Color.red : Color.green;

                bezier.a = SelectPoint.Position;
                bezier.b = HoverPoint.Enter == SelectPoint.Enter ? HoverPoint.Position - SelectPoint.Position : SelectPoint.Direction;
                bezier.c = HoverPoint.Enter == SelectPoint.Enter ? SelectPoint.Position - HoverPoint.Position : HoverPoint.Direction;
                bezier.d = HoverPoint.Position;
            }
            else
            {
                color = Color.white;

                RaycastInput input = new RaycastInput(MouseRay, MouseRayLength);
                RayCast(input, out RaycastOutput output);

                bezier.a = SelectPoint.Position;
                bezier.b = SelectPoint.Direction;
                bezier.c = SelectPoint.Direction.Turn90(true);
                bezier.d = output.m_hitPos;

                Line2.Intersect(VectorUtils.XZ(bezier.a), VectorUtils.XZ(bezier.a + bezier.b), VectorUtils.XZ(bezier.d), VectorUtils.XZ(bezier.d + bezier.c), out _, out float v);
                bezier.c = v >= 0 ? bezier.c : -bezier.c;
            }

            NetSegment.CalculateMiddlePoints(bezier.a, bezier.b, bezier.d, bezier.c, true, true, out bezier.b, out bezier.c);
            RenderManager.OverlayEffect.DrawBezier(cameraInfo, color, bezier, 0.5f, 0f, 0f, -1f, 1280f, false, true);
        }