private void RenderNormalConnectLine(RenderManager.CameraInfo cameraInfo) { var pointPair = new MarkupPointPair(SelectPoint, HoverPoint); var color = Tool.Markup.ExistLine(pointPair) ? Colors.Red : Colors.Purple; var lineBezier = new Bezier3() { a = SelectPoint.Position, b = HoverPoint.Position, c = SelectPoint.Position, d = HoverPoint.Position, }; NodeMarkupTool.RenderBezier(cameraInfo, lineBezier, color); 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; NodeMarkupTool.RenderBezier(cameraInfo, normalBezier, color, 2f, cut: true); }
private void RenderConnectCrosswalkLine(RenderManager.CameraInfo cameraInfo) { var bezier = new Line3(SelectPoint.Position, HoverPoint.Position).GetBezier(); var pointPair = new MarkupPointPair(SelectPoint, HoverPoint); var color = Tool.Markup.ExistLine(pointPair) ? Colors.Red : Colors.Green; NodeMarkupTool.RenderBezier(cameraInfo, bezier, color, MarkupCrosswalkPoint.Shift * 2, cut: true); }
private void RenderNotConnectCrosswalkLine(RenderManager.CameraInfo cameraInfo) { var dir = NodeMarkupTool.MouseWorldPosition - SelectPoint.Position; var lenght = dir.magnitude; dir.Normalize(); var bezier = new Line3(SelectPoint.Position, SelectPoint.Position + dir * Mathf.Max(lenght, 1f)).GetBezier(); NodeMarkupTool.RenderBezier(cameraInfo, bezier, Colors.White, MarkupCrosswalkPoint.Shift * 2, cut: true); }
private void RenderNotConnectLine(RenderManager.CameraInfo cameraInfo) { var bezier = new Bezier3() { a = SelectPoint.Position, b = SelectPoint.Direction, c = SelectPoint.Direction.Turn90(true), d = NodeMarkupTool.MouseWorldPosition, }; 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); NodeMarkupTool.RenderBezier(cameraInfo, bezier, Colors.Hover); }
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 = Tool.Markup.ExistLine(pointPair) ? Colors.Red : Colors.Green; NetSegment.CalculateMiddlePoints(bezier.a, bezier.b, bezier.d, bezier.c, true, true, out bezier.b, out bezier.c); NodeMarkupTool.RenderBezier(cameraInfo, bezier, color); }
public override void RenderOverlay(RenderManager.CameraInfo cameraInfo) { if (IsHoverNode) { var node = Utilities.GetNode(HoverNodeId); NodeMarkupTool.RenderCircle(cameraInfo, node.m_position, Colors.Orange, Mathf.Max(6f, node.Info.m_halfWidth * 2f)); } if (IsHoverSegment) { var segment = Utilities.GetSegment(HoverSegmentId); var bezier = new Bezier3() { a = Utilities.GetNode(segment.m_startNode).m_position, d = Utilities.GetNode(segment.m_endNode).m_position, }; NetSegment.CalculateMiddlePoints(bezier.a, segment.m_startDirection, bezier.d, segment.m_endDirection, true, true, out bezier.b, out bezier.c); NodeMarkupTool.RenderBezier(cameraInfo, bezier, Colors.Orange, segment.Info.m_halfWidth * 2); } }
private void RenderFillerConnectLine(RenderManager.CameraInfo cameraInfo) { if (Contour.IsEmpty) { return; } if (IsHover) { var linePart = Contour.GetFillerLine(Contour.Last, Hover); if (linePart.GetTrajectory(out ITrajectory trajectory)) { trajectory.Render(cameraInfo, Colors.Green); } } else { var bezier = new Line3(Contour.Last.Position, NodeMarkupTool.MouseWorldPosition).GetBezier(); NodeMarkupTool.RenderBezier(cameraInfo, bezier, Colors.Hover); } }