Esempio n. 1
0
        public override Vector3 GetPoint(Single offset)
        {
            var sample = FindSample(offset);

            switch (sample.Item1.Degree)
            {
            case 0:
                return(sample.Item1.Point);

            case 1:
                return(Vector3.Lerp(sample.Item1.Point, sample.Item2.Point, sample.Item3));

            case 3:
                return(SamplerFactory.InterpolateCubic
                       (
                           sample.Item1.Point, sample.Item1.OutgoingTangent,
                           sample.Item2.Point, sample.Item2.IncomingTangent,
                           sample.Item3
                       ));

            default:
                throw new NotSupportedException();
            }
        }
Esempio n. 2
0
        public override Quaternion GetPoint(float offset)
        {
            var sample = FindSample(offset);

            switch (sample.A.Degree)
            {
            case 0:
                return(sample.A.Point);

            case 1:
                return(Quaternion.Slerp(sample.A.Point, sample.B.Point, sample.Amount));

            case 3:
                return(SamplerFactory.InterpolateCubic
                       (
                           sample.A.Point, sample.A.OutgoingTangent,
                           sample.B.Point, sample.B.IncomingTangent,
                           sample.Amount
                       ));

            default:
                throw new NotSupportedException();
            }
        }