[NUI] TCSACR-226 code change (#1032)
[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
28     internal class Vector3TypeConverter : TypeConverter
29     {
30         public override object ConvertFromInvariantString(string value)
31         {
32             if (value != null)
33             {
34                 string[] parts = value.Split(',');
35                 if (parts.Length == 3 )
36                 {
37                     return new Vector3(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
38                                        Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture),
39                                        Single.Parse(parts[2].Trim(), CultureInfo.InvariantCulture));
40                 }
41             }
42
43             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector3)}");
44         }
45     }
46
47     internal class Vector4TypeConverter : TypeConverter
48     {
49         public override object ConvertFromInvariantString(string value)
50         {
51             if (value != null)
52             {
53                 string[] parts = value.Split(',');
54                 if (parts.Length == 4 )
55                 {
56                     return new Vector4(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
57                                        Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture),
58                                        Single.Parse(parts[2].Trim(), CultureInfo.InvariantCulture),
59                                        Single.Parse(parts[3].Trim(), CultureInfo.InvariantCulture));
60                 }
61             }
62
63             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Vector4)}");
64         }
65     }
66
67     internal class RelativeVector2TypeConverter : TypeConverter
68     {
69         public override object ConvertFromInvariantString(string value)
70         {
71             if (value != null)
72             {
73                 string[] parts = value.Split(',');
74                 if (parts.Length == 2 )
75                 {
76                     return new RelativeVector2(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
77                                                Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture));
78                 }
79             }
80
81             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(RelativeVector2)}");
82         }
83     }
84
85     internal class RelativeVector3TypeConverter : TypeConverter
86     {
87         public override object ConvertFromInvariantString(string value)
88         {
89             if (value != null)
90             {
91                 string[] parts = value.Split(',');
92                 if (parts.Length == 3 )
93                 {
94                     return new RelativeVector3(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
95                                                Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture),
96                                                Single.Parse(parts[2].Trim(), CultureInfo.InvariantCulture));
97                 }
98             }
99
100             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(RelativeVector3)}");
101         }
102     }
103
104     internal class RelativeVector4TypeConverter : TypeConverter
105     {
106         public override object ConvertFromInvariantString(string value)
107         {
108             if (value != null)
109             {
110                 string[] parts = value.Split(',');
111                 if (parts.Length == 4 )
112                 {
113                     return new RelativeVector4(Single.Parse(parts[0].Trim(), CultureInfo.InvariantCulture),
114                                                Single.Parse(parts[1].Trim(), CultureInfo.InvariantCulture),
115                                                Single.Parse(parts[2].Trim(), CultureInfo.InvariantCulture),
116                                                Single.Parse(parts[3].Trim(), CultureInfo.InvariantCulture));
117                 }
118             }
119
120             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(RelativeVector4)}");
121         }
122     }
123 }