24 public Vector2 ToVector2 =>
new Vector2(X, Y);
27 public static float MinZ = 1f;
29 public CUI3DOffset Shift(Vector2 shift) => Shift(shift.X, shift.Y);
39 public CUI3DOffset Zoom(Vector2 staticPoint,
float dZ) => Zoom(staticPoint.X, staticPoint.Y, dZ);
40 public CUI3DOffset Zoom(
float sx,
float sy,
float dZ)
42 float newZ = Math.Max(MinZ, Z + dZ);
43 Vector2 s1 =
new Vector2(sx * Z - X, sy * Z - Y);
44 Vector2 s2 =
new Vector2(sx * newZ - X, sy * newZ - Y);
50 public Vector2 ToPlaneCoords(Vector2 v)
52 return new Vector2(v.X * Z - X, v.Y * Z - Y);
54 public Vector2 TransformPoint(Vector2 point)
56 return new Vector2((point.X + X) / Z, (point.Y + Y) / Z);
59 public Vector2 TransformSize(Vector2 size)
61 return new Vector2(size.X / Z, size.Y / Z);
89 public override string ToString() => $
"[{X},{Y},{Z}]";
93 string content = s.Substring(
95 s.IndexOf(
']') - s.IndexOf(
'[') - 1
98 var components = content.Split(
',').Select(a => a.Trim());
100 string sx = components.ElementAtOrDefault(0);
101 string sy = components.ElementAtOrDefault(1);
102 string sz = components.ElementAtOrDefault(2);
108 float.TryParse(sx, out x);
109 float.TryParse(sy, out y);
110 float.TryParse(sz, out z);