Example #1
0
        /// <summary>
        /// Combines two drawing objects into single canvas object.
        /// If both drawing objects are canvas, first canvas will get all second canvas drawing objects and second canvas will be cleared.
        /// If only one of the objects is canvas, second object will be added to the canvas.
        /// If none of the objects is canvas, new canvas will be created with both drawings.
        /// </summary>
        /// <param name="graphics"><see cref="IGraphics"/> object.</param>
        /// <param name="drawing1">First drawing object.</param>
        /// <param name="drawing2">Second drawing object.</param>
        /// <returns>Canvas object containing both drawing objects.</returns>
        public static ICanvas Combine(this IGraphics graphics, IDrawing drawing1, IDrawing drawing2)
        {
            ICanvas canvas1 = drawing1 as ICanvas;
            ICanvas canvas2 = drawing2 as ICanvas;

            if (canvas1 != null && canvas2 != null)
            {
                IDrawing[] drawings = canvas2.Drawings.ToArray();

                canvas2.Clear();
                foreach (IDrawing drawing in drawings)
                {
                    canvas1.AddDrawing(drawing);
                }
                return(canvas1);
            }
            else if (canvas1 != null)
            {
                canvas1.AddDrawing(drawing2);
                return(canvas1);
            }
            else if (canvas2 != null)
            {
                canvas2.AddDrawing(drawing1);
                return(canvas2);
            }
            else
            {
                return(graphics.CreateCanvas(drawing1, drawing2));
            }
        }
Example #2
0
        /// <summary>
        /// Creates canvas object that contains the specified list of drawings.
        /// </summary>
        /// <param name="graphics"><see cref="IGraphics"/> object.</param>
        /// <param name="drawingObjects">Drawing visualizer objects.</param>
        /// <returns>Canvas object.</returns>
        public static ICanvas CreateCanvas(this IGraphics graphics, params IDrawingVisualizerObject[] drawingObjects)
        {
            IDrawing[] drawings = drawingObjects.Where(d => d.CanVisualize()).Select(d => d.CreateDrawing(graphics)).ToArray();

            return(graphics.CreateCanvas(drawings));
        }
Example #3
0
 /// <summary>
 /// Creates canvas object that contains the specified list of drawings.
 /// </summary>
 /// <param name="graphics"><see cref="IGraphics"/> object.</param>
 /// <param name="drawings">Drawing objects.</param>
 /// <returns>Canvas object.</returns>
 public static ICanvas CreateCanvas(this IGraphics graphics, params IDrawing[] drawings)
 {
     return(graphics.CreateCanvas(drawings));
 }