|
|
ebcc4f |
using System;
|
|
|
ebcc4f |
using System.Drawing;
|
|
|
ebcc4f |
using System.Drawing.Imaging;
|
|
|
ebcc4f |
using System.Collections.Generic;
|
|
|
ebcc4f |
|
|
|
ebcc4f |
namespace Assistance {
|
|
|
ebcc4f |
public class Assistant {
|
|
|
ebcc4f |
public static readonly double maxLen = 1000.0;
|
|
|
ebcc4f |
public static readonly int gridPointsCount = 100;
|
|
|
ebcc4f |
public static readonly Pen pen = Pens.Gray;
|
|
|
ebcc4f |
public static readonly Pen guidePen = Pens.LightGray;
|
|
|
ebcc4f |
|
|
|
b1ff53 |
public readonly Workarea canvas;
|
|
|
ebcc4f |
public readonly List<activepoint> points = new List<activepoint>();</activepoint></activepoint>
|
|
|
ebcc4f |
|
|
|
b1ff53 |
public Assistant(Workarea canvas) {
|
|
|
ebcc4f |
this.canvas = canvas;
|
|
|
ebcc4f |
canvas.assistants.Add(this);
|
|
|
ebcc4f |
}
|
|
|
ebcc4f |
|
|
|
ebcc4f |
public void remove() {
|
|
|
ebcc4f |
foreach(ActivePoint point in points)
|
|
|
ebcc4f |
canvas.points.Remove(point);
|
|
|
ebcc4f |
canvas.assistants.Remove(this);
|
|
|
ebcc4f |
}
|
|
|
ebcc4f |
|
|
|
ebcc4f |
public void bringToFront() {
|
|
|
ebcc4f |
canvas.assistants.Remove(this);
|
|
|
ebcc4f |
canvas.assistants.Add(this);
|
|
|
ebcc4f |
}
|
|
|
ebcc4f |
|
|
|
ebcc4f |
public double getMaxLen() {
|
|
|
ebcc4f |
double l = 0.0;
|
|
|
ebcc4f |
foreach(ActivePoint point in points)
|
|
|
ebcc4f |
l = Math.Max(l, point.position.len());
|
|
|
ebcc4f |
return maxLen + l;
|
|
|
ebcc4f |
}
|
|
|
ebcc4f |
|
|
|
ebcc4f |
public virtual void onMovePoint(ActivePoint point, Point position) {
|
|
|
ebcc4f |
point.position = position;
|
|
|
ebcc4f |
}
|
|
|
ebcc4f |
|
|
|
ebcc4f |
public virtual Point[] getGridPoints(Point target, bool truncate) { return new Point[0]; }
|
|
|
ebcc4f |
|
|
|
ebcc4f |
public Point[] getGridPoints(Point target) { return getGridPoints(target, false); }
|
|
|
ebcc4f |
|
|
|
ebcc4f |
public virtual void draw(Graphics g) { }
|
|
|
ebcc4f |
|
|
|
ebcc4f |
public virtual void drawGuidlines(Graphics g, Point target, bool truncate) { }
|
|
|
ebcc4f |
|
|
|
ebcc4f |
public void drawGuidlines(Graphics g, Point target) {
|
|
|
ebcc4f |
drawGuidlines(g, target, false);
|
|
|
ebcc4f |
}
|
|
|
b1ff53 |
|
|
|
b1ff53 |
public virtual double calcTrackWeight(Track track) {
|
|
|
b1ff53 |
return double.PositiveInfinity;
|
|
|
b1ff53 |
}
|
|
|
b1ff53 |
|
|
|
b1ff53 |
public virtual Track modifyTrack(Track track) {
|
|
|
b1ff53 |
return new Track();
|
|
|
b1ff53 |
}
|
|
|
ebcc4f |
}
|
|
|
ebcc4f |
}
|