2 using System.Collections.Generic;
\r
7 public partial struct Point2
\r
11 public Point2(float x, float y)
\r
17 public float X { get { return x; } set { x= value; } }
\r
18 public float Y { get { return y; } set { y= value; } }
\r
20 public override string ToString()
\r
25 public static Point2 Parse(string[] t, int begin)
\r
28 float.Parse(t[begin+0]),
\r
29 float.Parse(t[begin+1]));
\r
33 public partial struct Point3
\r
35 public float x, y, z;
\r
37 public Point3(float x, float y, float z)
\r
44 public float X { get { return x; } set { x= value; } }
\r
45 public float Y { get { return y; } set { y= value; } }
\r
46 public float Z { get { return z; } set { z= value; } }
\r
48 public static Point3 operator+(Point3 a, Point3 b)
\r
50 return new Point3(a.x+b.x, a.y+b.y, a.z+b.z);
\r
53 public static Point3 operator-(Point3 a, Point3 b)
\r
55 return new Point3(a.x-b.x, a.y-b.y, a.z-b.z);
\r
58 public override string ToString()
\r
60 return X+","+Y+","+Z;
\r
63 public static Point3 Cross(Point3 p, Point3 q)
\r
71 public static Point3 Normalize(Point3 p)
\r
73 float d = p.x*p.x + p.y*p.y + p.z*p.z;
\r
78 d = (float)(1 / (Math.Sqrt(d)));
\r
79 return new Point3(p.x*d, p.y*d, p.z*d);
\r
82 public static Point3 Parse(string[] t, int begin)
\r
85 float.Parse(t[begin+0]),
\r
86 float.Parse(t[begin+1]),
\r
87 float.Parse(t[begin+2]));
\r
91 public partial struct Point4
\r
93 public float x, y, z, w;
\r
95 public Point4(float x, float y, float z, float w)
\r
103 public float X { get { return x; } set { x= value; } }
\r
104 public float Y { get { return y; } set { y= value; } }
\r
105 public float Z { get { return z; } set { z= value; } }
\r
106 public float W { get { return w; } set { w= value; } }
\r
108 public override string ToString()
\r
110 return X+","+Y+","+Z+","+W;
\r
114 public partial struct Color3
\r
116 public float r, g, b;
\r
118 public Color3(float r, float g, float b)
\r
125 public float R { get { return r; } set { r= value; } }
\r
126 public float G { get { return g; } set { g= value; } }
\r
127 public float B { get { return b; } set { b= value; } }
\r
129 public override string ToString()
\r
131 return R+","+G+","+B;
\r
134 public static Color3 Parse(string[] t, int begin)
\r
137 float.Parse(t[begin+0]),
\r
138 float.Parse(t[begin+1]),
\r
139 float.Parse(t[begin+2]));
\r