using RealTimeGraphX.EventArguments; using System; using System.Collections.Generic; using System.Drawing; using System.Text; namespace RealTimeGraphX { /// /// Represents a graph drawing surface capable of drawing a series of points submitted by a graph renderer. /// public interface IGraphSurface : IGraphComponent { /// /// Occurs when the surface size has changed. /// event EventHandler SurfaceSizeChanged; /// /// Occurs when the surface zoom rectangle has changed. /// event EventHandler ZoomRectChanged; /// /// Returns the actual size of the surface. /// /// SizeF GetSize(); /// /// Returns the current bounds of the zooming rectangle. /// /// RectangleF GetZoomRect(); } /// /// Represents a graph drawing surface capable of drawing a series of points submitted by a graph renderer. /// /// The type of the data series. /// public interface IGraphSurface : IGraphSurface where TDataSeries : IGraphDataSeries { /// /// Called before drawing has started. /// void BeginDraw(); /// /// Draws the stroke of the specified data series points. /// /// The data series. /// The points. void DrawSeries(TDataSeries dataSeries, IEnumerable points); /// /// Fills the specified data series points. /// /// The data series. /// The points. void FillSeries(TDataSeries dataSeries, IEnumerable points); /// /// Applies transformation on the current pass. /// /// The transform. void SetTransform(GraphTransform transform); /// /// Called when drawing has completed. /// void EndDraw(); } }