public interface Shape : Figure\r
{\r
void draw(Color c);\r
+ Color fill { get; set; }\r
+ Stroke stroke { get; set; }\r
}\r
public static class ShapeExtention\r
{\r
*/\r
}\r
\r
- public struct Stroke\r
+ public partial struct Stroke\r
{\r
-\r
+ public double thick;\r
+ public Color color;\r
+ public void set(Color c, double t)\r
+ {\r
+ color = c;\r
+ thick = t;\r
+ }\r
}\r
\r
- public class Line : Shape\r
+ public partial class Line : Shape\r
{\r
public Point begin, end;\r
\r
}\r
public void draw()\r
{\r
- Main.drawable.line(this, Color.white);\r
+ Main.drawable.line(this);\r
}\r
\r
public double left { get { return begin.x < end.x ? begin.x : end.x; } }\r
public double width { get { return Math.abs(begin.x - end.x); } }\r
public double height { get { return Math.abs(begin.y - end.y); } }\r
\r
- public static implicit operator System.Windows.Shapes.Line(Line d)\r
- {\r
- var tmp = new System.Windows.Shapes.Line();\r
- tmp.X1 = d.begin.x;\r
- tmp.Y1 = d.begin.y;\r
- tmp.X2 = d.end.x;\r
- tmp.Y2 = d.end.y;\r
- return tmp;\r
- }\r
+ public Color fill { get; set; }\r
+ public Stroke stroke { get; set; }\r
}\r
\r
\r
- public class Rectangle : Shape\r
+ public partial class Rectangle : Shape\r
{\r
public Point v1, v2;\r
\r
}\r
public void draw()\r
{\r
- Main.drawable.rect(this, Color.white);\r
+ Main.drawable.rect(this);\r
}\r
\r
public double left { get { return v1.x; } }\r
public double height { get { return Math.abs(v1.y - v2.y); } }\r
\r
\r
- public static implicit operator System.Windows.Rect(Rectangle d)\r
- {\r
- return new System.Windows.Rect(d.v1.x, d.v1.y, d.v2.x, d.v2.y);\r
- }\r
+ public Color fill { get; set; }\r
+ public Stroke stroke { get; set; }\r
\r
}\r
\r
\r
- public class Ellipse : Shape\r
+ public partial class Ellipse : Shape\r
{\r
public Point datum;\r
public double xdiameter, ydiameter;\r
}\r
public void draw()\r
{\r
- Main.drawable.ellipse(this, Color.white);\r
+ Main.drawable.ellipse(this);\r
}\r
\r
public double left { get { return datum.x - xdiameter/2.0; } }\r
public double bottom { get { return datum.y + ydiameter / 2.0; } }\r
public double width { get { return Math.abs(xdiameter); } }\r
public double height { get { return Math.abs(ydiameter); } }\r
+\r
+ public Color fill { get; set; }\r
+ public Stroke stroke { get; set; }\r
}\r
\r
\r
- public class Polygon : Shape\r
+ public partial class Polygon : Shape\r
{\r
public Point datum;\r
public System.Collections.Generic.List<Point> vertices;\r
}\r
public void draw()\r
{\r
- Main.drawable.polygon(this, Color.white);\r
+ Main.drawable.polygon(this);\r
}\r
+\r
+ public Color fill { get; set; }\r
+ public Stroke stroke { get; set; }\r
}\r
\r
}
\ No newline at end of file