Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
IntersectIterator.cs
Go to the documentation of this file.
3
5
7public struct IntersectIterator
8{
9 private enum IteratorState
10 {
16 }
17
19
21
23
25
27
29 {
31 _state = IteratorState.InitLeft;
32 }
33
35 {
36 switch (_state)
37 {
38 case IteratorState.InitLeft:
40 _state = IteratorState.NeedRight;
41 return SetIteratorResult.InitRightIterator;
42 case IteratorState.NeedLeft:
44 break;
45 case IteratorState.NeedRight:
47 break;
48 case IteratorState.NeedLeftAndRight:
50 _state = IteratorState.NeedRight;
51 return SetIteratorResult.NeedRightNode;
52 case IteratorState.HaveCurrent:
53 _state = IteratorState.NeedLeftAndRight;
54 return SetIteratorResult.NeedLeftNode;
55 }
56 if (_navLeft == null || _navRight == null)
57 {
58 return SetIteratorResult.NoMoreNodes;
59 }
61 if (num < 0)
62 {
63 _state = IteratorState.NeedLeft;
64 return SetIteratorResult.NeedLeftNode;
65 }
66 if (num > 0)
67 {
68 _state = IteratorState.NeedRight;
69 return SetIteratorResult.NeedRightNode;
70 }
71 _state = IteratorState.HaveCurrent;
72 return SetIteratorResult.HaveCurrentNode;
73 }
74}
int ComparePosition(XPathNavigator navigatorThis, XPathNavigator navigatorThat)
SetIteratorResult MoveNext(XPathNavigator nestedNavigator)
void Create(XmlQueryRuntime runtime)