using System; using System.Drawing; using System.Drawing.Imaging; using System.Collections.Generic; using System.Linq; namespace Assistance { public class Canvas { public readonly List assistants = new List(); public readonly List points = new List(); public ActivePoint ActivePoint = null; public ActivePoint findPoint(Point position) { foreach(ActivePoint point in points.Reverse()) if (point.isInside(position)) return point; return null; } public void drawGuidlines(Graphics g, Point point) { foreach(Assistant assistant in assistants) assistant.drawGuidlines(g, point); } public void drawAssistants(Graphics g) { foreach(Assistant assistant in assistants) assistant.draw(g); } public void drawPoints(Graphics g, ActivePoint activePoint) { foreach(ActivePoint point in points) point.draw(g, activePoint == point ? ActivePoint.Mode.Active : ActivePoint.Mode.Common); } public void draw(Graphics g, ActivePoint activePoint, Point guidlinesPoint) { drawGuidlines(g, guidlinesPoint); drawAssistants(g); drawPoints(g, activePoint); } public void draw(Graphics g, ActivePoint activePoint) { drawAssistants(g); drawPoints(g, activePoint); } } }