+++ /dev/null
-using System;\r
-using System.Windows;\r
-\r
-\r
-namespace Psychlops\r
-{\r
-\r
- public partial struct Point\r
- {\r
- public double x, y, z;\r
- public Point(double dx, double dy, double dz)\r
- {\r
- x = dx;\r
- y = dy;\r
- z = dz;\r
- }\r
- public Point(double dx, double dy)\r
- {\r
- x = dx;\r
- y = dy;\r
- z = 0.0;\r
- }\r
- public Point set(double dx, double dy, double dz)\r
- {\r
- x = dx;\r
- y = dy;\r
- z = dz;\r
- return this;\r
- }\r
- public Point set(double dx, double dy)\r
- {\r
- x = dx;\r
- y = dy;\r
- z = 0.0;\r
- return this;\r
- }\r
-\r
- public static Point operator +(Point lhs, Point rhs)\r
- {\r
- return new Point(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z);\r
- }\r
- public static Point operator -(Point lhs, Point rhs)\r
- {\r
- return new Point(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z);\r
- }\r
- public override string ToString()\r
- {\r
- return "X:"+ x.ToString() + " Y:"+ y.ToString() + " Z:"+ z.ToString();\r
- }\r
- }\r
-\r
-\r
- public partial struct Color\r
- {\r
- public double r, g, b, a;\r
- public Color(double lum)\r
- {\r
- r = g = b = lum;\r
- a = 1.0;\r
- }\r
- public Color(double red, double green, double blue)\r
- {\r
- r = red;\r
- g = green;\r
- b = blue;\r
- a = 1.0;\r
- }\r
- public Color(double red, double green, double blue, double alpha)\r
- {\r
- r = red;\r
- g = green;\r
- b = blue;\r
- a = alpha;\r
- }\r
- public void set(double lum)\r
- {\r
- r = g = b = lum;\r
- a = 1.0;\r
- }\r
- public void set(double red, double green, double blue)\r
- {\r
- r = red;\r
- g = green;\r
- b = blue;\r
- a = 1.0;\r
- }\r
- public void set(double red, double green, double blue, double alpha)\r
- {\r
- r = red;\r
- g = green;\r
- b = blue;\r
- a = alpha;\r
- }\r
-\r
- public override string ToString()\r
- {\r
- return "R:" + r.ToString() + " G:" + g.ToString() + " B:" + b.ToString() + " A:" + a.ToString();\r
- }\r
-\r
- public static readonly Color\r
- black = new Color(0, 0, 0, 1),\r
- red = new Color(1, 0, 0, 1),\r
- green = new Color(0, 1, 0, 1),\r
- blue = new Color(0, 0, 1, 1),\r
- yellow = new Color(1, 1, 0, 1),\r
- magenta = new Color(1, 0, 1, 1),\r
- cyan = new Color(0, 1, 1, 1),\r
- white = new Color(1, 1, 1, 1),\r
- gray = new Color(.5, .5, .5, 1),\r
- null_color = new Color(0, 0, 0, 0);\r
-\r
- }\r
-\r
-\r
- public interface Drawable\r
- {\r
- Point getCenter();\r
- void clear(Color col);\r
- void pix(int x, int y, Color col);\r
- void line(Line drawee);\r
- void rect(Rectangle drawee);\r
- void ellipse(Ellipse drawee);\r
- void polygon(Polygon drawee);\r
- void letters(Letters drawee);\r
- void image(Image drawee);\r
- void msg(string s, double x, double y, Color c);\r
- }\r
-\r
-\r
-\r
- public interface Figure\r
- {\r
- Point datum { get; set; }\r
- Figure shift(Point p);\r
- Figure centering(Point p);\r
- void draw();\r
- }\r
- public static class FigureExtention\r
- {\r
- public static Point getDatum(this Figure target)\r
- {\r
- return target.datum;\r
- }\r
- public static Point setDatum(this Figure target, Point p)\r
- {\r
- target.datum = p;\r
- return target.datum;\r
- }\r
- public static Figure shift(this Figure target, double x, double y)\r
- {\r
- return target.shift(new Point(x, y));\r
- }\r
- public static Figure centering(this Figure target)\r
- {\r
- return target.centering(Main.drawable.getCenter());\r
- }\r
- public static Figure centering(this Figure target, double x, double y)\r
- {\r
- return target.centering(new Point(x, y));\r
- }\r
- }\r
-\r
- namespace Internal\r
- {\r
- public interface PrimitiveFigure : Figure\r
- {\r
- UIElement toNative();\r
- }\r
- }\r
-}
\ No newline at end of file