public void ChangeCustom(IInterpolable custom) { this.algorithm = AlgorithmType.Custom; this.isDirty = false; this.floatValues = null; this.internalInterpolator__ = custom; }
public Price[] GetPrices(IInterpolable interpolationObject) { // do some stuff before interpolation Price[] retrievedData = new Price[10]; // do interpolation return(interpolationObject.Interpolate(retrievedData)); }
public void TestInterpolationPointReplacement() { IWriteableInterpolable interp = new SmallDoubleInterpolable(2); IInterpolable interp2 = (IInterpolable)interp; interp.SetYValue(3.3, 6.6); interp.SetYValue(4.4, 8.8); interp.SetYValue(7.7, 12.8); interp.SetYValue(13.2, 22.8); interp.SetYValue(7.7, 17.8); Verify(interp2, 8.8, 18.8); }
public virtual bool UpdateInterpolator(IInterpolable internalInterpolator) { this.isDirty = false; switch (this.algorithm) { case AlgorithmType.Linear: case AlgorithmType.Constant: return(true); case AlgorithmType.Acceleration: { var inst = (Acceleration)internalInterpolator; inst.Factor = this.floatValues[0]; return(true); } case AlgorithmType.Bezier3: { var inst = (Bezier3)internalInterpolator; inst.P1 = this.floatValues[0]; return(true); } case AlgorithmType.Bezier4: { var inst = (Bezier4)internalInterpolator; inst.P1 = this.floatValues[0]; inst.P2 = this.floatValues[1]; return(true); } case AlgorithmType.Spline: { var inst = (Spline)internalInterpolator; inst.Update(Interpolator.ToSplintPoint(this.floatValues)); return(true); } case AlgorithmType.Ease: { var inst = (Ease)internalInterpolator; inst.Equation = (Ease.Equations) this.IntValue; return(true); } } return(false); }
public void TestInterpolationFrom2Points() { IWriteableInterpolable interp = new SmallDoubleInterpolable(2); IInterpolable interp2 = (IInterpolable)interp; interp.SetYValue(3.3, 6.6); interp.SetYValue(4.4, 8.8); Verify(interp2, 5.5, 11); Verify(interp2, 4.4, 8.8); Verify(interp2, 3.85, 7.7); Verify(interp2, 3.3, 6.6); Verify(interp2, 2.2, 4.4); Verify(interp2, 0.0, 0.0); Verify(interp2, -2.2, -4.4); }
public bool Apply() { if (null == this.internalInterpolator__) { this.internalInterpolator__ = this.CreateInterpolator(); } if (null == this.internalInterpolator__) { return(false); } if (this.isDirty) { this.UpdateInterpolator(this.internalInterpolator__); } return(true); }
public void TestInterpolationFrom4Points() { IWriteableInterpolable interp = new SmallDoubleInterpolable(4); IInterpolable interp2 = (IInterpolable)interp; interp.SetYValue(4.8, 2.7); interp.SetYValue(3.2, 1.5); interp.SetYValue(6.0, 4.5); interp.SetYValue(0.8, 0.6); Verify(interp2, 7.2, 6.3); Verify(interp2, 6.0, 4.5); Verify(interp2, 5.2, 3.3); Verify(interp2, 4.8, 2.7); Verify(interp2, 4.0, 2.1); Verify(interp2, 3.2, 1.5); Verify(interp2, 1.6, 0.9); Verify(interp2, 0.8, 0.6); Verify(interp2, 0.0, 0.3); Verify(interp2, -0.8, 0.0); }
private void Verify(IInterpolable interp, double xValue, double expectedYValue) { Assert.IsTrue(Math.Abs(interp.GetYValue(xValue) - expectedYValue) < 0.000001, "Point x = " + xValue + " does not result in y = " + expectedYValue + "."); }
public void Invalidate() { this.internalInterpolator__ = null; }