Advertisement
gmlscripts

spline4

Aug 1st, 2014
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /// spline4(t,knot1,knot2,knot3,knot4)
  2. //
  3. //  Returns the Catmull-Rom interpolation of the given
  4. //  knot values at the given parameter position.
  5. //
  6. //      t           interpolation parameter [0..1], real
  7. //      knot1-4     knot values of spline, real
  8. //
  9. //  This is an optimized version of spline() for the special
  10. //  case of four knots. See spline() for more details.
  11. //
  12. /// GMLscripts.com/license
  13. {
  14.     var k0, k3, c3, c2, c1, c0;
  15.     if (argument0 <= 0) return argument2;
  16.     if (argument0 >= 1) return argument3;
  17.     k0 = -0.5 * argument1;
  18.     k3 = 0.5 * argument4;
  19.     c3 = k0 + 1.5 * argument2 - 1.5 * argument3 + k3;
  20.     c2 = argument1 - 2.5 * argument2 + 2 * argument3 - k3;
  21.     c1 = k0 + 0.5 * argument3;
  22.     c0 = argument2;
  23.     return ((c3 * argument0 + c2) * argument0 + c1) * argument0 + c0;
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement