Skip to content

v1.0.0-rc1

Latest

Choose a tag to compare

@toadative toadative released this 15 Jun 03:24
· 6 commits to master since this release

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 -> segments
  • domains -> knots
  • alpha and tension have 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 jerk
  • SolveTorsion(): Solves for torsion
  • SolveCFrameFrenet(): Computes the Frenet frame as a CFrame
  • SolveCFrameRMF(): Computes a rotation-minimizing frame as a CFrame via the double reflection method
  • Transport(): Sweeps a Vector3 or CFrame along the spline such that the result has been twisted minimally around the spline
  • GetTransportInterpolant(): A bulk version of Transport()
  • SlerpNormals(): Slerps between two vectors that are normal to the spline
  • GetSlerpNormalsInterpolant(): A bulk version of SlerpNormals()
  • PrecomputeRMFs(): Precomputes a discrete approximation of a moving rotation-minimizing frame along the spline
  • SolveBulk(): A helper method for doing the same computation at many uniformly-spaced times. Has better performance than writing a for loop manually
  • SolveBoundingBox(): Returns an axis-aligned box that bounds the spline
  • CreateTween(): A wrapper around TweenService for moving objects along the spline