5 instantiations of StrokeFIndices
PresentationCore (5)
MS\Internal\Ink\ErasingStroke.cs (1)
181
fragment = new
StrokeFIndices
(
MS\Internal\Ink\StrokeFIndices.cs (2)
17
private static readonly StrokeFIndices s_empty = new
StrokeFIndices
(AfterLast, BeforeFirst);
18
private static readonly StrokeFIndices s_full = new
StrokeFIndices
(BeforeFirst, AfterLast);
MS\Internal\Ink\StrokeIntersection.cs (2)
43
_hitSegment = new
StrokeFIndices
(hitBegin, hitEnd);
44
_inSegment = new
StrokeFIndices
(inBegin, inEnd);
171 references to StrokeFIndices
PresentationCore (171)
MS\Internal\Ink\EllipticalNodeOperations.cs (32)
381
internal override
StrokeFIndices
CutTest(
397
StrokeFIndices
result =
StrokeFIndices
.Empty;
404
result.EndFIndex =
StrokeFIndices
.AfterLast;
405
result.BeginFIndex = beginNode.IsEmpty ?
StrokeFIndices
.BeforeFirst : 1;
414
result.BeginFIndex =
StrokeFIndices
.BeforeFirst;
415
if (!DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.AfterLast))
432
if (!DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.BeforeFirst))
437
if (!DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.AfterLast))
444
return
StrokeFIndices
.Empty;
459
internal override
StrokeFIndices
CutTest(
482
StrokeFIndices
result =
StrokeFIndices
.Empty;
511
if (!DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.AfterLast))
513
result.EndFIndex =
StrokeFIndices
.AfterLast;
516
result.BeginFIndex =
StrokeFIndices
.BeforeFirst;
519
if (DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.BeforeFirst))
526
if ((!beginNode.IsEmpty) && (!isHit || !DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.BeforeFirst)))
533
if (!DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.BeforeFirst))
535
result.BeginFIndex =
StrokeFIndices
.BeforeFirst;
536
if (DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.AfterLast))
574
result =
StrokeFIndices
.Full;
576
else if ((DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.BeforeFirst)) && (!DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.AfterLast)))
578
result.EndFIndex =
StrokeFIndices
.AfterLast;
580
else if ((DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.AfterLast)) && (!DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.BeforeFirst)))
582
result.BeginFIndex =
StrokeFIndices
.BeforeFirst;
588
return
StrokeFIndices
.Empty;
791
Vector spineVector, Vector hitBegin, Vector hitEnd, double endRadius, double beginRadius, ref
StrokeFIndices
result)
795
if (!DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.AfterLast))
809
if (!DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.BeforeFirst))
MS\Internal\Ink\ErasingStroke.cs (10)
139
List<
StrokeFIndices
> eraseAt = new List<
StrokeFIndices
>();
165
StrokeFIndices
fragment = inkStrokeNode.CutTest(erasingStrokeNode);
175
StrokeFIndices
lastFragment = eraseAt[i];
222
StrokeFIndices
lastFragment = eraseAt[index - 1];
223
if (DoubleUtil.AreClose(lastFragment.EndFIndex,
StrokeFIndices
.AfterLast) )
225
if (DoubleUtil.AreClose(eraseAt[index].BeginFIndex,
StrokeFIndices
.BeforeFirst))
244
foreach (
StrokeFIndices
segment in eraseAt)
246
intersections.Add(new StrokeIntersection(segment.BeginFIndex,
StrokeFIndices
.AfterLast,
247
StrokeFIndices
.BeforeFirst, segment.EndFIndex));
MS\Internal\Ink\Lasso.cs (19)
257
StrokeFIndices
strokeFIndices = strokeNode.CutTest(lastPoint, point);
357
if (DoubleUtil.AreClose(fIndex,
StrokeFIndices
.BeforeFirst))
362
else if (DoubleUtil.AreClose(fIndex,
StrokeFIndices
.AfterLast))
389
si.HitBegin =
StrokeFIndices
.BeforeFirst;
390
si.InBegin =
StrokeFIndices
.BeforeFirst;
403
if (DoubleUtil.AreClose(si.InBegin,
StrokeFIndices
.AfterLast))
405
si.InEnd =
StrokeFIndices
.BeforeFirst;
409
si.InEnd =
StrokeFIndices
.AfterLast;
411
si.HitEnd =
StrokeFIndices
.AfterLast;
419
if (DoubleUtil.AreClose(si.InEnd,
StrokeFIndices
.BeforeFirst))
421
System.Diagnostics.Debug.Assert(DoubleUtil.AreClose(si.InBegin,
StrokeFIndices
.BeforeFirst));
422
si.InBegin =
StrokeFIndices
.AfterLast;
434
si.InBegin =
StrokeFIndices
.AfterLast;
435
si.InEnd =
StrokeFIndices
.BeforeFirst;
461
if (DoubleUtil.AreClose(si.HitEnd,
StrokeFIndices
.AfterLast))
545
internal
StrokeFIndices
FIndices;
554
public LassoCrossing(
StrokeFIndices
newFIndices, StrokeNode strokeNode)
579
FIndices =
StrokeFIndices
.Empty
906
private static readonly double NoIntersection =
StrokeFIndices
.BeforeFirst;
MS\Internal\Ink\StrokeFIndices.cs (14)
14
internal struct StrokeFIndices : IEquatable<
StrokeFIndices
>
17
private static readonly
StrokeFIndices
s_empty = new StrokeFIndices(AfterLast, BeforeFirst);
18
private static readonly
StrokeFIndices
s_full = new StrokeFIndices(BeforeFirst, AfterLast);
79
public bool Equals(
StrokeFIndices
strokeFIndices)
94
return ((
StrokeFIndices
)obj == this);
112
public static bool operator ==(
StrokeFIndices
sfiLeft,
StrokeFIndices
sfiRight)
124
public static bool operator !=(
StrokeFIndices
sfiLeft,
StrokeFIndices
sfiRight)
131
if (DoubleUtil.AreClose(fIndex,
StrokeFIndices
.BeforeFirst))
135
if (DoubleUtil.AreClose(fIndex,
StrokeFIndices
.AfterLast))
145
internal static
StrokeFIndices
Empty { get { return s_empty; } }
150
internal static
StrokeFIndices
Full { get { return s_full; } }
176
internal int CompareTo(
StrokeFIndices
fIndices)
MS\Internal\Ink\StrokeIntersection.cs (18)
25
internal static double BeforeFirst { get { return
StrokeFIndices
.BeforeFirst; } }
31
internal static double AfterLast { get { return
StrokeFIndices
.AfterLast; } }
92
return "{" +
StrokeFIndices
.GetStringRepresentation(_hitSegment.BeginFIndex) + ","
93
+
StrokeFIndices
.GetStringRepresentation(_inSegment.BeginFIndex) + ","
94
+
StrokeFIndices
.GetStringRepresentation(_inSegment.EndFIndex) + ","
95
+
StrokeFIndices
.GetStringRepresentation(_hitSegment.EndFIndex) + "}";
162
internal
StrokeFIndices
HitSegment
170
internal
StrokeFIndices
InSegment
182
internal static
StrokeFIndices
[] GetInSegments(StrokeIntersection[] intersections)
187
List<
StrokeFIndices
> inFIndices = new List<
StrokeFIndices
>(intersections.Length);
198
StrokeFIndices
sfiPrevious = inFIndices[inFIndices.Count - 1];
214
internal static
StrokeFIndices
[] GetHitSegments(StrokeIntersection[] intersections)
219
List<
StrokeFIndices
> hitFIndices = new List<
StrokeFIndices
>(intersections.Length);
230
StrokeFIndices
sfiPrevious = hitFIndices[hitFIndices.Count - 1];
247
private
StrokeFIndices
_hitSegment;
248
private
StrokeFIndices
_inSegment;
MS\Internal\Ink\StrokeNode.cs (16)
863
internal
StrokeFIndices
CutTest(StrokeNode hitNode)
867
return
StrokeFIndices
.Empty;
874
StrokeFIndices
cutAt = _operations.CutTest(_lastNode, _thisNode, ConnectingQuad, hittingContour);
886
internal
StrokeFIndices
CutTest(Point begin, Point end)
890
return
StrokeFIndices
.Empty;
895
StrokeFIndices
cutAt = _operations.CutTest(_lastNode, _thisNode, ConnectingQuad, begin, end);
913
private
StrokeFIndices
BindFIndices(
StrokeFIndices
fragment)
920
if (!DoubleUtil.AreClose(fragment.BeginFIndex,
StrokeFIndices
.BeforeFirst))
925
if (!DoubleUtil.AreClose(fragment.EndFIndex,
StrokeFIndices
.AfterLast))
944
private
StrokeFIndices
BindFIndicesForLassoHitTest(
StrokeFIndices
fragment)
950
if (DoubleUtil.AreClose(fragment.BeginFIndex,
StrokeFIndices
.BeforeFirst))
953
fragment.BeginFIndex = (_index == 0 ?
StrokeFIndices
.BeforeFirst:_index - 1);
967
if (DoubleUtil.AreClose(fragment.EndFIndex,
StrokeFIndices
.AfterLast))
970
fragment.EndFIndex = (_isLastNode ?
StrokeFIndices
.AfterLast:_index);
MS\Internal\Ink\StrokeNodeOperations.cs (41)
460
internal virtual
StrokeFIndices
CutTest(
463
StrokeFIndices
result =
StrokeFIndices
.Empty;
485
result.BeginFIndex =
StrokeFIndices
.BeforeFirst;
490
result.EndFIndex =
StrokeFIndices
.AfterLast;
493
result.BeginFIndex =
StrokeFIndices
.BeforeFirst;
495
else if (result.BeginFIndex !=
StrokeFIndices
.BeforeFirst)
515
if (result.BeginFIndex !=
StrokeFIndices
.BeforeFirst)
525
if (result.EndFIndex !=
StrokeFIndices
.AfterLast)
537
return
StrokeFIndices
.Empty;
552
internal virtual
StrokeFIndices
CutTest(
559
return
StrokeFIndices
.Full;
561
return
StrokeFIndices
.Empty;
564
StrokeFIndices
result =
StrokeFIndices
.Empty;
612
if (!DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.BeforeFirst))
615
if (findex !=
StrokeFIndices
.BeforeFirst)
626
if (!DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.AfterLast))
629
if (findex !=
StrokeFIndices
.BeforeFirst)
641
if (DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.AfterLast))
643
if (!DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.BeforeFirst))
645
result.BeginFIndex =
StrokeFIndices
.BeforeFirst;
648
else if (DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.BeforeFirst))
650
result.EndFIndex =
StrokeFIndices
.AfterLast;
655
return
StrokeFIndices
.Empty;
658
return (result.IsEmpty && isInside) ?
StrokeFIndices
.Full : result;
687
double findex =
StrokeFIndices
.AfterLast;
1175
in ContourSegment hitSegment, in StrokeNodeData beginNode, in StrokeNodeData endNode, ref
StrokeFIndices
result)
1185
if (isHit && DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.BeforeFirst))
1194
if (isHit && DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.AfterLast))
1230
result.BeginFIndex =
StrokeFIndices
.BeforeFirst;
1231
if (DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.AfterLast))
1238
result.EndFIndex =
StrokeFIndices
.AfterLast;
1241
result.BeginFIndex =
StrokeFIndices
.BeforeFirst;
1244
if (DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.BeforeFirst))
1265
double findex =
StrokeFIndices
.BeforeFirst;
1283
if ( findex ==
StrokeFIndices
.AfterLast )
1285
findex =
StrokeFIndices
.BeforeFirst;
1298
protected bool IsInvalidCutTestResult(
StrokeFIndices
result)
1307
DoubleUtil.AreClose(result.BeginFIndex,
StrokeFIndices
.BeforeFirst) && result.EndFIndex < 0.0f ||
1308
result.BeginFIndex > 1.0f && DoubleUtil.AreClose(result.EndFIndex,
StrokeFIndices
.AfterLast))
System\Windows\Ink\Stroke.cs (19)
712
private StrokeCollection Clip(
StrokeFIndices
[] cutAt)
746
System.Diagnostics.Debug.Assert(DoubleUtil.AreClose(cutAt[cutAt.Length - 1].EndFIndex,
StrokeFIndices
.AfterLast) ||
751
StrokeFIndices
fragment = cutAt[i];
774
private StrokeCollection Erase(
StrokeFIndices
[] cutAt)
802
System.Diagnostics.Debug.Assert(DoubleUtil.AreClose(cutAt[cutAt.Length - 1].EndFIndex,
StrokeFIndices
.AfterLast) ||
807
double beginFIndex =
StrokeFIndices
.BeforeFirst;
808
if (cutAt[0].BeginFIndex ==
StrokeFIndices
.BeforeFirst)
815
StrokeFIndices
fragment = cutAt[i];
832
if (beginFIndex !=
StrokeFIndices
.AfterLast)
834
Stroke stroke = Copy(sourceStylusPoints, beginFIndex,
StrokeFIndices
.AfterLast);
854
(DoubleUtil.AreClose(
StrokeFIndices
.BeforeFirst, beginFIndex))
858
(DoubleUtil.AreClose(
StrokeFIndices
.AfterLast, endFIndex))
891
if (!DoubleUtil.AreClose(beginFIndex,
StrokeFIndices
.BeforeFirst))
895
if (!DoubleUtil.AreClose(endFIndex,
StrokeFIndices
.AfterLast))
906
if ((!DoubleUtil.AreClose(endFIndex,
StrokeFIndices
.AfterLast)) && !DoubleUtil.AreClose(endIndex, endFIndex))
922
if ((!DoubleUtil.AreClose(beginFIndex,
StrokeFIndices
.BeforeFirst)) && !DoubleUtil.AreClose(beginIndex, beginFIndex))
994
private void AssertSortedNoOverlap(
StrokeFIndices
[] fragments)
1005
double current =
StrokeFIndices
.BeforeFirst;
1021
private bool IsValidStrokeFIndices(
StrokeFIndices
findex)
System\Windows\Ink\Stroke2.cs (2)
619
StrokeFIndices
[] hitSegments = StrokeIntersection.GetHitSegments(cutAt);
640
StrokeFIndices
[] inSegments = StrokeIntersection.GetInSegments(cutAt);