using System.Drawing; namespace HeuristicLab.Visualization.Drawing { /// /// This is the base interface that has to be implemented by all shapes. /// /// View port /// The view port is the available drawing area on the screen. /// It is specified in the GDI coordinate system. /// /// Clipping area /// The clipping area is the range of values visible on the view port. /// Values outside this area will not be visible (they "get clipped"). /// It can either be inherited from the parent, or it can be overriden /// to create distorted realities (see world shapes). /// It is specified in a world coordinate system. /// /// Bounding box /// The bounding box is the location and the size of a shape on its parent. /// It is specified in the parent's world coordinate system. /// public interface IShape { /// /// Draws the shape /// /// The Graphics object used to draw the shape void Draw(Graphics graphics); /// /// The shape's bounding box /// RectangleD BoundingBox { get; } RectangleD ClippingArea { get; } Rectangle Viewport { get; } IShape Parent { get; set; } } }