2 using System.Windows;
\r
8 public partial struct Point
\r
10 public double x, y, z;
\r
11 public Point(double dx, double dy, double dz)
\r
17 public Point(double dx, double dy)
\r
23 public Point set(double dx, double dy, double dz)
\r
30 public Point set(double dx, double dy)
\r
38 public static Point operator +(Point lhs, Point rhs)
\r
40 return new Point(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z);
\r
42 public static Point operator -(Point lhs, Point rhs)
\r
44 return new Point(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z);
\r
46 public override string ToString()
\r
48 return "X:"+ x.ToString() + " Y:"+ y.ToString() + " Z:"+ z.ToString();
\r
53 public partial struct Color
\r
55 public double r, g, b, a;
\r
56 public Color(double lum)
\r
61 public Color(double red, double green, double blue)
\r
68 public Color(double red, double green, double blue, double alpha)
\r
75 public void set(double lum)
\r
80 public void set(double red, double green, double blue)
\r
87 public void set(double red, double green, double blue, double alpha)
\r
95 public override string ToString()
\r
97 return "R:" + r.ToString() + " G:" + g.ToString() + " B:" + b.ToString() + " A:" + a.ToString();
\r
100 public static readonly Color
\r
101 black = new Color(0, 0, 0, 1),
\r
102 red = new Color(1, 0, 0, 1),
\r
103 green = new Color(0, 1, 0, 1),
\r
104 blue = new Color(0, 0, 1, 1),
\r
105 yellow = new Color(1, 1, 0, 1),
\r
106 magenta = new Color(1, 0, 1, 1),
\r
107 cyan = new Color(0, 1, 1, 1),
\r
108 white = new Color(1, 1, 1, 1),
\r
109 gray = new Color(.5, .5, .5, 1),
\r
110 null_color = new Color(0, 0, 0, 0);
\r
115 public interface Drawable
\r
118 void clear(Color col);
\r
119 void pix(int x, int y, Color col);
\r
120 void line(Line drawee);
\r
121 void rect(Rectangle drawee);
\r
122 void ellipse(Ellipse drawee);
\r
123 void polygon(Polygon drawee);
\r
124 void letters(Letters drawee);
\r
125 void image(Image drawee);
\r
126 void msg(string s, double x, double y, Color c);
\r
131 public interface Figure
\r
133 Point datum { get; set; }
\r
134 Figure shift(Point p);
\r
135 Figure centering(Point p);
\r
138 public static class FigureExtention
\r
140 public static Point getDatum(this Figure target)
\r
142 return target.datum;
\r
144 public static Point setDatum(this Figure target, Point p)
\r
147 return target.datum;
\r
149 public static Figure shift(this Figure target, double x, double y)
\r
151 return target.shift(new Point(x, y));
\r
153 public static Figure centering(this Figure target)
\r
155 return target.centering(Main.drawable.getCenter());
\r
157 public static Figure centering(this Figure target, double x, double y)
\r
159 return target.centering(new Point(x, y));
\r
165 public interface PrimitiveFigure : Figure
\r
167 UIElement toNative();
\r