示例#1
0
 private AnimationUtility.CubicBezierCurveSequence.Segment FindSegment(float x)
 {
     using (List <AnimationUtility.CubicBezierCurveSequence.Segment> .Enumerator enumerator = this.segments.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             AnimationUtility.CubicBezierCurveSequence.Segment current = enumerator.Current;
             if (current.StartX <= x && x < current.EndX)
             {
                 return(current);
             }
         }
     }
     return(null);
 }
示例#2
0
 internal float GetValue(float x)
 {
     if (this.EasingCurve != null && this.lastX != this.firstX)
     {
         x = this.EasingCurve(this.firstX, this.lastX, (x - this.firstX) / (this.lastX - this.firstX));
     }
     AnimationUtility.CubicBezierCurveSequence.Segment segment = this.FindSegment(x);
     if (segment != null)
     {
         segment.X = x;
         return(segment.Y);
     }
     if (x >= this.lastX)
     {
         return(this.lastY);
     }
     if (x < this.firstX)
     {
         return(this.firstY);
     }
     throw new Exception("internal error");
 }
示例#3
0
 public override bool Equals(object obj)
 {
     AnimationUtility.CubicBezierCurveSequence.Segment segment = obj as AnimationUtility.CubicBezierCurveSequence.Segment;
     return(this.startX == segment.startX && this.endX == segment.endX && this.a3x == segment.a3x && this.a2x == segment.a2x && this.a1x == segment.a1x && this.a0x == segment.a0x && this.a3y == segment.a3y && this.a2y == segment.a2y && this.a1y == segment.a1y && this.a0y == segment.a0y);
 }