/// <summary> /// Create label /// </summary> /// <param name="point"></param> /// <param name="content"></param> /// <param name="shapeModel"></param> public override void CreateLabel(Point point, string content, IShapeModel shapeModel) { CreateCanvas(); var position = SKTextAlign.Center; switch (shapeModel.Position) { case TextAlignment.Left: position = SKTextAlign.Left; break; case TextAlignment.Right: position = SKTextAlign.Right; break; } var pen = new SKPaint { TextAlign = position, TextSize = (float)shapeModel.Size, Color = shapeModel.Color.ToSKColor() }; _canvas.DrawText( content, (float)point.X, (float)point.Y, pen); pen.Dispose(); }
/// <summary> /// Create shape /// </summary> /// <param name="points"></param> /// <param name="shapeModel"></param> public override void CreateShape(IList <Point> points, IShapeModel shapeModel) { CreateCanvas(); var shape = new SKPath(); var origin = points.ElementAtOrDefault(0); if (origin == default) { return; } shape.MoveTo((float)origin.X, (float)origin.Y); for (var i = 1; i < points.Count; i++) { shape.LineTo((float)points[i].X, (float)points[i].Y); } shape.Close(); var pen = new SKPaint { Style = SKPaintStyle.Fill, Color = shapeModel.Color.ToSKColor() }; _canvas.DrawPath(shape, pen); pen.Dispose(); shape.Dispose(); }
void OnDisable() { if (_shapeModel != null) { _shapeModel.OnModelUpdate -= UpdateUI; } _shapeModel = null; }
public void HandleWorldObjectSelected(object sender, WorldObjectSelectedEventArgs args) { if (args.objectModel == null || args.objectModel.Type == WorldObjectType.LIGHT) { return; } if (_shapeModel != null) { _shapeModel.OnModelUpdate -= UpdateUI; } _shapeModel = args.objectModel as IShapeModel; UpdateUI(); _shapeModel.OnModelUpdate += UpdateUI; }
/// <summary> /// Create circle /// </summary> /// <param name="point"></param> /// <param name="shapeModel"></param> public override void CreateCircle(Point point, IShapeModel shapeModel) { CreateCanvas(); var pen = new SKPaint { Style = SKPaintStyle.Fill, Color = shapeModel.Color.ToSKColor() }; _canvas.DrawCircle( (float)point.X, (float)point.Y, (float)shapeModel.Size, pen); pen.Dispose(); }
/// <summary> /// Create line /// </summary> /// <param name="pointSource"></param> /// <param name="pointDestination"></param> /// <param name="shapeModel"></param> public override void CreateLine(Point pointSource, Point pointDestination, IShapeModel shapeModel) { CreateCanvas(); var pen = new SKPaint { Style = SKPaintStyle.Stroke, Color = shapeModel.Color.ToSKColor(), StrokeWidth = (float)shapeModel.Size }; _canvas.DrawLine( (float)pointSource.X, (float)pointSource.Y, (float)pointDestination.X, (float)pointDestination.Y, pen); pen.Dispose(); }
/// <summary> /// Create circle /// </summary> /// <param name="point"></param> /// <param name="shapeModel"></param> public virtual void CreateCircle(Point point, IShapeModel shapeModel) { }
/// <summary> /// Create line /// </summary> /// <param name="pointSource"></param> /// <param name="pointDestination"></param> /// <param name="shapeModel"></param> public virtual void CreateLine(Point pointSource, Point pointDestination, IShapeModel shapeModel) { }
/// <summary> /// Create label /// </summary> /// <param name="point"></param> /// <param name="content"></param> /// <param name="shapeModel"></param> public virtual void CreateLabel(Point point, string content, IShapeModel shapeModel) { }
/// <summary> /// Create shape /// </summary> /// <param name="points"></param> /// <param name="shapeModel"></param> public virtual void CreateShape(IList <Point> points, IShapeModel shapeModel) { }
internal Picture(IShapeModel model) { mModel = model; }
public Picture(IShapeModel model) { this.mModel = model; }