44
55namespace SimpleStateMachineNodeEditor . Helpers
66{
7-
87 public class MyPoint : ReactiveObject
98 {
10- /// <summary>
11- /// Точка с координатами X и Y
12- /// </summary>
139 [ Reactive ] public Point Value { get ; set ; }
1410
15- /// <summary>
16- /// Координата X
17- /// </summary>
1811 public double X
1912 {
2013 get { return Value . X ; }
2114 }
2215
23- /// <summary>
24- /// Координата Y
25- /// </summary>
2616 public double Y
2717 {
2818 get { return Value . Y ; }
@@ -46,9 +36,6 @@ public MyPoint(MyPoint point)
4636 this . Set ( point ) ;
4737 }
4838
49- /// <summary>
50- /// Точка находится в начале координат (0,0)
51- /// </summary>
5239 public bool IsClear
5340 {
5441 get
@@ -57,9 +44,6 @@ public bool IsClear
5744 }
5845 }
5946
60- /// <summary>
61- /// Занулить координаты точки
62- /// </summary>
6347 public void Clear ( )
6448 {
6549 Value = new Point ( ) ;
@@ -75,87 +59,47 @@ public void Mirror(bool onX = true, bool onY = true)
7559 Value = new Point ( onX ? - this . X : this . X , onY ? - this . Y : this . Y ) ;
7660 }
7761
78- /// <summary>
79- /// Сложение координат двух точек
80- /// </summary>
81- /// <param name="point">Вторая точка MyPoint</param>
82- /// <returns>MyPoint с результатом суммы</returns>
8362 public MyPoint Add ( MyPoint point )
8463 {
8564 Value = new Point ( point . X , point . Y ) ;
8665 return this ;
8766 }
8867
89- /// <summary>
90- /// Сложение координат двух точек
91- /// </summary>
92- /// <param name="point">Вторая точка MyPoint</param>
93- /// <returns>MyPoint с результатом суммы</returns>
9468 public MyPoint Add ( double x = 0 , double y = 0 )
9569 {
9670 Value = new Point ( this . X + x , this . Y + y ) ;
9771 return this ;
9872 }
9973
100-
101- /// <summary>
102- /// Установить координаты текущей точки
103- /// </summary>
104- /// <param name="x">Координата X</param>
105- /// <param name="y">Координата Y</param>
106- /// <returns>MyPoint с новыми координатами</returns>
10774 public MyPoint Set ( double x = 0 , double y = 0 )
10875 {
10976 Value = new Point ( x , y ) ;
11077 return this ;
11178 }
11279
113- /// <summary>
114- /// Установить координаты текущей точки
115- /// </summary>
116- /// <param name="point">Точка Point</param>
117- /// <returns>MyPoint с новыми координатами</returns>
11880 public MyPoint Set ( Point point )
11981 {
12082 this . Set ( point . X , point . Y ) ;
12183 return this ;
12284 }
12385
124- /// <summary>
125- /// Установить координаты текущей точки
126- /// </summary>
127- /// <param name="point">Точка MyPoint</param>
128- /// <returns>MyPoint с новыми координатами</returns>
12986 public MyPoint Set ( MyPoint point )
13087 {
13188 this . Set ( point . X , point . Y ) ;
13289 return this ;
13390 }
13491
135- /// <summary>
136- /// Конвертировать из MyPoint в Point
137- /// </summary>
138- /// <returns>Точка Point</returns>
13992 public Point ToPoint ( )
14093 {
14194 return MyPoint . ToPoint ( this ) ;
14295 }
14396
144- /// <summary>
145- /// Получить значения из Point
146- /// </summary>
147- /// <param name="point">Точка Point</param>
148- /// <returns>Текущая точка содежащая координаты Point</returns>
14997 public MyPoint FromPoint ( Point point )
15098 {
15199 Set ( point ) ;
152100 return this ;
153101 }
154102
155- /// <summary>
156- /// Возаращает копию текущего объекта
157- /// </summary>
158- /// <returns>Копия</returns>
159103 public MyPoint Copy ( )
160104 {
161105 return new MyPoint ( this ) ;
@@ -164,151 +108,76 @@ public MyPoint Copy()
164108 public override string ToString ( )
165109 {
166110 return string . Format ( "{0}, {1}" , this . Value . X . ToString ( System . Globalization . CultureInfo . InvariantCulture ) , this . Value . Y . ToString ( System . Globalization . CultureInfo . InvariantCulture ) ) ;
167- //return Value.ToString();
168111 }
169112
170113 #region Static Methods
171114
172- /// <summary>
173- /// Конвертировать из MyPoint в Point
174- /// </summary>
175- /// <param name="point">Точка MyPoint</param>
176- /// <returns>Точка Point</returns>
177115 public static Point ToPoint ( MyPoint point )
178116 {
179117 return ( point != null ) ? new Point ( point . X , point . Y ) : new Point ( ) ;
180118 }
181119
182- /// <summary>
183- /// Конвертировать из Point в MyPoint
184- /// </summary>
185- /// <param name="point">ТОчка Point</param>
186- /// <returns>Точка MyPoint</returns>
187120 public static MyPoint CreateFromPoint ( Point point )
188121 {
189122 return ( point != null ) ? new MyPoint ( point . X , point . Y ) : new MyPoint ( ) ;
190123 }
191124
192- /// <summary>
193- /// Сложение координат двух точек
194- /// </summary>
195- /// <param name="point1">Точка 1</param>
196- /// <param name="point2">Точка 2</param>
197- /// <returns>Новая координата с результатом сложения</returns>
198125 public static MyPoint operator + ( MyPoint point1 , MyPoint point2 )
199126 {
200127 return new MyPoint ( point1 . X + point2 . X , point1 . Y + point2 . Y ) ;
201128 }
202129
203- /// <summary>
204- /// Вычитание координат двух точек
205- /// </summary>
206- /// <param name="point1">Точка 1</param>
207- /// <param name="point2">Точка 2</param>
208- /// <returns>Точка содержащая разность двух точек</returns>
209130 public static MyPoint operator - ( MyPoint point1 , MyPoint point2 )
210131 {
211132 return new MyPoint ( point1 . X - point2 . X , point1 . Y - point2 . Y ) ;
212133 }
213134
214-
215-
216- /// <summary>
217- /// Прибавить число к обеим координатам точки
218- /// </summary>
219- /// <param name="point1">Точка, к которой прибавляем</param>
220- /// <param name="number">Число, которое прибавляем</param>
221- /// <returns>Новая точка</returns>
222135 public static MyPoint operator + ( MyPoint point1 , int number )
223136 {
224137 return new MyPoint ( point1 . X + number , point1 . Y + number ) ;
225138 }
226139
227- /// <summary>
228- /// Отнять число от обеих координат точки
229- /// </summary>
230- /// <param name="point1">Точка, из которой вычитаем</param>
231- /// <param name="number">Число, которое вычитаем</param>
232- /// <returns>Новая точка</returns>
233140 public static MyPoint operator - ( MyPoint point1 , int number )
234141 {
235142 return new MyPoint ( point1 . X - number , point1 . Y - number ) ;
236143 }
237144
238- /// <summary>
239- /// Разделить координаты точки на число
240- /// </summary>
241- /// <param name="point1">Точка, координаты которой делим</param>
242- /// <param name="number">Число, на которое делим</param>
243- /// <returns>Новая точка</returns>
244145 public static MyPoint operator / ( MyPoint point1 , int number )
245146 {
246147 return new MyPoint ( point1 . X / number , point1 . Y / number ) ;
247148 }
248149
249- /// <summary>
250- /// Умножить координаты точки на число
251- /// </summary>
252- /// <param name="point1">Точка, координаты которой умножаем</param>
253- /// <param name="number">Число, на которое умножаем</param>
254- /// <returns>Новая точка</returns>
255150 public static MyPoint operator * ( MyPoint point1 , int number )
256151 {
257152 return new MyPoint ( point1 . X * number , point1 . Y * number ) ;
258153 }
259154
260- /// <summary>
261- /// Прибавить число к обеим координатам точки
262- /// </summary>
263- /// <param name="point1">Точка, к которой прибавляем</param>
264- /// <param name="number">Число, которое прибавляем</param>
265- /// <returns>Новая точка</returns>
266155 public static MyPoint operator + ( MyPoint point1 , double number )
267156 {
268157 return new MyPoint ( point1 . X + number , point1 . Y + number ) ;
269158 }
270159
271- /// <summary>
272- /// Отнять число от обеих координат точки
273- /// </summary>
274- /// <param name="point1">Точка, из которой вычитаем</param>
275- /// <param name="number">Число, которое вычитаем</param>
276- /// <returns>Новая точка</returns>
277160 public static MyPoint operator - ( MyPoint point1 , double number )
278161 {
279162 return new MyPoint ( point1 . X - number , point1 . Y - number ) ;
280163 }
281164
282- /// <summary>
283- /// Разделить координаты точки на число
284- /// </summary>
285- /// <param name="point1">Точка, координаты которой делим</param>
286- /// <param name="number">Число, на которое делим</param>
287- /// <returns>Новая точка</returns>
288165 public static MyPoint operator / ( MyPoint point1 , double number )
289166 {
290167 return new MyPoint ( point1 . X / number , point1 . Y / number ) ;
291168 }
292169
293- /// <summary>
294- /// Умножить координаты точки на число
295- /// </summary>
296- /// <param name="point1">Точка, координаты которой умножаем</param>
297- /// <param name="number">Число, на которое умножаем</param>
298- /// <returns>Новая точка</returns>
299170 public static MyPoint operator * ( MyPoint point1 , double number )
300171 {
301172 return new MyPoint ( point1 . X * number , point1 . Y * number ) ;
302173 }
303174
304-
305175 public static MyPoint Parse ( string str )
306176 {
307177 string [ ] parts = str . Split ( "," ) ;
308178 return new MyPoint ( double . Parse ( parts [ 0 ] , System . Globalization . CultureInfo . InvariantCulture ) , double . Parse ( parts [ 1 ] , System . Globalization . CultureInfo . InvariantCulture ) ) ;
309179 }
310180
311-
312181 #endregion Static Methods
313182
314183 }
0 commit comments