This is the first release candidate for v1.0.0, which indicates that CatRom is nearing a complete set of foundational features.
Breaking changes
GetSplineAtTime()->GetSegmentAtTime()PrecomputeArcLengthParams()->PrecomputeUnitSpeedData()SolveCFrame()->SolveCFrameLookAlong()SolveRotCFrame()->SolveCFrameSquad()splines->segmentsdomains->knotsalphaandtensionhave been removed
Improvements
PrecomputeUnitSpeedData()now uses Chebyshev interpolation to improve the speed and accuracy of the precompute- Spline instantiation is roughly 15% faster
- Every method now has types
Additions
SolveJerk(): Solves for jerkSolveTorsion(): Solves for torsionSolveCFrameFrenet(): Computes the Frenet frame as a CFrameSolveCFrameRMF(): Computes a rotation-minimizing frame as a CFrame via the double reflection methodTransport(): Sweeps a Vector3 or CFrame along the spline such that the result has been twisted minimally around the splineGetTransportInterpolant(): A bulk version ofTransport()SlerpNormals(): Slerps between two vectors that are normal to the splineGetSlerpNormalsInterpolant(): A bulk version ofSlerpNormals()PrecomputeRMFs(): Precomputes a discrete approximation of a moving rotation-minimizing frame along the splineSolveBulk(): A helper method for doing the same computation at many uniformly-spaced times. Has better performance than writing a for loop manuallySolveBoundingBox(): Returns an axis-aligned box that bounds the splineCreateTween(): A wrapper around TweenService for moving objects along the spline