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();
}
}