public BezierPoint.ExtraData GetExtraData(float normalizedT, ExtraDataLerpFunction lerpFunction) { if (!loop) { if (normalizedT <= 0f) { return(endPoints[0].extraData); } else if (normalizedT >= 1f) { return(endPoints[endPoints.Count - 1].extraData); } } else { if (normalizedT < 0f) { normalizedT += 1f; } else if (normalizedT >= 1f) { normalizedT -= 1f; } } float t = normalizedT * (loop ? endPoints.Count : (endPoints.Count - 1)); int startIndex = (int)t; int endIndex = startIndex + 1; if (endIndex == endPoints.Count) { endIndex = 0; } return(lerpFunction(endPoints[startIndex].extraData, endPoints[endIndex].extraData, t - startIndex)); }
public BezierPoint.ExtraData GetExtraData(float percentage, ExtraDataLerpFunction lerpFunction) { if (!loop) { if (percentage <= 0f) { return(extraDatas[0]); } else if (percentage >= 1f) { return(extraDatas[extraDatas.Length - 1]); } } else { if (percentage < 0f) { percentage += 1f; } if (percentage >= 1f) { percentage -= 1f; } } float t = percentage * (loop ? extraDatas.Length : (extraDatas.Length - 1)); int startIndex = (int)t; int endIndex = startIndex + 1; if (endIndex == extraDatas.Length) { endIndex = 0; } return(lerpFunction(extraDatas[startIndex], extraDatas[endIndex], t - startIndex)); }
public BezierPoint.ExtraData GetExtraData(float localT, ExtraDataLerpFunction lerpFunction) { return(lerpFunction(point1.extraData, point2.extraData, localT)); }