2 using System.Windows;
\r
3 using System.Windows.Controls;
\r
4 using System.Windows.Documents;
\r
5 using System.Windows.Input;
\r
6 using System.Windows.Media;
\r
7 using System.Windows.Media.Animation;
\r
8 using System.Windows.Media.Imaging;
\r
9 using System.Windows.Shapes;
\r
12 namespace Psychlops{
\r
15 public partial class Image : Internal.PrimitiveFigure
\r
17 public WriteableBitmap buffer;
\r
18 public Point datum { get; set; }
\r
19 public Point getDatum() { return datum; }
\r
20 public Point setDatum(Point p) { datum = p; return datum; }
\r
21 public Rectangle self_rect;
\r
22 protected bool AsyncBool;
\r
24 public Image(int wid, int hei)
\r
27 initialize__(wid, hei);
\r
28 self_rect = new Rectangle(wid, hei);
\r
29 while (!AsyncBool) { }
\r
32 public Figure shift(Point p)
\r
37 public Figure centering(Point p)
\r
39 datum = new Point( p.x - width / 2.0, p.y - height / 2.0);
\r
42 public Image move_to(Point p) { datum = p; return this; }
\r
43 public Image move_to(double x, double y, double z) { datum = new Point(x, y, z); return this; }
\r
44 public Image locate(Point p) { datum = p; return this; }
\r
45 public Image locate(double x, double y, double z) { datum = new Point(x, y, z); return this; }
\r
47 public void pix(int x, int y, Color col)
\r
49 buffer.SetPixel(x, y, col);
\r
53 public void field(System.Func<int, int, System.Windows.Media.Color> func)
\r
56 //buffer.ForEach(func);
\r
58 public void field(System.Func<int, int, System.Windows.Media.Color, System.Windows.Media.Color> func)
\r
61 //buffer.ForEach(func);
\r
63 public void each(System.Func<int, int, System.Windows.Media.Color> func)
\r
66 //buffer.ForEach(func);
\r
68 public void each(System.Func<int, int, System.Windows.Media.Color, System.Windows.Media.Color> func)
\r
71 //buffer.ForEach(func);
\r
80 Main.drawable.image(this);
\r
84 public double width { get { return self_rect.width; } }
\r
85 public double height { get { return self_rect.height; } }
\r
86 public Point center { get { return new Point(width/2.0, height/2.0); } }
\r
87 public double getWidth() { return width; }
\r
88 public double getHeight() { return height; }
\r
89 public Point getCenter() { return center; }
\r
90 public double getHcenter() { return width / 2.0; }
\r
91 public double getVcenter() { return height / 2.0; }
\r