// Interpolation with a cubic curve // Resolves to ((1-t)^3)a + 3t((1-t)^2)b + 3t^2(1-t)c + (t^3)d public static Vector2 Cerp(SplineChunk chunk, float t) { Vector2 qerpABC = Qerp(chunk.a, chunk.b, chunk.c, t); Vector2 qerpBCD = Qerp(chunk.b, chunk.c, chunk.d, t); return(Lerp(qerpABC, qerpBCD, t)); }
private void RenderCubic(SplineChunk splineChunk) { int oldPositionCount = lineRenderer.positionCount; lineRenderer.positionCount = lineRenderer.positionCount + linesPerUnit + 1; float step = 1f / linesPerUnit; float t = 0; for (int i = oldPositionCount; i < lineRenderer.positionCount; i++, t += step) { lineRenderer.SetPosition(i, Spline.Cerp(splineChunk, t)); } }