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); }
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"); }
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); }