Skip to content

Commit e51aa7c

Browse files
committed
some review
1 parent d44b74f commit e51aa7c

19 files changed

Lines changed: 111 additions & 336 deletions

SimpleStateMachineNodeEditor/Helpers/Commands/Command.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,10 @@
44

55
namespace SimpleStateMachineNodeEditor.Helpers.Commands
66
{
7-
/// <summary>
8-
/// Команда с Undo/Redo
9-
/// </summary>
10-
/// <typeparam name="TParameter">Тип параметра, передаваемого для выполнения</typeparam>
11-
/// <typeparam name="TResult">Тип результата выполнения</typeparam>
7+
128
public class Command<TParameter, TResult> : CommandUndoRedo, ICommand, ICloneable where TParameter : class where TResult : class
139
{
1410

15-
/// <summary>
16-
/// Функция, которая будет вызвана при выполнении команды
17-
/// </summary>
1811
private readonly Func<TParameter, TResult, TResult> _execute;
1912

2013
/// <summary>

SimpleStateMachineNodeEditor/Helpers/MyPoint.cs

Lines changed: 0 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,15 @@
44

55
namespace 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
}

SimpleStateMachineNodeEditor/Helpers/MyUtils.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,12 @@ public static void FindParents<TParent1, TParent2>(DependencyObject currentObjec
5656

5757
public static bool CheckIntersectTwoRectangles(MyPoint a1, MyPoint a2, MyPoint b1, MyPoint b2)
5858
{
59-
bool par1 = a1.X > b2.X; //второй перед первым
60-
bool par2 = b1.X > a2.X; //первый перед вторым
61-
bool par3 = a1.Y > b2.Y; //первый под вторым
62-
bool par4 = b1.Y > a2.Y; //второй под первым
63-
//если хоть одно условие выполняется - прямоугольники не пересекаются
59+
bool par1 = a1.X > b2.X; //second before first
60+
bool par2 = b1.X > a2.X; //first before second
61+
bool par3 = a1.Y > b2.Y; //first over second
62+
bool par4 = b1.Y > a2.Y; //second over first
63+
64+
//if one true - it's not intersect
6465
return !(par1 || par2 || par3 || par4);
6566
}
6667

SimpleStateMachineNodeEditor/View/ViewConnect.xaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
mc:Ignorable="d"
88
d:DesignHeight="450" d:DesignWidth="800" IsHitTestVisible="False">
99
<Grid>
10-
<Path x:Name="Path" StrokeDashCap="Round" StrokeLineJoin="Round" Stroke="{StaticResource ColorConnector}" StrokeEndLineCap="Round" StrokeStartLineCap="Round">
10+
<Path x:Name="PathElement" StrokeDashCap="Round" StrokeLineJoin="Round" Stroke="{StaticResource ColorConnector}" StrokeEndLineCap="Round" StrokeStartLineCap="Round">
1111
<Path.Data>
12-
<PathGeometry x:Name="PathGeometry">
13-
<PathFigure x:Name="PathFigure" IsClosed="False">
14-
<BezierSegment x:Name="BezierSegment"/>
12+
<PathGeometry x:Name="PathGeometryElement">
13+
<PathFigure x:Name="PathFigureElement" IsClosed="False">
14+
<BezierSegment x:Name="BezierSegmentElement"/>
1515
</PathFigure>
1616
</PathGeometry>
1717
</Path.Data>

SimpleStateMachineNodeEditor/View/ViewConnect.xaml.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,23 +51,23 @@ private void SetupBinding()
5151
{
5252

5353
// Цвет линии
54-
this.OneWayBind(this.ViewModel, x => x.Stroke, x => x.Path.Stroke).DisposeWith(disposable);
54+
this.OneWayBind(this.ViewModel, x => x.Stroke, x => x.PathElement.Stroke).DisposeWith(disposable);
5555

5656
// Точка, из которой выходит линия
57-
this.OneWayBind(this.ViewModel, x => x.StartPoint.Value, x => x.PathFigure.StartPoint).DisposeWith(disposable);
57+
this.OneWayBind(this.ViewModel, x => x.StartPoint.Value, x => x.PathFigureElement.StartPoint).DisposeWith(disposable);
5858

5959
// Первая промежуточная точка линии
60-
this.OneWayBind(this.ViewModel, x => x.Point1.Value, x => x.BezierSegment.Point1).DisposeWith(disposable);
60+
this.OneWayBind(this.ViewModel, x => x.Point1.Value, x => x.BezierSegmentElement.Point1).DisposeWith(disposable);
6161

6262
// Вторая промежуточная точка линии
63-
this.OneWayBind(this.ViewModel, x => x.Point2.Value, x => x.BezierSegment.Point2).DisposeWith(disposable);
63+
this.OneWayBind(this.ViewModel, x => x.Point2.Value, x => x.BezierSegmentElement.Point2).DisposeWith(disposable);
6464

6565
// Точка, в которую приходит линия
66-
this.OneWayBind(this.ViewModel, x => x.EndPoint.Value, x => x.BezierSegment.Point3).DisposeWith(disposable);
66+
this.OneWayBind(this.ViewModel, x => x.EndPoint.Value, x => x.BezierSegmentElement.Point3).DisposeWith(disposable);
6767

68-
this.OneWayBind(this.ViewModel, x => x.StrokeDashArray, x => x.Path.StrokeDashArray).DisposeWith(disposable);
68+
this.OneWayBind(this.ViewModel, x => x.StrokeDashArray, x => x.PathElement.StrokeDashArray).DisposeWith(disposable);
6969

70-
this.OneWayBind(this.ViewModel, x => x.StrokeThickness, x => x.Path.StrokeThickness).DisposeWith(disposable);
70+
this.OneWayBind(this.ViewModel, x => x.StrokeThickness, x => x.PathElement.StrokeThickness).DisposeWith(disposable);
7171

7272
this.WhenAnyValue(x => x.ViewModel.ToConnector).Where(x=>x!=null).Subscribe(_ => UpdateZindex()).DisposeWith(disposable);
7373

SimpleStateMachineNodeEditor/View/ViewCutter.xaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
d:DesignHeight="450" d:DesignWidth="800" HorizontalAlignment="Left" VerticalAlignment="Top">
99
<UserControl.RenderTransform>
1010
<TransformGroup>
11-
<ScaleTransform x:Name="Scale" ScaleX="1" ScaleY="1"/>
11+
<ScaleTransform x:Name="ScaleTransformElement" ScaleX="1" ScaleY="1"/>
1212
<SkewTransform/>
1313
<RotateTransform/>
14-
<TranslateTransform x:Name="Translate"/>
14+
<TranslateTransform x:Name="TranslateTransformElement"/>
1515
</TransformGroup>
1616
</UserControl.RenderTransform>
17-
<Line x:Name="Line" Fill="White" Stroke="Red" HorizontalAlignment="Left" VerticalAlignment="Top" StrokeDashArray="10, 3" StrokeDashCap="Round" StrokeEndLineCap="Round" StrokeStartLineCap="Round"/>
17+
<Line x:Name="LineElement" Fill="White" Stroke="Red" HorizontalAlignment="Left" VerticalAlignment="Top" StrokeDashArray="10, 3" StrokeDashCap="Round" StrokeEndLineCap="Round" StrokeStartLineCap="Round"/>
1818
</UserControl>

0 commit comments

Comments
 (0)