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