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); }
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); }
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; }
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(); }
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(); }
private void OnSelectFillerPoint(Event e) { if (IsHoverFillerPoint) { if (TempFiller.Add(HoverFillerPoint)) { EditMarkup.AddFiller(TempFiller); Panel.EditFiller(TempFiller); ToolMode = Mode.ConnectLine; return; } DisableByAlt = false; GetFillerPoints(); } }
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); }
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); }