public override Vector3 GetPoint(Single offset) { var sample = FindSample(offset); switch (sample.A.Degree) { case 0: return(sample.A.Point); case 1: return(Vector3.Lerp(sample.A.Point, sample.B.Point, sample.Amount)); case 3: return(CurveSampler.InterpolateCubic ( sample.A.Point, sample.A.OutgoingTangent, sample.B.Point, sample.B.IncomingTangent, sample.Amount )); default: throw new NotSupportedException(); } }
public SEGMENT InterpolateCubic(SEGMENT start, SEGMENT outgoingTangent, SEGMENT end, SEGMENT incomingTangent, Single amount) { return(new SEGMENT(CurveSampler.InterpolateCubic(start, outgoingTangent, end, incomingTangent, amount))); }
public Quaternion InterpolateCubic(Quaternion start, Quaternion outgoingTangent, Quaternion end, Quaternion incomingTangent, Single amount) { return(CurveSampler.InterpolateCubic(start, outgoingTangent, end, incomingTangent, amount)); }
public float[] InterpolateCubic(float[] start, float[] outgoingTangent, float[] end, float[] incomingTangent, float amount) { return(CurveSampler.InterpolateCubic(start, outgoingTangent, end, incomingTangent, amount)); }
public Vector3 InterpolateCubic(Vector3 start, Vector3 outgoingTangent, Vector3 end, Vector3 incomingTangent, Single amount) { return(CurveSampler.InterpolateCubic(start, outgoingTangent, end, incomingTangent, amount)); }