public IEnumerable EvaluateLinear(TestContext context) { var curve = new BezierAnimationCurve { loop = false }; curve.SetKeyframe(0, 10, CurveTypeValues.Linear); curve.SetKeyframe(1, 20, CurveTypeValues.Linear); curve.SetKeyframe(2, 30, CurveTypeValues.Linear); if (!context.Assert(curve.Evaluate(0.0f), 10f, "Linear/0")) { yield break; } if (!context.Assert(curve.Evaluate(0.5f), 15f, "Linear/1")) { yield break; } if (!context.Assert(curve.Evaluate(1.0f), 20f, "Linear/2")) { yield break; } if (!context.Assert(curve.Evaluate(1.5f), 25f, "Linear/3")) { yield break; } if (!context.Assert(curve.Evaluate(2.0f), 30f, "Linear/4")) { yield break; } }
public Vector3 EvaluatePosition(float time) { return(new Vector3( x.Evaluate(time), y.Evaluate(time), z.Evaluate(time) )); }
public IEnumerable EvaluateSmoothGlobalNonLooping(TestContext context) { var curve = new BezierAnimationCurve { loop = false }; curve.SetKeyframe(0, 100, CurveTypeValues.SmoothGlobal); curve.SetKeyframe(1, 200, CurveTypeValues.SmoothGlobal); curve.SetKeyframe(2, 300, CurveTypeValues.SmoothGlobal); curve.SetKeyframe(3, 200, CurveTypeValues.SmoothGlobal); curve.SetKeyframe(4, 100, CurveTypeValues.SmoothGlobal); curve.ComputeCurves(); if (!context.Assert(curve.Evaluate(0.0f), 100f, "0.0")) { yield break; } if (!context.Assert(curve.Evaluate(0.5f).Snap(0.001f), 144.643f, "0.5")) { yield break; } if (!context.Assert(curve.Evaluate(1.0f), 200f, "1.0")) { yield break; } if (!context.Assert(curve.Evaluate(1.5f).Snap(0.001f), 266.071f, "1.5")) { yield break; } if (!context.Assert(curve.Evaluate(2.0f), 300f, "2.0")) { yield break; } if (!context.Assert(curve.Evaluate(2.5f).Snap(0.001f), 266.071f, "2.5")) { yield break; } if (!context.Assert(curve.Evaluate(3.0f), 200f, "3.0")) { yield break; } if (!context.Assert(curve.Evaluate(3.5f).Snap(0.001f), 144.643f, "3.5")) { yield break; } if (!context.Assert(curve.Evaluate(4.0f), 100f, "4.0")) { yield break; } }
public Quaternion EvaluateRotation(float time) { return(new Quaternion( rotX.Evaluate(time), rotY.Evaluate(time), rotZ.Evaluate(time), rotW.Evaluate(time) )); }