3 using System.Reflection;
4 using System.Globalization;
8 namespace Tizen.NUI.Binding
10 internal class Vector2TypeConverter : TypeConverter
12 public override object ConvertFromInvariantString(string value)
16 string[] parts = value.Split(',');
17 if (parts.Length == 2)
19 return new Vector2(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
20 Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture));
24 throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector2)}");
27 public override string ConvertToString(object value)
29 Vector2 vector = (Vector2)value;
30 return vector.X.ToString() + " " + vector.Y.ToString();
34 internal class Vector3TypeConverter : TypeConverter
36 public override object ConvertFromInvariantString(string value)
40 string[] parts = value.Split(',');
41 if (parts.Length == 3)
43 return new Vector3(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
44 Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture),
45 Single.Parse(parts[2].Trim(), CultureInfo.InvariantCulture));
49 throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector3)}");
52 public override string ConvertToString(object value)
54 Vector3 vector = (Vector3)value;
55 return vector.X.ToString() + " " + vector.Y.ToString() + " " + vector.Z.ToString();
59 internal class Vector4TypeConverter : TypeConverter
61 public override object ConvertFromInvariantString(string value)
65 string[] parts = value.Split(',');
66 if (parts.Length == 4)
68 return new Vector4(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
69 Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture),
70 Single.Parse(parts[2].Trim(), CultureInfo.InvariantCulture),
71 Single.Parse(parts[3].Trim(), CultureInfo.InvariantCulture));
75 throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector4)}");
78 public override string ConvertToString(object value)
80 Vector4 vector = (Vector4)value;
81 return vector.X.ToString() + " " + vector.Y.ToString() + " " + vector.Z.ToString() + " " + vector.W.ToString();
85 internal class RelativeVector2TypeConverter : TypeConverter
87 public override object ConvertFromInvariantString(string value)
91 string[] parts = value.Split(',');
92 if (parts.Length == 2)
94 return new RelativeVector2(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
95 Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture));
99 throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(RelativeVector2)}");
102 public override string ConvertToString(object value)
104 RelativeVector2 vector = (RelativeVector2)value;
105 return vector.X.ToString() + " " + vector.Y.ToString();
109 internal class RelativeVector3TypeConverter : TypeConverter
111 public override object ConvertFromInvariantString(string value)
115 string[] parts = value.Split(',');
116 if (parts.Length == 3)
118 return new RelativeVector3(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
119 Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture),
120 Single.Parse(parts[2].Trim(), CultureInfo.InvariantCulture));
124 throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(RelativeVector3)}");
127 public override string ConvertToString(object value)
129 RelativeVector3 vector = (RelativeVector3)value;
130 return vector.X.ToString() + " " + vector.Y.ToString() + " " + vector.Z.ToString();
134 internal class RelativeVector4TypeConverter : TypeConverter
136 public override object ConvertFromInvariantString(string value)
140 string[] parts = value.Split(',');
141 if (parts.Length == 4)
143 return new RelativeVector4(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
144 Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture),
145 Single.Parse(parts[2].Trim(), CultureInfo.InvariantCulture),
146 Single.Parse(parts[3].Trim(), CultureInfo.InvariantCulture));
150 throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(RelativeVector4)}");
153 public override string ConvertToString(object value)
155 RelativeVector4 vector = (RelativeVector4)value;
156 return vector.X.ToString() + " " + vector.Y.ToString() + " " + vector.Z.ToString() + " " + vector.W.ToString(); ;