From 726e8a2caafc68fe07325207884cd6d96f3633d3 Mon Sep 17 00:00:00 2001 From: Ivan Mahonin Date: Feb 08 2018 09:39:23 +0000 Subject: assistance: document --- diff --git a/mono/Assistance/ActivePoint.cs b/mono/Assistance/ActivePoint.cs index 5fe461c..4ab7bac 100644 --- a/mono/Assistance/ActivePoint.cs +++ b/mono/Assistance/ActivePoint.cs @@ -12,13 +12,13 @@ namespace Assistance { }; public class Owner { - public readonly Workarea workarea; + public readonly Document document; public readonly List points = new List(); - public Owner(Workarea workarea) { this.workarea = workarea; } + public Owner(Document document) { this.document = document; } public virtual void onMovePoint(ActivePoint point, Point position) { point.position = position; } public virtual void bringToFront() { } - public virtual void remove() { foreach(ActivePoint point in points) workarea.points.Remove(point); } + public virtual void remove() { foreach(ActivePoint point in points) document.points.Remove(point); } } public static readonly double radius = 10.0; @@ -28,17 +28,17 @@ namespace Assistance { public static readonly Pen penActive = Pens.Blue; public static readonly Brush brushActive = Brushes.LightBlue; - public readonly Workarea workarea; + public readonly Document document; public readonly Owner owner; public readonly Type type; public Point position; public ActivePoint(Owner owner, Type type, Point position = new Point()) { - this.workarea = owner.workarea; + this.document = owner.document; this.owner = owner; this.type = type; this.position = position; - workarea.points.Add(this); + document.points.Add(this); owner.points.Add(this); } @@ -50,8 +50,8 @@ namespace Assistance { owner.bringToFront(); owner.points.Remove(this); owner.points.Add(this); - workarea.points.Remove(this); - workarea.points.Add(this); + document.points.Remove(this); + document.points.Add(this); } private Pen getPen(bool active) { diff --git a/mono/Assistance/Assistance.csproj b/mono/Assistance/Assistance.csproj index 5abba85..a783b76 100644 --- a/mono/Assistance/Assistance.csproj +++ b/mono/Assistance/Assistance.csproj @@ -52,6 +52,8 @@ Point.cs + + diff --git a/mono/Assistance/Assistant.cs b/mono/Assistance/Assistant.cs index 15e1425..5a1829e 100644 --- a/mono/Assistance/Assistant.cs +++ b/mono/Assistance/Assistant.cs @@ -9,20 +9,21 @@ namespace Assistance { //public static readonly int gridPointsCount = 100; public static readonly Pen pen = Pens.Gray; - public Assistant(Workarea workarea): base(workarea) { - workarea.assistants.Add(this); + public Assistant(Document document): base(document) { + document.assistants.Add(this); } public override void remove() { base.remove(); - workarea.assistants.Remove(this); + document.assistants.Remove(this); } public override void bringToFront() { - workarea.assistants.Remove(this); - workarea.assistants.Add(this); + document.assistants.Remove(this); + document.assistants.Add(this); } + // TODO: ? //public double getMaxLen() { // double l = 0.0; // foreach(ActivePoint point in points) diff --git a/mono/Assistance/AssistantGrid.cs b/mono/Assistance/AssistantGrid.cs index 7e14c6e..40d4618 100644 --- a/mono/Assistance/AssistantGrid.cs +++ b/mono/Assistance/AssistantGrid.cs @@ -4,7 +4,7 @@ namespace Assistance { public class AssistantGrid: Assistant { public ActivePoint center; - public AssistantGrid(Workarea canvas, Point center): base(canvas) { + public AssistantGrid(Document document, Point center): base(document) { this.center = new ActivePoint(this, ActivePoint.Type.CircleCross, center); } diff --git a/mono/Assistance/AssistantVanishingPoint.cs b/mono/Assistance/AssistantVanishingPoint.cs index 5524732..42893fc 100644 --- a/mono/Assistance/AssistantVanishingPoint.cs +++ b/mono/Assistance/AssistantVanishingPoint.cs @@ -12,7 +12,7 @@ namespace Assistance { public ActivePoint b1; public ActivePoint step; - public AssistantVanishingPoint(Workarea workarea, Point center): base(workarea) { + public AssistantVanishingPoint(Document document, Point center): base(document) { this.center = new ActivePoint(this, ActivePoint.Type.CircleCross, center); a0 = new ActivePoint(this, ActivePoint.Type.CircleFill, center + new Point(-100.0, 0.0)); a1 = new ActivePoint(this, ActivePoint.Type.Circle, center + new Point(-200.0, 0.0)); diff --git a/mono/Assistance/Document.cs b/mono/Assistance/Document.cs new file mode 100644 index 0000000..fb6dd89 --- /dev/null +++ b/mono/Assistance/Document.cs @@ -0,0 +1,20 @@ +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.Collections.Generic; +using System.Linq; + +namespace Assistance { + public class Document { + public readonly Workarea workarea; + public readonly List assistants = new List(); + public readonly List modifiers = new List(); + public readonly List points = new List(); + public readonly Canvas canvas = new Canvas(); + + public Document(Workarea workarea) { + this.workarea = workarea; + } + } +} + diff --git a/mono/Assistance/MainWindow.cs b/mono/Assistance/MainWindow.cs index 9cd62e9..c888249 100644 --- a/mono/Assistance/MainWindow.cs +++ b/mono/Assistance/MainWindow.cs @@ -70,13 +70,13 @@ namespace Assistance { public void onKeyDown(Object sender, KeyEventArgs e) { switch(e.KeyCode) { case Keys.D1: - new AssistantVanishingPoint(workarea, cursor); + new AssistantVanishingPoint(workarea.document, cursor); break; case Keys.D2: - new AssistantGrid(workarea, cursor); + new AssistantGrid(workarea.document, cursor); break; case Keys.Q: - new ModifierSnowflake(workarea, cursor); + new ModifierSnowflake(workarea.document, cursor); break; case Keys.Delete: if (activePoint != null) diff --git a/mono/Assistance/Modifier.cs b/mono/Assistance/Modifier.cs index 1c314d4..663d6c2 100644 --- a/mono/Assistance/Modifier.cs +++ b/mono/Assistance/Modifier.cs @@ -7,18 +7,18 @@ namespace Assistance { public class Modifier: ActivePoint.Owner { public static readonly Pen pen = Pens.LightGray; - public Modifier(Workarea workarea): base(workarea) { - workarea.modifiers.Add(this); + public Modifier(Document document): base(document) { + document.modifiers.Add(this); } public override void remove() { base.remove(); - workarea.modifiers.Remove(this); + document.modifiers.Remove(this); } public override void bringToFront() { - workarea.modifiers.Remove(this); - workarea.modifiers.Add(this); + document.modifiers.Remove(this); + document.modifiers.Add(this); } public virtual void draw(Graphics g) { } diff --git a/mono/Assistance/ModifierSnowflake.cs b/mono/Assistance/ModifierSnowflake.cs index 4a69b23..3b50176 100644 --- a/mono/Assistance/ModifierSnowflake.cs +++ b/mono/Assistance/ModifierSnowflake.cs @@ -9,7 +9,7 @@ namespace Assistance { public ActivePoint center; - public ModifierSnowflake(Workarea workarea, Point center): base(workarea) { + public ModifierSnowflake(Document document, Point center): base(document) { this.center = new ActivePoint(this, ActivePoint.Type.CircleCross, center); } diff --git a/mono/Assistance/Tool.cs b/mono/Assistance/Tool.cs new file mode 100644 index 0000000..fe9ffaf --- /dev/null +++ b/mono/Assistance/Tool.cs @@ -0,0 +1,9 @@ +using System; + +namespace Assistance { + public class Tool { + public Tool() { + } + } +} + diff --git a/mono/Assistance/Workarea.cs b/mono/Assistance/Workarea.cs index 1b95df3..4c5af83 100644 --- a/mono/Assistance/Workarea.cs +++ b/mono/Assistance/Workarea.cs @@ -6,28 +6,30 @@ using System.Linq; namespace Assistance { public class Workarea { - public readonly List assistants = new List(); - public readonly List modifiers = new List(); - public readonly List points = new List(); - public readonly Canvas canvas = new Canvas(); + public readonly Document document; + // TODO: remove this? public ActivePoint ActivePoint = null; + public Workarea() { + document = new Document(this); + } + public ActivePoint findPoint(Point position) { - foreach(ActivePoint point in points.Reverse()) + foreach(ActivePoint point in document.points.Reverse()) if (point.isInside(position)) return point; return null; } public void getGuidelines(List outGuidelines, Point target) { - foreach(Assistant assistant in assistants) + foreach(Assistant assistant in document.assistants) assistant.getGuidelines(outGuidelines, target); } public void draw(Graphics g, ActivePoint activePoint, Point target, Track track) { // canvas - canvas.draw(g); + document.canvas.draw(g); // guidelines and track List guidelines = new List(); @@ -52,15 +54,15 @@ namespace Assistance { } // modifiers - foreach(Modifier modifier in modifiers) + foreach(Modifier modifier in document.modifiers) modifier.draw(g); // assistants - foreach(Assistant assistant in assistants) + foreach(Assistant assistant in document.assistants) assistant.draw(g); // active points - foreach(ActivePoint point in points) + foreach(ActivePoint point in document.points) point.draw(g, activePoint == point); } @@ -79,7 +81,7 @@ namespace Assistance { public List modifyTrackByModifiers(Track track) { List tracks = new List() { track }; - foreach(Modifier modifier in modifiers) + foreach(Modifier modifier in document.modifiers) tracks = modifier.modify(tracks); return tracks; } @@ -100,7 +102,7 @@ namespace Assistance { public void paintTrack(Track track) { List tracks = modifyTrack(track); foreach(Track t in tracks) - canvas.paintTrack(t); + document.canvas.paintTrack(t); } } }