/// <summary> /// /// </summary> /// <param name="x"></param> /// <param name="y"></param> public override void LeftDown(double x, double y) { double sx = _editor.Project.Options.SnapToGrid ? Editor.Snap(x, _editor.Project.Options.SnapX) : x; double sy = _editor.Project.Options.SnapToGrid ? Editor.Snap(y, _editor.Project.Options.SnapY) : y; switch (_currentState) { case State.None: { _shape = XPoint.Create(sx, sy, _editor.Project.Options.PointShape); if (_editor.Project.Options.TryToConnect) { if (!_editor.TryToSplitLine(x, y, _shape, true)) { _editor.AddShape(_shape); } } else { _editor.AddShape(_shape); } } break; } }
/// <summary> /// /// </summary> /// <param name="point"></param> /// <param name="treshold"></param> /// <param name="dx"></param> /// <param name="dy"></param> /// <returns></returns> public static Rect2 GetPointBounds(XPoint point, double treshold, double dx, double dy) { double radius = treshold / 2.0; return new Rect2( point.X - radius + dx, point.Y - radius + dy, treshold, treshold); }
/// <summary> /// Creates a new <see cref="XLineSegment"/> instance. /// </summary> /// <param name="point"></param> /// <param name="isStroked"></param> /// <param name="isSmoothJoin"></param> /// <returns></returns> public static XLineSegment Create( XPoint point, bool isStroked, bool isSmoothJoin) { return new XLineSegment() { Point = point, IsStroked = isStroked, IsSmoothJoin = isSmoothJoin }; }
/// <summary> /// /// </summary> /// <param name="startPoint"></param> /// <param name="segments"></param> /// <param name="isFilled"></param> /// <param name="isClosed"></param> /// <returns></returns> public static XPathFigure Create( XPoint startPoint, IList<XPathSegment> segments, bool isFilled, bool isClosed) { return new XPathFigure() { StartPoint = startPoint, Segments = segments, IsFilled = isFilled, IsClosed = isClosed }; }
/// <summary> /// /// </summary> /// <param name="point1"></param> /// <param name="point2"></param> /// <param name="isStroked"></param> /// <param name="isSmoothJoin"></param> /// <returns></returns> public static XQuadraticBezierSegment Create( XPoint point1, XPoint point2, bool isStroked, bool isSmoothJoin) { return new XQuadraticBezierSegment() { Point1 = point1, Point2 = point2, IsStroked = isStroked, IsSmoothJoin = isSmoothJoin }; }
/// <summary> /// /// </summary> /// <param name="point"></param> /// <param name="size"></param> /// <param name="rotationAngle"></param> /// <param name="isLargeArc"></param> /// <param name="sweepDirection"></param> /// <param name="isStroked"></param> /// <param name="isSmoothJoin"></param> public void ArcTo( XPoint point, XPathSize size, double rotationAngle, bool isLargeArc = false, XSweepDirection sweepDirection = XSweepDirection.Clockwise, bool isStroked = true, bool isSmoothJoin = true) { var segment = XArcSegment.Create( point, size, rotationAngle, isLargeArc, sweepDirection, isStroked, isSmoothJoin); _figure.Segments.Add(segment); }
/// <summary> /// Creates a new <see cref="XArcSegment"/> instance. /// </summary> /// <param name="point"></param> /// <param name="size"></param> /// <param name="rotationAngle"></param> /// <param name="isLargeArc"></param> /// <param name="sweepDirection"></param> /// <param name="isStroked"></param> /// <param name="isSmoothJoin"></param> /// <returns></returns> public static XArcSegment Create( XPoint point, XPathSize size, double rotationAngle, bool isLargeArc, XSweepDirection sweepDirection, bool isStroked, bool isSmoothJoin) { return new XArcSegment() { Point = point, Size = size, RotationAngle = rotationAngle, IsLargeArc = isLargeArc, SweepDirection = sweepDirection, IsStroked = isStroked, IsSmoothJoin = isSmoothJoin }; }
/// <summary> /// /// </summary> /// <param name="start"></param> /// <param name="end"></param> /// <param name="style"></param> /// <param name="point"></param> /// <param name="isStroked"></param> /// <param name="name"></param> /// <returns></returns> public static XLine Create( XPoint start, XPoint end, ShapeStyle style, BaseShape point, bool isStroked = true, string name = "") { return new XLine() { Name = name, Style = style, IsStroked = isStroked, IsFilled = false, Data = new Data() { Bindings = ImmutableArray.Create<ShapeBinding>(), Properties = ImmutableArray.Create<ShapeProperty>() }, Start = start, End = end }; }
/// <summary> /// /// </summary> public override void Remove() { if (_topLeftHelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_topLeftHelperPoint); _topLeftHelperPoint = null; } if (_bottomRightHelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_bottomRightHelperPoint); _bottomRightHelperPoint = null; } }
/// <summary> /// /// </summary> public override void ToStateThree() { if (_ellipse != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_ellipse); _ellipse = null; } _endLine = XLine.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_endLine); _endHelperPoint = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_endHelperPoint); }
/// <summary> /// /// </summary> public override void Remove() { if (_ellipse != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_ellipse); _ellipse = null; } if (_startLine != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_startLine); _startLine = null; } if (_endLine != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_endLine); _endLine = null; } if (_p1HelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_p1HelperPoint); _p1HelperPoint = null; } if (_p2HelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_p2HelperPoint); _p2HelperPoint = null; } if (_centerHelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_centerHelperPoint); _centerHelperPoint = null; } if (_startHelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_startHelperPoint); _startHelperPoint = null; } if (_endHelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_endHelperPoint); _endHelperPoint = null; } _style = null; }
/// <summary> /// /// </summary> /// <param name="topLeft"></param> /// <param name="bottomRight"></param> /// <param name="style"></param> /// <param name="point"></param> /// <param name="text"></param> /// <param name="isStroked"></param> /// <param name="name"></param> /// <returns></returns> public static XText Create( XPoint topLeft, XPoint bottomRight, ShapeStyle style, BaseShape point, string text, bool isStroked = true, string name = "") { return new XText() { Name = name, Style = style, IsStroked = isStroked, Data = new Data() { Bindings = ImmutableArray.Create<ShapeBinding>(), Properties = ImmutableArray.Create<ShapeProperty>() }, TopLeft = topLeft, BottomRight = bottomRight, Text = text }; }
private void LineLeftDown(double x, double y) { double sx = _editor.Project.Options.SnapToGrid ? Editor.Snap(x, _editor.Project.Options.SnapX) : x; double sy = _editor.Project.Options.SnapToGrid ? Editor.Snap(y, _editor.Project.Options.SnapY) : y; switch (_currentState) { case State.None: { _lineStart = TryToGetConnectionPoint(sx, sy) ?? XPoint.Create(sx, sy, _editor.Project.Options.PointShape); if (!_isInitialized) { InitializeWorkingPath(_lineStart); } else { SetLineStartPointFromLastSegment(); } _lineEnd = XPoint.Create(sx, sy, _editor.Project.Options.PointShape); _geometry.LineTo( _lineEnd, _editor.Project.Options.DefaultIsStroked, _editor.Project.Options.DefaultIsSmoothJoin); _editor.Project.CurrentContainer.WorkingLayer.Invalidate(); ToStateOne(); Move(null); _editor.Project.CurrentContainer.HelperLayer.Invalidate(); _currentState = State.One; _editor.CancelAvailable = true; } break; case State.One: { _lineEnd.X = sx; _lineEnd.Y = sy; if (_editor.Project.Options.TryToConnect) { var end = TryToGetConnectionPoint(sx, sy); if (end != null) { var figure = _geometry.Figures.LastOrDefault(); var line = figure.Segments.LastOrDefault() as XLineSegment; line.Point = end; } } _lineStart = _lineEnd; _lineEnd = XPoint.Create(sx, sy, _editor.Project.Options.PointShape); _geometry.LineTo(_lineEnd, _editor.Project.Options.DefaultIsStroked, _editor.Project.Options.DefaultIsSmoothJoin); _editor.Project.CurrentContainer.WorkingLayer.Invalidate(); Move(null); _editor.Project.CurrentContainer.HelperLayer.Invalidate(); _currentState = State.One; } break; } }
private void ToStateTwoQBezier() { _style = _editor.Project.Options.HelperStyle; _qbezierLine12 = XLine.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_qbezierLine12); _qbezierLine32 = XLine.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_qbezierLine32); _qbezierHelperPoint2 = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_qbezierHelperPoint2); }
/// <summary> /// /// </summary> public override void ToStateOne() { _style = _editor.Project.Options.HelperStyle; _helperPoint1 = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_helperPoint1); _helperPoint4 = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_helperPoint4); }
/// <summary> /// /// </summary> /// <param name="tl"></param> /// <param name="br"></param> /// <param name="dx"></param> /// <param name="dy"></param> /// <returns></returns> private static Rect2 CreateRect(XPoint tl, XPoint br, double dx, double dy) { return(Rect2.Create(tl, br, dx, dy)); }
private void ToStateThreeBezier() { _bezierLine43 = XLine.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_bezierLine43); _bezierLine23 = XLine.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_bezierLine23); _bezierHelperPoint3 = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_bezierHelperPoint3); }
/// <summary> /// /// </summary> public override void ToStateThree() { _line43 = XLine.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_line43); _line23 = XLine.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_line23); _helperPoint3 = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_helperPoint3); }
private void InitializeWorkingPath(XPoint start) { _geometry = XPathGeometry.Create( new List<XPathFigure>(), _editor.Project.Options.DefaultFillRule); _geometry.BeginFigure( start, _editor.Project.Options.DefaultIsFilled, _editor.Project.Options.DefaultIsClosed); _path = XPath.Create( "Path", _editor.Project.CurrentStyleLibrary.CurrentStyle, _geometry, _editor.Project.Options.DefaultIsStroked, _editor.Project.Options.DefaultIsFilled); _editor.Project.CurrentContainer.WorkingLayer.Shapes = _editor.Project.CurrentContainer.WorkingLayer.Shapes.Add(_path); _previousPathTool = _editor.CurrentPathTool; _isInitialized = true; }
/// <summary> /// /// </summary> public override void ToStateTwo() { _style = _editor.Project.Options.HelperStyle; _line12 = XLine.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_line12); _helperPoint2 = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_helperPoint2); }
private void QBezierLeftDown(double x, double y) { double sx = _editor.Project.Options.SnapToGrid ? Editor.Snap(x, _editor.Project.Options.SnapX) : x; double sy = _editor.Project.Options.SnapToGrid ? Editor.Snap(y, _editor.Project.Options.SnapY) : y; switch (_currentState) { case State.None: { _qbezierPoint1 = TryToGetConnectionPoint(sx, sy) ?? XPoint.Create(sx, sy, _editor.Project.Options.PointShape); if (!_isInitialized) { InitializeWorkingPath(_qbezierPoint1); } else { SetQBezieFirstPointFromLastSegment(); } _qbezierPoint2 = XPoint.Create(sx, sy, _editor.Project.Options.PointShape); _qbezierPoint3 = XPoint.Create(sx, sy, _editor.Project.Options.PointShape); _geometry.QuadraticBezierTo( _qbezierPoint2, _qbezierPoint3, _editor.Project.Options.DefaultIsStroked, _editor.Project.Options.DefaultIsSmoothJoin); _editor.Project.CurrentContainer.WorkingLayer.Invalidate(); ToStateOne(); Move(null); _editor.Project.CurrentContainer.HelperLayer.Invalidate(); _currentState = State.One; _editor.CancelAvailable = true; } break; case State.One: { _qbezierPoint3.X = sx; _qbezierPoint3.Y = sy; if (_editor.Project.Options.TryToConnect) { var point2 = TryToGetConnectionPoint(sx, sy); if (point2 != null) { var figure = _geometry.Figures.LastOrDefault(); var qbezier = figure.Segments.LastOrDefault() as XQuadraticBezierSegment; qbezier.Point2 = point2; _qbezierPoint3 = point2; } } _editor.Project.CurrentContainer.WorkingLayer.Invalidate(); ToStateTwo(); Move(null); _editor.Project.CurrentContainer.HelperLayer.Invalidate(); _currentState = State.Two; } break; case State.Two: { _qbezierPoint2.X = sx; _qbezierPoint2.Y = sy; if (_editor.Project.Options.TryToConnect) { var point1 = TryToGetConnectionPoint(sx, sy); if (point1 != null) { var figure = _geometry.Figures.LastOrDefault(); var qbezier = figure.Segments.LastOrDefault() as XQuadraticBezierSegment; qbezier.Point1 = point1; _qbezierPoint2 = point1; } } _qbezierPoint1 = _qbezierPoint3; _qbezierPoint2 = XPoint.Create(sx, sy, _editor.Project.Options.PointShape); _qbezierPoint3 = XPoint.Create(sx, sy, _editor.Project.Options.PointShape); _geometry.QuadraticBezierTo( _qbezierPoint2, _qbezierPoint3, _editor.Project.Options.DefaultIsStroked, _editor.Project.Options.DefaultIsSmoothJoin); _editor.Project.CurrentContainer.WorkingLayer.Invalidate(); Remove(); ToStateOne(); Move(null); _editor.Project.CurrentContainer.HelperLayer.Invalidate(); _currentState = State.One; } break; } }
/// <summary> /// /// </summary> /// <param name="p1"></param> /// <param name="p2"></param> /// <param name="p3"></param> /// <param name="p4"></param> /// <param name="dx"></param> /// <param name="dy"></param> /// <returns></returns> public static GdiArc FromXArc(XPoint p1, XPoint p2, XPoint p3, XPoint p4, double dx, double dy) { double x1 = p1.X + dx; double y1 = p1.Y + dy; double x2 = p2.X + dx; double y2 = p2.Y + dy; double x3 = p3.X + dx; double y3 = p3.Y + dy; double x4 = p4.X + dx; double y4 = p4.Y + dy; var rect = Rect2.Create(x1, y1, x2, y2, dx, dy); double cx = rect.X + rect.Width / 2.0; double cy = rect.Y + rect.Height / 2.0; double radiusX = cx - rect.X; double radiusY = cy - rect.Y; double startAngle = Math.Atan2(y3 - cy, x3 - cx); double endAngle = Math.Atan2(y4 - cy, x4 - cx); double sweepAngle = (endAngle - startAngle) * 180.0 / Math.PI; if (sweepAngle < 0) sweepAngle += 360; startAngle *= 180.0 / Math.PI; endAngle *= 180.0 / Math.PI; return new GdiArc { X = rect.X, Y = rect.Y, Width = rect.Width, Height = rect.Height, RadiusX = radiusX, RadiusY = radiusY, StartAngle = startAngle, EndAngle = endAngle, SweepAngle = sweepAngle }; }
private void RemoveLineHelpers() { if (_lineStartHelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_lineStartHelperPoint); _lineStartHelperPoint = null; } if (_lineEndHelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_lineEndHelperPoint); _lineEndHelperPoint = null; } _style = null; }
private void RemoveQBezierHelpers() { if (_qbezierLine12 != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_qbezierLine12); _qbezierLine12 = null; } if (_qbezierLine32 != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_qbezierLine32); _qbezierLine32 = null; } if (_qbezierHelperPoint1 != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_qbezierHelperPoint1); _qbezierHelperPoint1 = null; } if (_qbezierHelperPoint2 != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_qbezierHelperPoint2); _qbezierHelperPoint2 = null; } if (_qbezierHelperPoint3 != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_qbezierHelperPoint3); _qbezierHelperPoint3 = null; } _style = null; }
/// <summary> /// Creates a new <see cref="XArc"/> instance. /// </summary> /// <param name="point1"></param> /// <param name="point2"></param> /// <param name="point3"></param> /// <param name="point4"></param> /// <param name="style"></param> /// <param name="point"></param> /// <param name="isStroked"></param> /// <param name="isFilled"></param> /// <param name="name"></param> /// <returns></returns> public static XArc Create( XPoint point1, XPoint point2, XPoint point3, XPoint point4, ShapeStyle style, BaseShape point, bool isStroked = true, bool isFilled = false, string name = "") { return new XArc() { Name = name, Style = style, IsStroked = isStroked, IsFilled = isFilled, Data = new Data() { Bindings = ImmutableArray.Create<Binding>(), Properties = ImmutableArray.Create<Property>() }, Point1 = point1, Point2 = point2, Point3 = point3, Point4 = point4 }; }
private void SetQBezieFirstPointFromLastSegment() { var figure = _geometry.Figures.LastOrDefault(); if (figure != null) { var segment = figure.Segments.LastOrDefault(); if (segment != null) { if (segment is XLineSegment) { _qbezierPoint1 = (segment as XLineSegment).Point; } else if (segment is XArcSegment) { // TODO: Set qbezier first point using last arc point. } else if (segment is XBezierSegment) { _qbezierPoint1 = (segment as XBezierSegment).Point3; } else if (segment is XQuadraticBezierSegment) { _qbezierPoint1 = (segment as XQuadraticBezierSegment).Point2; } } else { _qbezierPoint1 = figure.StartPoint; } } }
/// <summary> /// /// </summary> public override void ToStateOne() { _style = _editor.Project.Options.HelperStyle; _ellipse = XEllipse.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_ellipse); _p1HelperPoint = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_p1HelperPoint); _p2HelperPoint = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_p2HelperPoint); _centerHelperPoint = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_centerHelperPoint); }
private void ToStateOneLine() { _style = _editor.Project.Options.HelperStyle; _lineStartHelperPoint = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_lineStartHelperPoint); _lineEndHelperPoint = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_lineEndHelperPoint); }
/// <summary> /// /// </summary> public override void ToStateTwo() { if (_p1HelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_p1HelperPoint); _p1HelperPoint = null; } if (_p2HelperPoint != null) { _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Remove(_p2HelperPoint); _p2HelperPoint = null; } _startLine = XLine.Create(0, 0, _style, null); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_startLine); _startHelperPoint = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_startHelperPoint); }
private void ToStateOneQBezier() { _style = _editor.Project.Options.HelperStyle; _qbezierHelperPoint1 = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_qbezierHelperPoint1); _qbezierHelperPoint3 = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_qbezierHelperPoint3); }
/// <summary> /// /// </summary> public override void ToStateOne() { _topLeftHelperPoint = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_topLeftHelperPoint); _bottomRightHelperPoint = XPoint.Create(0, 0, _editor.Project.Options.PointShape); _editor.Project.CurrentContainer.HelperLayer.Shapes = _editor.Project.CurrentContainer.HelperLayer.Shapes.Add(_bottomRightHelperPoint); }
/// <summary> /// /// </summary> /// <param name="tl"></param> /// <param name="br"></param> /// <param name="dx"></param> /// <param name="dy"></param> /// <returns></returns> public static Rect2 Create( XPoint tl, XPoint br, double dx = 0.0, double dy = 0.0) { return(Rect2.Create(tl.X, tl.Y, br.X, br.Y, dx, dy)); }