Beispiel #1
0
        /// <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();
        }
Beispiel #2
0
        /// <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();
        }
Beispiel #3
0
    void OnDisable()
    {
        if (_shapeModel != null)
        {
            _shapeModel.OnModelUpdate -= UpdateUI;
        }

        _shapeModel = null;
    }
Beispiel #4
0
    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;
    }
Beispiel #5
0
        /// <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();
        }
Beispiel #6
0
        /// <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();
        }
Beispiel #7
0
 /// <summary>
 /// Create circle
 /// </summary>
 /// <param name="point"></param>
 /// <param name="shapeModel"></param>
 public virtual void CreateCircle(Point point, IShapeModel shapeModel)
 {
 }
Beispiel #8
0
 /// <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)
 {
 }
Beispiel #9
0
 /// <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)
 {
 }
Beispiel #10
0
 /// <summary>
 /// Create shape
 /// </summary>
 /// <param name="points"></param>
 /// <param name="shapeModel"></param>
 public virtual void CreateShape(IList <Point> points, IShapeModel shapeModel)
 {
 }
Beispiel #11
0
 internal Picture(IShapeModel model)
 {
     mModel = model;
 }
Beispiel #12
0
 public Picture(IShapeModel model)
 {
     this.mModel = model;
 }