Native shape renderer base class.
Inheritance: ObservableObject
Esempio n. 1
0
        /// <inheritdoc/>
        public override void Draw(object dc, ShapeRenderer renderer, double dx, double dy, ImmutableArray<XProperty> db, XRecord r)
        {
            var record = this.Data.Record ?? r;

            if (State.Flags.HasFlag(ShapeStateFlags.Visible))
            {
                renderer.Draw(dc, this, dx, dy, db, record);
            }

            if (renderer.State.SelectedShape != null)
            {
                if (this == renderer.State.SelectedShape)
                {
                    _start.Draw(dc, renderer, dx, dy, db, record);
                    _end.Draw(dc, renderer, dx, dy, db, record);
                }
                else if (_start == renderer.State.SelectedShape)
                {
                    _start.Draw(dc, renderer, dx, dy, db, record);
                }
                else if (_end == renderer.State.SelectedShape)
                {
                    _end.Draw(dc, renderer, dx, dy, db, record);
                }
            }

            if (renderer.State.SelectedShapes != null)
            {
                if (renderer.State.SelectedShapes.Contains(this))
                {
                    _start.Draw(dc, renderer, dx, dy, db, record);
                    _end.Draw(dc, renderer, dx, dy, db, record);
                }
            }
        }
Esempio n. 2
0
        /// <inheritdoc/>
        public override void Draw(object dc, ShapeRenderer renderer, double dx, double dy, ImmutableArray<XProperty> db, XRecord r)
        {
            var record = this.Data.Record ?? r;

            if (State.Flags.HasFlag(ShapeStateFlags.Visible))
            {
                renderer.Draw(dc, this, dx, dy, db, record);
                base.Draw(dc, renderer, dx, dy, db, record);
            }
        }
Esempio n. 3
0
        /// <inheritdoc/>
        public override void Draw(object dc, ShapeRenderer renderer, double dx, double dy, ImmutableArray<XProperty> db, XRecord r)
        {
            var record = this.Data.Record ?? r;

            if (State.Flags.HasFlag(ShapeStateFlags.Visible))
            {
                renderer.Draw(dc, this, dx, dy, db, record);
            }

            if (renderer.State.SelectedShape != null)
            {
                if (this == renderer.State.SelectedShape)
                {
                    var points = this.GetPoints();
                    foreach (var point in points)
                    {
                        point.Draw(dc, renderer, dx, dy, db, record);
                    }
                }
                else
                {
                    var points = this.GetPoints();
                    foreach (var point in points)
                    {
                        if (point == renderer.State.SelectedShape)
                        {
                            point.Draw(dc, renderer, dx, dy, db, record);
                        }
                    }
                }
            }

            if (renderer.State.SelectedShapes != null)
            {
                if (renderer.State.SelectedShapes.Contains(this))
                {
                    var points = this.GetPoints();
                    foreach (var point in points)
                    {
                        point.Draw(dc, renderer, dx, dy, db, record);
                    }
                }
            }
        }
Esempio n. 4
0
 /// <summary>
 /// Sets renderer options attached property.
 /// </summary>
 /// <param name="obj">The avalonia object.</param>
 /// <param name="value">The shape render value.</param>
 public static void SetRenderer(AvaloniaObject obj, ShapeRenderer value)
 {
     obj.SetValue(RendererProperty, value);
 }
Esempio n. 5
0
 public override void Draw(object dc, ShapeRenderer renderer, double dx, double dy, ImmutableArray<XProperty> db, XRecord r)
 {
     throw new NotImplementedException();
 }
Esempio n. 6
0
 /// <summary>
 /// Renders a container using provided drawing context.
 /// </summary>
 /// <param name="dc">The drawing context.</param>
 /// <param name="renderer">The shape renderer.</param>
 /// <param name="container">The container to render.</param>
 /// <param name="dx">The X coordinate offset.</param>
 /// <param name="dy">The Y coordinate offset.</param>
 public abstract void Render(object dc, ShapeRenderer renderer, XContainer container, double dx, double dy);
Esempio n. 7
0
        /// <inheritdoc/>
        public override void Draw(object dc, ShapeRenderer renderer, double dx, double dy, ImmutableArray<XProperty> db, XRecord r)
        {
            var record = this.Data.Record ?? r;

            if (State.Flags.HasFlag(ShapeStateFlags.Visible))
            {
                foreach (var shape in Shapes)
                {
                    shape.Draw(dc, renderer, dx, dy, db, record);
                }
            }

            if (renderer.State.SelectedShape != null)
            {
                if (this == renderer.State.SelectedShape)
                {
                    foreach (var connector in Connectors)
                    {
                        connector.Draw(dc, renderer, dx, dy, db, record);
                    }
                }
                else
                {
                    foreach (var connector in Connectors)
                    {
                        if (connector == renderer.State.SelectedShape)
                        {
                            connector.Draw(dc, renderer, dx, dy, db, record);
                        }
                    }
                }
            }

            if (renderer.State.SelectedShapes != null)
            {
                if (renderer.State.SelectedShapes.Contains(this))
                {
                    foreach (var connector in Connectors)
                    {
                        connector.Draw(dc, renderer, dx, dy, db, record);
                    }
                }
            }
        }
Esempio n. 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="PdfExporter"/> class.
 /// </summary>
 /// <param name="renderer">The shape renderer.</param>
 /// <param name="presenter">The container presenter.</param>
 /// <param name="targetDpi">The target renderer dpi.</param>
 public PdfExporter(ShapeRenderer renderer, ContainerPresenter presenter, float targetDpi = 72.0f)
 {
     _renderer = renderer;
     _presenter = presenter;
     _targetDpi = targetDpi;
 }
Esempio n. 9
0
 public abstract void Draw(object dc, ShapeRenderer renderer, BaseShape shape, ISelection selection, double dx, double dy);
Esempio n. 10
0
 /// <summary>
 /// Sets the <see cref="DependencyProperty"/> object value as <see cref="ShapeRenderer"/>.
 /// </summary>
 /// <param name="obj">The <see cref="DependencyProperty"/> object.</param>
 /// <param name="value">The <see cref="ShapeRenderer"/> value.</param>
 public static void SetRenderer(DependencyObject obj, ShapeRenderer value)
 {
     obj.SetValue(RendererProperty, value);
 }
Esempio n. 11
0
 /// <summary>
 /// Renders a container using provided drawing context.
 /// </summary>
 /// <param name="dc">The drawing context.</param>
 /// <param name="renderer">The shape renderer.</param>
 /// <param name="container">The container to render.</param>
 /// <param name="dx">The X coordinate offset.</param>
 /// <param name="dy">The Y coordinate offset.</param>
 public abstract void Render(object dc, ShapeRenderer renderer, PageContainer container, double dx, double dy);
Esempio n. 12
0
 /// <summary>
 /// Draws shape using current <see cref="ShapeRenderer"/>.
 /// </summary>
 /// <param name="dc">The generic drawing context object.</param>
 /// <param name="renderer">The generic renderer object used to draw shape.</param>
 /// <param name="dx">The X axis draw position offset.</param>
 /// <param name="dy">The Y axis draw position offset.</param>
 /// <param name="db">The properties database used for binding.</param>
 /// <param name="r">The external data record used for binding.</param>
 public abstract void Draw(object dc, ShapeRenderer renderer, double dx, double dy, ImmutableArray<XProperty> db, XRecord r);