コード例 #1
0
ファイル: Interpolator.cs プロジェクト: ParkDaeyeon/ProjectB
 public void ChangeCustom(IInterpolable custom)
 {
     this.algorithm              = AlgorithmType.Custom;
     this.isDirty                = false;
     this.floatValues            = null;
     this.internalInterpolator__ = custom;
 }
コード例 #2
0
        public Price[] GetPrices(IInterpolable interpolationObject)
        {
            // do some stuff before interpolation
            Price[] retrievedData = new Price[10];

            // do interpolation
            return(interpolationObject.Interpolate(retrievedData));
        }
コード例 #3
0
ファイル: TestInterpolations.cs プロジェクト: sjvannTMU/Sage
        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);
        }
コード例 #4
0
ファイル: Interpolator.cs プロジェクト: ParkDaeyeon/ProjectB
        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);
        }
コード例 #5
0
ファイル: TestInterpolations.cs プロジェクト: sjvannTMU/Sage
        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);
        }
コード例 #6
0
ファイル: Interpolator.cs プロジェクト: ParkDaeyeon/ProjectB
        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);
        }
コード例 #7
0
ファイル: TestInterpolations.cs プロジェクト: sjvannTMU/Sage
        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);
        }
コード例 #8
0
ファイル: TestInterpolations.cs プロジェクト: sjvannTMU/Sage
 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 + ".");
 }
コード例 #9
0
ファイル: Interpolator.cs プロジェクト: ParkDaeyeon/ProjectB
 public void Invalidate()
 {
     this.internalInterpolator__ = null;
 }