Commit 93688872e96c6843b65f2fdaae7e3273ecb47ece
1 parent
b169b88b18
Exists in
master
2036 : Update draw Restriction
Showing 2 changed files with 77 additions and 40 deletions Side-by-side Diff
sources/RoboforkApp/DesignerCanvas.cs
... | ... | @@ -255,6 +255,9 @@ |
255 | 255 | LineGeometry lineGeometry = (LineGeometry)gGrpLine.Children[currentLine]; |
256 | 256 | lineGeometry.EndPoint = LastPoint; |
257 | 257 | |
258 | + // Add node to curver postion | |
259 | + AddNode(lineGeometry.StartPoint, gGrpRedNode); | |
260 | + | |
258 | 261 | // Check end route |
259 | 262 | if (IsEndRoute(_goalPoint, lineGeometry)) |
260 | 263 | { |
261 | 264 | |
262 | 265 | |
... | ... | @@ -263,27 +266,24 @@ |
263 | 266 | return; |
264 | 267 | } |
265 | 268 | |
266 | - // Add node to curver postion | |
267 | - AddNode(lineGeometry.StartPoint, gGrpRedNode); | |
268 | - | |
269 | 269 | // Draw curver line |
270 | - DrawCurver((LineGeometry)gGrpLine.Children[currentLine - 1], (LineGeometry)gGrpLine.Children[currentLine]); | |
270 | + //DrawCurver((LineGeometry)gGrpLine.Children[currentLine - 1], (LineGeometry)gGrpLine.Children[currentLine]); | |
271 | 271 | } |
272 | 272 | else |
273 | 273 | { |
274 | 274 | // Remove current line |
275 | 275 | gGrpLine.Children.RemoveAt(currentLine); |
276 | 276 | // Remove yellow node |
277 | - if (gGrpYellowNode.Children.Count > 0) | |
278 | - { | |
279 | - gGrpYellowNode.Children.RemoveAt(gGrpYellowNode.Children.Count - 1); | |
280 | - gGrpYellowNode.Children.RemoveAt(gGrpYellowNode.Children.Count - 1); | |
281 | - } | |
282 | - // Remove curver line | |
283 | - if (gGrpCurverLine.Children.Count > 0) | |
284 | - { | |
285 | - gGrpCurverLine.Children.RemoveAt(gGrpCurverLine.Children.Count - 1); | |
286 | - } | |
277 | + //if (gGrpYellowNode.Children.Count > 0) | |
278 | + //{ | |
279 | + // gGrpYellowNode.Children.RemoveAt(gGrpYellowNode.Children.Count - 1); | |
280 | + // gGrpYellowNode.Children.RemoveAt(gGrpYellowNode.Children.Count - 1); | |
281 | + //} | |
282 | + //// Remove curver line | |
283 | + //if (gGrpCurverLine.Children.Count > 0) | |
284 | + //{ | |
285 | + // gGrpCurverLine.Children.RemoveAt(gGrpCurverLine.Children.Count - 1); | |
286 | + //} | |
287 | 287 | |
288 | 288 | // Set end point to finish draw line |
289 | 289 | LineGeometry lineGeometry = (LineGeometry)gGrpLine.Children[currentLine - 1]; |
... | ... | @@ -297,13 +297,13 @@ |
297 | 297 | return; |
298 | 298 | } |
299 | 299 | |
300 | - // Re-draw cuver line | |
301 | - if (currentLine > 1) | |
302 | - { | |
303 | - if (IsCurverNode((LineGeometry)gGrpLine.Children[currentLine - 2] | |
304 | - , (LineGeometry)gGrpLine.Children[currentLine - 1])) | |
305 | - DrawCurver((LineGeometry)gGrpLine.Children[currentLine - 2], (LineGeometry)gGrpLine.Children[currentLine - 1]); | |
306 | - } | |
300 | + //// Re-draw cuver line | |
301 | + //if (currentLine > 1) | |
302 | + //{ | |
303 | + // if (IsCurverNode((LineGeometry)gGrpLine.Children[currentLine - 2] | |
304 | + // , (LineGeometry)gGrpLine.Children[currentLine - 1])) | |
305 | + // DrawCurver((LineGeometry)gGrpLine.Children[currentLine - 2], (LineGeometry)gGrpLine.Children[currentLine - 1]); | |
306 | + //} | |
307 | 307 | } |
308 | 308 | |
309 | 309 | // Draw new line |
310 | 310 | |
... | ... | @@ -774,22 +774,27 @@ |
774 | 774 | { |
775 | 775 | beforeLastLine.EndPoint = lastLine.EndPoint; |
776 | 776 | gGrpLine.Children.RemoveAt(index); |
777 | - // Remove yellow node | |
778 | - if (gGrpYellowNode.Children.Count > 0) | |
779 | - { | |
780 | - gGrpYellowNode.Children.RemoveAt(gGrpYellowNode.Children.Count - 1); | |
781 | - gGrpYellowNode.Children.RemoveAt(gGrpYellowNode.Children.Count - 1); | |
782 | - } | |
783 | - // Remove curver line | |
784 | - if (gGrpCurverLine.Children.Count > 0) | |
785 | - { | |
786 | - gGrpCurverLine.Children.RemoveAt(gGrpCurverLine.Children.Count - 1); | |
787 | - } | |
777 | + //// Remove yellow node | |
778 | + //if (gGrpYellowNode.Children.Count > 0) | |
779 | + //{ | |
780 | + // gGrpYellowNode.Children.RemoveAt(gGrpYellowNode.Children.Count - 1); | |
781 | + // gGrpYellowNode.Children.RemoveAt(gGrpYellowNode.Children.Count - 1); | |
782 | + //} | |
783 | + //// Remove curver line | |
784 | + //if (gGrpCurverLine.Children.Count > 0) | |
785 | + //{ | |
786 | + // gGrpCurverLine.Children.RemoveAt(gGrpCurverLine.Children.Count - 1); | |
787 | + //} | |
788 | 788 | index = index - 1; |
789 | 789 | lastLine = (LineGeometry)gGrpLine.Children[index]; |
790 | 790 | } |
791 | 791 | } |
792 | 792 | |
793 | + if (index == gGrpRedNode.Children.Count + 1) | |
794 | + { | |
795 | + AddNode(lastLine.StartPoint, gGrpRedNode); | |
796 | + } | |
797 | + | |
793 | 798 | if (lastLine.EndPoint.X == centerX && lastLine.EndPoint.Y == centerY) |
794 | 799 | return; |
795 | 800 | |
... | ... | @@ -820,11 +825,13 @@ |
820 | 825 | // Draw curver line |
821 | 826 | if (IsCurverNode(beforeLastLine, lastLine)) |
822 | 827 | { |
823 | - AddNode(beforeLastLine.EndPoint, gGrpRedNode); | |
824 | - if (GetDistance(lastLine.StartPoint, lastLine.EndPoint) > RADIUS_CURVER_LINE + 25) | |
825 | - { | |
826 | - DrawCurver(beforeLastLine, lastLine); | |
827 | - } | |
828 | + EllipseGeometry ellipseGeometry = (EllipseGeometry)gGrpRedNode.Children[gGrpRedNode.Children.Count - 1]; | |
829 | + ellipseGeometry.Center = lastLine.StartPoint; | |
830 | + // | |
831 | + //if (GetDistance(lastLine.StartPoint, lastLine.EndPoint) > RADIUS_CURVER_LINE + 25) | |
832 | + //{ | |
833 | + //DrawCurver(beforeLastLine, lastLine); | |
834 | + //} | |
828 | 835 | } |
829 | 836 | } |
830 | 837 | |
... | ... | @@ -923,8 +930,15 @@ |
923 | 930 | //DrawCurverLine(startPoint, endPoint, sweepDirection, gGrpCurverLine); |
924 | 931 | |
925 | 932 | // Add node to postion distance 1300mm |
926 | - AddNode(startPoint, gGrpYellowNode); | |
927 | - AddNode(endPoint, gGrpYellowNode); | |
933 | + if (GetDistance(oldLine.StartPoint, oldLine.EndPoint) > RADIUS_CURVER_LINE) | |
934 | + { | |
935 | + AddNode(startPoint, gGrpYellowNode); | |
936 | + } | |
937 | + | |
938 | + if (GetDistance(newLine.StartPoint, newLine.EndPoint) > RADIUS_CURVER_LINE) | |
939 | + { | |
940 | + AddNode(endPoint, gGrpYellowNode); | |
941 | + } | |
928 | 942 | } |
929 | 943 | |
930 | 944 | /// <summary> |
... | ... | @@ -1783,6 +1797,11 @@ |
1783 | 1797 | |
1784 | 1798 | public void CreateGoalPoint() |
1785 | 1799 | { |
1800 | + if (isGoalDrawRoute) | |
1801 | + { | |
1802 | + return; | |
1803 | + } | |
1804 | + | |
1786 | 1805 | isStartDrawRoute = false; |
1787 | 1806 | if (_goalPoint == null) |
1788 | 1807 | { |
... | ... | @@ -1798,6 +1817,11 @@ |
1798 | 1817 | |
1799 | 1818 | public void CreateStartPoint() |
1800 | 1819 | { |
1820 | + if (isGoalDrawRoute) | |
1821 | + { | |
1822 | + return; | |
1823 | + } | |
1824 | + | |
1801 | 1825 | isStartDrawRoute = false; |
1802 | 1826 | if (_startPoint == null) |
1803 | 1827 | { |
sources/RoboforkApp/RoboforkMenu.xaml.cs
... | ... | @@ -42,6 +42,10 @@ |
42 | 42 | string tag = ((TreeViewItem)sender).Tag.ToString(); |
43 | 43 | switch (tag) |
44 | 44 | { |
45 | + case "SetupRestriction": | |
46 | + DoBeginSetupRestriction(); | |
47 | + break; | |
48 | + | |
45 | 49 | case "SetStart": |
46 | 50 | DoBeginSetStart(); |
47 | 51 | break; |
... | ... | @@ -84,6 +88,10 @@ |
84 | 88 | string tag = ((TreeViewItem)sender).Tag.ToString(); |
85 | 89 | switch (tag) |
86 | 90 | { |
91 | + case "SetupRestriction": | |
92 | + //DoBeginSetStart(); | |
93 | + break; | |
94 | + | |
87 | 95 | case "SetStart": |
88 | 96 | //DoBeginSetStart(); |
89 | 97 | break; |
... | ... | @@ -121,7 +129,12 @@ |
121 | 129 | MyDesignerCanvas.Operation = DesignerCanvas.OperationState.DrawSetFreeNode; |
122 | 130 | } |
123 | 131 | |
124 | - | |
132 | + private void DoBeginSetupRestriction() | |
133 | + { | |
134 | + MyDesignerCanvas.Init(); | |
135 | + MyDesignerCanvas.Operation = DesignerCanvas.OperationState.DrawObstract; | |
136 | + MyDesignerCanvas.mouseState = DesignerCanvas.MouseState.None; | |
137 | + } | |
125 | 138 | |
126 | 139 | private void DoBeginSetStart() |
127 | 140 | { |