b5810ad6739ca6cdb0643df1a686df67c22d1801
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / internal / XamlBinding / VectorTypeConverter.cs
1 using System;
2 using System.Linq;
3 using System.Reflection;
4 using System.Globalization;
5
6 using Tizen.NUI;
7
8 namespace Tizen.NUI.Binding
9 {
10     internal class Vector2TypeConverter : TypeConverter
11     {
12         public override object ConvertFromInvariantString(string value)
13         {
14             if (value != null)
15             {
16                 string[] parts = value.Split(',');
17                 if (parts.Length == 2)
18                 {
19                     return new Vector2(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
20                                        Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture));
21                 }
22             }
23
24             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector2)}");
25         }
26
27         public override string ConvertToString(object value)
28         {
29             Vector2 vector = (Vector2)value;
30             return vector.X.ToString() + " " + vector.Y.ToString();
31         }
32     }
33
34     internal class Vector3TypeConverter : TypeConverter
35     {
36         public override object ConvertFromInvariantString(string value)
37         {
38             if (value != null)
39             {
40                 string[] parts = value.Split(',');
41                 if (parts.Length == 3)
42                 {
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));
46                 }
47             }
48
49             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector3)}");
50         }
51
52         public override string ConvertToString(object value)
53         {
54             Vector3 vector = (Vector3)value;
55             return vector.X.ToString() + " " + vector.Y.ToString() + " " + vector.Z.ToString();
56         }
57     }
58
59     internal class Vector4TypeConverter : TypeConverter
60     {
61         public override object ConvertFromInvariantString(string value)
62         {
63             if (value != null)
64             {
65                 string[] parts = value.Split(',');
66                 if (parts.Length == 4)
67                 {
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));
72                 }
73             }
74
75             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector4)}");
76         }
77
78         public override string ConvertToString(object value)
79         {
80             Vector4 vector = (Vector4)value;
81             return vector.X.ToString() + " " + vector.Y.ToString() + " " + vector.Z.ToString() + " " + vector.W.ToString();
82         }
83     }
84
85     internal class RelativeVector2TypeConverter : TypeConverter
86     {
87         public override object ConvertFromInvariantString(string value)
88         {
89             if (value != null)
90             {
91                 string[] parts = value.Split(',');
92                 if (parts.Length == 2)
93                 {
94                     return new RelativeVector2(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
95                                                Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture));
96                 }
97             }
98
99             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(RelativeVector2)}");
100         }
101
102         public override string ConvertToString(object value)
103         {
104             RelativeVector2 vector = (RelativeVector2)value;
105             return vector.X.ToString() + " " + vector.Y.ToString();
106         }
107     }
108
109     internal class RelativeVector3TypeConverter : TypeConverter
110     {
111         public override object ConvertFromInvariantString(string value)
112         {
113             if (value != null)
114             {
115                 string[] parts = value.Split(',');
116                 if (parts.Length == 3)
117                 {
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));
121                 }
122             }
123
124             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(RelativeVector3)}");
125         }
126
127         public override string ConvertToString(object value)
128         {
129             RelativeVector3 vector = (RelativeVector3)value;
130             return vector.X.ToString() + " " + vector.Y.ToString() + " " + vector.Z.ToString();
131         }
132     }
133
134     internal class RelativeVector4TypeConverter : TypeConverter
135     {
136         public override object ConvertFromInvariantString(string value)
137         {
138             if (value != null)
139             {
140                 string[] parts = value.Split(',');
141                 if (parts.Length == 4)
142                 {
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));
147                 }
148             }
149
150             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(RelativeVector4)}");
151         }
152
153         public override string ConvertToString(object value)
154         {
155             RelativeVector4 vector = (RelativeVector4)value;
156             return vector.X.ToString() + " " + vector.Y.ToString() + " " + vector.Z.ToString() + " " + vector.W.ToString(); ;
157         }
158     }
159 }