OSDN Git Service

many
[psychlops/silverlight.git] / dev3 / psychlops / core / graphic / image.cs
1 using System;\r
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
10 \r
11 \r
12 namespace Psychlops{\r
13 \r
14 \r
15         public partial class Image : Internal.PrimitiveFigure\r
16         {\r
17                 public WriteableBitmap buffer;\r
18                 public Point datum;\r
19                 public Rectangle self_rect;\r
20 \r
21                 public Image(int wid, int hei)\r
22                 {\r
23                         initialize__(wid, hei);\r
24                         self_rect = new Rectangle(wid, hei);\r
25                 }\r
26 \r
27                 /*public Image shift(double x, double y)\r
28                 {\r
29                         datum.x += x;\r
30                         datum.y += y;\r
31                         return this;\r
32                 }*/\r
33                 public Figure shift(Point p)\r
34                 {\r
35                         datum += p;\r
36                         return this;\r
37                 }\r
38                 public Figure centering(Point p)\r
39                 {\r
40                         datum.x = p.x - width / 2.0;\r
41                         datum.y = p.y - height / 2.0;\r
42                         return this;\r
43                 }\r
44 \r
45                 public void pix(int x, int y, Color col)\r
46                 {\r
47                         buffer.SetPixel(x, y, col);\r
48                 }\r
49 \r
50 \r
51                 public void field(System.Func<int, int, System.Windows.Media.Color> func)\r
52                 {\r
53                         field__(func);\r
54                         //buffer.ForEach(func);\r
55                 }\r
56                 public void field(System.Func<int, int, System.Windows.Media.Color, System.Windows.Media.Color> func)\r
57                 {\r
58                         field__(func);\r
59                         //buffer.ForEach(func);\r
60                 }\r
61 \r
62                 public void draw()\r
63                 {\r
64                         Main.drawable.image(this);\r
65                 }\r
66 \r
67                 public double width { get { return self_rect.width; } }\r
68                 public double height { get { return self_rect.height; } }\r
69 \r
70         }\r
71 \r
72 \r
73 }