@pawells/math-extended 1.0.5 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/README.md +5 -5
  2. package/build/angles.d.ts +43 -3
  3. package/build/angles.d.ts.map +1 -1
  4. package/build/angles.js +61 -34
  5. package/build/angles.js.map +1 -1
  6. package/build/clamp.d.ts +5 -3
  7. package/build/clamp.d.ts.map +1 -1
  8. package/build/clamp.js +5 -3
  9. package/build/clamp.js.map +1 -1
  10. package/build/interpolation.d.ts +444 -67
  11. package/build/interpolation.d.ts.map +1 -1
  12. package/build/interpolation.js +444 -67
  13. package/build/interpolation.js.map +1 -1
  14. package/build/matrices/_exports.d.ts +13 -0
  15. package/build/matrices/_exports.d.ts.map +1 -0
  16. package/build/matrices/_exports.js +13 -0
  17. package/build/matrices/_exports.js.map +1 -0
  18. package/build/matrices/arithmetic.d.ts +170 -181
  19. package/build/matrices/arithmetic.d.ts.map +1 -1
  20. package/build/matrices/arithmetic.js +192 -202
  21. package/build/matrices/arithmetic.js.map +1 -1
  22. package/build/matrices/asserts.d.ts +244 -116
  23. package/build/matrices/asserts.d.ts.map +1 -1
  24. package/build/matrices/asserts.js +291 -94
  25. package/build/matrices/asserts.js.map +1 -1
  26. package/build/matrices/core.d.ts +40 -41
  27. package/build/matrices/core.d.ts.map +1 -1
  28. package/build/matrices/core.js +12 -13
  29. package/build/matrices/core.js.map +1 -1
  30. package/build/matrices/decompositions.d.ts +121 -124
  31. package/build/matrices/decompositions.d.ts.map +1 -1
  32. package/build/matrices/decompositions.js +168 -226
  33. package/build/matrices/decompositions.js.map +1 -1
  34. package/build/matrices/index.d.ts +3 -2
  35. package/build/matrices/index.d.ts.map +1 -1
  36. package/build/matrices/index.js +5 -2
  37. package/build/matrices/index.js.map +1 -1
  38. package/build/matrices/linear-algebra.d.ts +18 -13
  39. package/build/matrices/linear-algebra.d.ts.map +1 -1
  40. package/build/matrices/linear-algebra.js +58 -23
  41. package/build/matrices/linear-algebra.js.map +1 -1
  42. package/build/matrices/normalization.d.ts +8 -8
  43. package/build/matrices/transformations.d.ts +184 -168
  44. package/build/matrices/transformations.d.ts.map +1 -1
  45. package/build/matrices/transformations.js +99 -83
  46. package/build/matrices/transformations.js.map +1 -1
  47. package/build/matrices/types.d.ts +12 -12
  48. package/build/matrices/types.d.ts.map +1 -1
  49. package/build/quaternions/_exports.d.ts +11 -0
  50. package/build/quaternions/_exports.d.ts.map +1 -0
  51. package/build/quaternions/_exports.js +11 -0
  52. package/build/quaternions/_exports.js.map +1 -0
  53. package/build/quaternions/asserts.d.ts +115 -7
  54. package/build/quaternions/asserts.d.ts.map +1 -1
  55. package/build/quaternions/asserts.js +162 -8
  56. package/build/quaternions/asserts.js.map +1 -1
  57. package/build/quaternions/conversions.d.ts +31 -21
  58. package/build/quaternions/conversions.d.ts.map +1 -1
  59. package/build/quaternions/conversions.js +28 -18
  60. package/build/quaternions/conversions.js.map +1 -1
  61. package/build/quaternions/core.d.ts +73 -41
  62. package/build/quaternions/core.d.ts.map +1 -1
  63. package/build/quaternions/core.js +84 -49
  64. package/build/quaternions/core.js.map +1 -1
  65. package/build/quaternions/index.d.ts +3 -2
  66. package/build/quaternions/index.d.ts.map +1 -1
  67. package/build/quaternions/index.js +5 -2
  68. package/build/quaternions/index.js.map +1 -1
  69. package/build/quaternions/interpolation.d.ts +15 -9
  70. package/build/quaternions/interpolation.d.ts.map +1 -1
  71. package/build/quaternions/interpolation.js +15 -9
  72. package/build/quaternions/interpolation.js.map +1 -1
  73. package/build/quaternions/predefined.d.ts +9 -3
  74. package/build/quaternions/predefined.d.ts.map +1 -1
  75. package/build/quaternions/predefined.js +9 -3
  76. package/build/quaternions/predefined.js.map +1 -1
  77. package/build/quaternions/types.d.ts +3 -3
  78. package/build/random.d.ts +5 -2
  79. package/build/random.d.ts.map +1 -1
  80. package/build/random.js +20 -17
  81. package/build/random.js.map +1 -1
  82. package/build/vectors/_exports.d.ts +10 -0
  83. package/build/vectors/_exports.d.ts.map +1 -0
  84. package/build/vectors/_exports.js +10 -0
  85. package/build/vectors/_exports.js.map +1 -0
  86. package/build/vectors/asserts.d.ts +153 -49
  87. package/build/vectors/asserts.d.ts.map +1 -1
  88. package/build/vectors/asserts.js +202 -52
  89. package/build/vectors/asserts.js.map +1 -1
  90. package/build/vectors/core.d.ts +216 -137
  91. package/build/vectors/core.d.ts.map +1 -1
  92. package/build/vectors/core.js +217 -158
  93. package/build/vectors/core.js.map +1 -1
  94. package/build/vectors/index.d.ts +1 -0
  95. package/build/vectors/index.d.ts.map +1 -1
  96. package/build/vectors/index.js +3 -0
  97. package/build/vectors/index.js.map +1 -1
  98. package/build/vectors/interpolation.d.ts +39 -27
  99. package/build/vectors/interpolation.d.ts.map +1 -1
  100. package/build/vectors/interpolation.js +39 -27
  101. package/build/vectors/interpolation.js.map +1 -1
  102. package/build/vectors/predefined.d.ts +48 -24
  103. package/build/vectors/predefined.d.ts.map +1 -1
  104. package/build/vectors/predefined.js +38 -18
  105. package/build/vectors/predefined.js.map +1 -1
  106. package/package.json +12 -15
@@ -9,166 +9,543 @@
9
9
  * @returns `a + (b - a) * t`
10
10
  *
11
11
  * @example
12
- * LinearInterpolation(0, 100, 0.5) // 50
13
- * LinearInterpolation(0, 100, 0) // 0
14
- * LinearInterpolation(0, 100, 1) // 100
15
- * LinearInterpolation(0, 100, 1.5) // 150 (extrapolation)
12
+ * ```typescript
13
+ * LinearInterpolation(0, 100, 0.5) // 50
14
+ * LinearInterpolation(0, 100, 0) // 0
15
+ * LinearInterpolation(0, 100, 1) // 100
16
+ * LinearInterpolation(0, 100, 1.5) // 150 (extrapolation)
17
+ * ```
16
18
  */
17
19
  export declare function LinearInterpolation(a: number, b: number, t: number): number;
18
20
  /**
19
- * Smooth step interpolation (3t² - 2t³)
20
- * Provides smooth acceleration and deceleration with zero derivatives at endpoints
21
+ * Smooth step interpolation (3t² 2t³).
22
+ * Provides smooth acceleration and deceleration with zero first derivatives at both endpoints.
23
+ *
24
+ * @param a - Start value (result when t = 0)
25
+ * @param b - End value (result when t = 1)
26
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
27
+ * @returns Interpolated value using cubic smooth-step curve
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * SmoothStep(0, 10, 0) // 0
32
+ * SmoothStep(0, 10, 1) // 10
33
+ * SmoothStep(0, 10, 0.25) // 1.5625 (slower start than LinearInterpolation's 2.5)
34
+ * ```
21
35
  */
22
36
  export declare function SmoothStep(a: number, b: number, t: number): number;
23
37
  /**
24
- * Smoother step interpolation (6t⁵ - 15t⁴ + 10t³)
25
- * Even smoother than SmoothStep with zero first and second derivatives at endpoints
38
+ * Smoother step interpolation (6t⁵ 15t⁴ + 10t³).
39
+ * Even smoother than SmoothStep with zero first and second derivatives at both endpoints
40
+ * (Ken Perlin's improvement).
41
+ *
42
+ * @param a - Start value (result when t = 0)
43
+ * @param b - End value (result when t = 1)
44
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
45
+ * @returns Interpolated value using quintic smoother-step curve
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * SmootherStep(0, 10, 0) // 0
50
+ * SmootherStep(0, 10, 1) // 10
51
+ * SmootherStep(0, 10, 0.25) // ~1.04 (smoother start than SmoothStep)
52
+ * ```
26
53
  */
27
54
  export declare function SmootherStep(a: number, b: number, t: number): number;
28
55
  /**
29
- * Quadratic ease-in interpolation (t²)
30
- * Accelerates slowly at the beginning
56
+ * Quadratic ease-in interpolation (t²).
57
+ * Accelerates from rest — starts slowly and gains speed toward the end.
58
+ *
59
+ * @param a - Start value (result when t = 0)
60
+ * @param b - End value (result when t = 1)
61
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
62
+ * @returns Interpolated value with quadratic acceleration from start
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * QuadraticEaseIn(0, 10, 0) // 0
67
+ * QuadraticEaseIn(0, 10, 1) // 10
68
+ * QuadraticEaseIn(0, 10, 0.5) // 2.5 (only 25% progress at the midpoint)
69
+ * ```
31
70
  */
32
71
  export declare function QuadraticEaseIn(a: number, b: number, t: number): number;
33
72
  /**
34
- * Quadratic ease-out interpolation (1 - (1-t)²)
35
- * Decelerates slowly at the end
73
+ * Quadratic ease-out interpolation (1 (1t)²).
74
+ * Decelerates to rest — starts quickly and slows toward the end.
75
+ *
76
+ * @param a - Start value (result when t = 0)
77
+ * @param b - End value (result when t = 1)
78
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
79
+ * @returns Interpolated value with quadratic deceleration toward end
80
+ *
81
+ * @example
82
+ * ```typescript
83
+ * QuadraticEaseOut(0, 10, 0) // 0
84
+ * QuadraticEaseOut(0, 10, 1) // 10
85
+ * QuadraticEaseOut(0, 10, 0.5) // 7.5 (already 75% progress at the midpoint)
86
+ * ```
36
87
  */
37
88
  export declare function QuadraticEaseOut(a: number, b: number, t: number): number;
38
89
  /**
39
- * Cubic ease-in interpolation (t³)
40
- * More pronounced acceleration than quadratic
90
+ * Cubic ease-in interpolation (t³).
91
+ * More pronounced acceleration than quadratic — starts very slowly.
92
+ *
93
+ * @param a - Start value (result when t = 0)
94
+ * @param b - End value (result when t = 1)
95
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
96
+ * @returns Interpolated value with cubic acceleration from start
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * CubicEaseIn(0, 10, 0) // 0
101
+ * CubicEaseIn(0, 10, 1) // 10
102
+ * CubicEaseIn(0, 10, 0.5) // 1.25 (only 12.5% progress at the midpoint)
103
+ * ```
41
104
  */
42
105
  export declare function CubicEaseIn(a: number, b: number, t: number): number;
43
106
  /**
44
- * Cubic ease-out interpolation (1 - (1-t)³)
45
- * More pronounced deceleration than quadratic
107
+ * Cubic ease-out interpolation (1 (1t)³).
108
+ * More pronounced deceleration than quadratic — slows very gradually at the end.
109
+ *
110
+ * @param a - Start value (result when t = 0)
111
+ * @param b - End value (result when t = 1)
112
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
113
+ * @returns Interpolated value with cubic deceleration toward end
114
+ *
115
+ * @example
116
+ * ```typescript
117
+ * CubicEaseOut(0, 10, 0) // 0
118
+ * CubicEaseOut(0, 10, 1) // 10
119
+ * CubicEaseOut(0, 10, 0.5) // 8.75 (already 87.5% progress at the midpoint)
120
+ * ```
46
121
  */
47
122
  export declare function CubicEaseOut(a: number, b: number, t: number): number;
48
123
  /**
49
- * Cosine interpolation - smooth curve using cosine function
50
- * Provides natural easing similar to SmoothStep but using trigonometry
124
+ * Cosine interpolation smooth curve using the cosine function.
125
+ * Provides natural easing similar to SmoothStep but using trigonometry.
126
+ *
127
+ * @param a - Start value (result when t = 0)
128
+ * @param b - End value (result when t = 1)
129
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
130
+ * @returns Interpolated value using cosine-based easing curve
131
+ *
132
+ * @example
133
+ * ```typescript
134
+ * CosineInterpolation(0, 10, 0) // 0
135
+ * CosineInterpolation(0, 10, 1) // 10
136
+ * CosineInterpolation(0, 10, 0.5) // 5 (same as LERP at midpoint; smooth near endpoints)
137
+ * ```
51
138
  */
52
139
  export declare function CosineInterpolation(a: number, b: number, t: number): number;
53
140
  /**
54
- * Sine ease-in interpolation
55
- * Slow start with smooth acceleration
141
+ * Sine ease-in interpolation.
142
+ * Slow start with smooth sinusoidal acceleration.
143
+ *
144
+ * @param a - Start value (result when t = 0)
145
+ * @param b - End value (result when t = 1)
146
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
147
+ * @returns Interpolated value with sine-based acceleration from start
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * SineEaseIn(0, 10, 0) // 0
152
+ * SineEaseIn(0, 10, 1) // 10
153
+ * SineEaseIn(0, 10, 0.5) // ~2.93 (slower than LinearInterpolation's 5 at midpoint)
154
+ * ```
56
155
  */
57
156
  export declare function SineEaseIn(a: number, b: number, t: number): number;
58
157
  /**
59
- * Sine ease-out interpolation
60
- * Smooth deceleration to the end
158
+ * Sine ease-out interpolation.
159
+ * Fast start with smooth sinusoidal deceleration to the end.
160
+ *
161
+ * @param a - Start value (result when t = 0)
162
+ * @param b - End value (result when t = 1)
163
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
164
+ * @returns Interpolated value with sine-based deceleration toward end
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * SineEaseOut(0, 10, 0) // 0
169
+ * SineEaseOut(0, 10, 1) // 10
170
+ * SineEaseOut(0, 10, 0.5) // ~7.07 (faster than LinearInterpolation's 5 at midpoint)
171
+ * ```
61
172
  */
62
173
  export declare function SineEaseOut(a: number, b: number, t: number): number;
63
174
  /**
64
- * Exponential ease-in interpolation
65
- * Very slow start, then rapid acceleration
175
+ * Exponential ease-in interpolation (2^(10t−10)).
176
+ * Very slow start, then rapid exponential acceleration.
177
+ *
178
+ * @param a - Start value (result when t = 0)
179
+ * @param b - End value (result when t = 1)
180
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
181
+ * @returns Interpolated value with exponential acceleration from start
182
+ *
183
+ * @example
184
+ * ```typescript
185
+ * ExponentialEaseIn(0, 10, 0) // 0
186
+ * ExponentialEaseIn(0, 10, 1) // 10
187
+ * ExponentialEaseIn(0, 10, 0.5) // ~0.31 (barely moved at midpoint)
188
+ * ```
66
189
  */
67
190
  export declare function ExponentialEaseIn(a: number, b: number, t: number): number;
68
191
  /**
69
- * Exponential ease-out interpolation
70
- * Rapid start, then very slow deceleration
192
+ * Exponential ease-out interpolation (1 − 2^(−10t)).
193
+ * Rapid start, then very slow exponential deceleration.
194
+ *
195
+ * @param a - Start value (result when t = 0)
196
+ * @param b - End value (result when t = 1)
197
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
198
+ * @returns Interpolated value with exponential deceleration toward end
199
+ *
200
+ * @example
201
+ * ```typescript
202
+ * ExponentialEaseOut(0, 10, 0) // 0
203
+ * ExponentialEaseOut(0, 10, 1) // 10
204
+ * ExponentialEaseOut(0, 10, 0.5) // ~9.69 (nearly done at midpoint)
205
+ * ```
71
206
  */
72
207
  export declare function ExponentialEaseOut(a: number, b: number, t: number): number;
73
208
  /**
74
- * Elastic ease-out - bouncy spring-like motion
75
- * Creates an overshoot effect that bounces back
209
+ * Elastic ease-out bouncy spring-like motion.
210
+ * Creates an overshoot effect that oscillates before settling at the endpoint.
211
+ *
212
+ * @param a - Start value (result when t = 0)
213
+ * @param b - End value (result when t = 1)
214
+ * @param t - Interpolation parameter — clamped to [0, 1] at t=0 and t=1 boundaries
215
+ * @returns Interpolated value with elastic overshoot effect toward end
216
+ *
217
+ * @example
218
+ * ```typescript
219
+ * ElasticEaseOut(0, 10, 0) // 0
220
+ * ElasticEaseOut(0, 10, 1) // 10
221
+ * ElasticEaseOut(0, 10, 0.8) // ~10.86 (overshoots target before settling)
222
+ * ```
76
223
  */
77
224
  export declare function ElasticEaseOut(a: number, b: number, t: number): number;
78
225
  /**
79
- * Back ease-out - overshoots then settles
80
- * Creates a slight overshoot before settling at the target
226
+ * Back ease-out overshoots then settles.
227
+ * Creates a slight overshoot beyond the target before settling into place.
228
+ *
229
+ * @param a - Start value (result when t = 0)
230
+ * @param b - End value (result when t = 1)
231
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
232
+ * @returns Interpolated value with back overshoot effect toward end
233
+ *
234
+ * @example
235
+ * ```typescript
236
+ * BackEaseOut(0, 10, 0) // 0
237
+ * BackEaseOut(0, 10, 1) // 10
238
+ * BackEaseOut(0, 10, 0.75) // ~10.88 (overshoots before settling)
239
+ * ```
81
240
  */
82
241
  export declare function BackEaseOut(a: number, b: number, t: number): number;
83
242
  /**
84
- * Bounce ease-out - bouncing ball effect
85
- * Simulates a ball bouncing to rest
243
+ * Bounce ease-out simulates a ball bouncing to rest.
244
+ * Produces a series of bounces with decreasing amplitude before settling at the endpoint.
245
+ *
246
+ * @param a - Start value (result when t = 0)
247
+ * @param b - End value (result when t = 1)
248
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
249
+ * @returns Interpolated value with bouncing effect toward end
250
+ *
251
+ * @example
252
+ * ```typescript
253
+ * BounceEaseOut(0, 10, 0) // 0
254
+ * BounceEaseOut(0, 10, 1) // 10
255
+ * BounceEaseOut(0, 10, 0.5) // ~7.65 (mid-bounce)
256
+ * ```
86
257
  */
87
258
  export declare function BounceEaseOut(a: number, b: number, t: number): number;
88
259
  /**
89
- * Catmull-Rom spline interpolation between 4 points
90
- * Useful for smooth curves through multiple points
260
+ * Catmull-Rom spline interpolation between four control points.
261
+ * Produces a smooth curve that passes through p1 and p2 with tangents influenced by p0 and p3.
262
+ *
263
+ * @param p0 - Previous control point (influences the tangent at p1)
264
+ * @param p1 - Start point (result when t = 0)
265
+ * @param p2 - End point (result when t = 1)
266
+ * @param p3 - Next control point (influences the tangent at p2)
267
+ * @param t - Interpolation parameter (typically [0, 1], supports extrapolation)
268
+ * @returns Smoothly interpolated value along the Catmull-Rom spline
269
+ *
270
+ * @example
271
+ * ```typescript
272
+ * CatmullRomInterpolation(0, 5, 10, 15, 0) // 5 (at p1)
273
+ * CatmullRomInterpolation(0, 5, 10, 15, 1) // 10 (at p2)
274
+ * CatmullRomInterpolation(0, 5, 10, 15, 0.5) // 7.5
275
+ * ```
91
276
  */
92
277
  export declare function CatmullRomInterpolation(p0: number, p1: number, p2: number, p3: number, t: number): number;
93
278
  /**
94
- * Hermite interpolation with tangent control
95
- * Provides precise control over curve tangents at endpoints
279
+ * Hermite spline interpolation with explicit tangent control.
280
+ * Provides precise control over the curve's tangent at both the start and end points.
281
+ *
282
+ * @param p0 - Start point (result when t = 0)
283
+ * @param p1 - End point (result when t = 1)
284
+ * @param t0 - Tangent (velocity) at the start point
285
+ * @param t1 - Tangent (velocity) at the end point
286
+ * @param t - Interpolation parameter (typically [0, 1], supports extrapolation)
287
+ * @returns Interpolated value along the Hermite spline
288
+ *
289
+ * @example
290
+ * ```typescript
291
+ * HermiteInterpolation(0, 10, 0, 0, 0) // 0 (at start)
292
+ * HermiteInterpolation(0, 10, 0, 0, 1) // 10 (at end)
293
+ * HermiteInterpolation(0, 10, 0, 0, 0.5) // 5 (flat tangents → same as LERP at midpoint)
294
+ * ```
96
295
  */
97
296
  export declare function HermiteInterpolation(p0: number, p1: number, t0: number, t1: number, t: number): number;
98
297
  /**
99
- * Circular ease-in interpolation
100
- * Creates an accelerating curve based on quarter circle
298
+ * Circular ease-in interpolation (1 − √(1−t²)).
299
+ * Creates an accelerating curve based on the first quarter of a circle.
300
+ *
301
+ * @param a - Start value (result when t = 0)
302
+ * @param b - End value (result when t = 1)
303
+ * @param t - Interpolation parameter — clamped to [0, 1] for a valid circular arc
304
+ * @returns Interpolated value with circular acceleration from start
305
+ *
306
+ * @example
307
+ * ```typescript
308
+ * CircularEaseIn(0, 10, 0) // 0
309
+ * CircularEaseIn(0, 10, 1) // 10
310
+ * CircularEaseIn(0, 10, 0.5) // ~1.34 (very slow start along circular arc)
311
+ * ```
101
312
  */
102
313
  export declare function CircularEaseIn(a: number, b: number, t: number): number;
103
314
  /**
104
- * Circular ease-out interpolation
105
- * Creates a decelerating curve based on quarter circle
315
+ * Circular ease-out interpolation (√(1−(t−1)²)).
316
+ * Creates a decelerating curve based on the first quarter of a circle.
317
+ *
318
+ * @param a - Start value (result when t = 0)
319
+ * @param b - End value (result when t = 1)
320
+ * @param t - Interpolation parameter — clamped to [0, 1] for a valid circular arc
321
+ * @returns Interpolated value with circular deceleration toward end
322
+ *
323
+ * @example
324
+ * ```typescript
325
+ * CircularEaseOut(0, 10, 0) // 0
326
+ * CircularEaseOut(0, 10, 1) // 10
327
+ * CircularEaseOut(0, 10, 0.5) // ~8.66 (very fast start along circular arc)
328
+ * ```
106
329
  */
107
330
  export declare function CircularEaseOut(a: number, b: number, t: number): number;
108
331
  /**
109
- * Quadratic ease-in-out interpolation (2t² for t<0.5, 1−(−2t+2)²/2 for t≥0.5)
110
- * Symmetrically accelerates at the start and decelerates at the end
332
+ * Quadratic ease-in-out interpolation (2t² for t < 0.5, 1 (−2t+2)²/2 for t 0.5).
333
+ * Symmetrically accelerates at the start and decelerates at the end.
334
+ *
335
+ * @param a - Start value (result when t = 0)
336
+ * @param b - End value (result when t = 1)
337
+ * @param t - Interpolation parameter (typically [0, 1])
338
+ * @returns Interpolated value with quadratic symmetric easing
339
+ *
340
+ * @example
341
+ * ```typescript
342
+ * QuadraticEaseInOut(0, 10, 0) // 0
343
+ * QuadraticEaseInOut(0, 10, 1) // 10
344
+ * QuadraticEaseInOut(0, 10, 0.25) // 1.25 (slow start)
345
+ * QuadraticEaseInOut(0, 10, 0.75) // 8.75 (slow end)
346
+ * ```
111
347
  */
112
348
  export declare function QuadraticEaseInOut(a: number, b: number, t: number): number;
113
349
  /**
114
- * Cubic ease-in-out interpolation (4t³ for t<0.5, 1−(−2t+2)³/2 for t≥0.5)
115
- * More pronounced symmetrical acceleration/deceleration than quadratic
350
+ * Cubic ease-in-out interpolation (4t³ for t < 0.5, 1 (−2t+2)³/2 for t 0.5).
351
+ * More pronounced symmetrical acceleration/deceleration than quadratic ease-in-out.
352
+ *
353
+ * @param a - Start value (result when t = 0)
354
+ * @param b - End value (result when t = 1)
355
+ * @param t - Interpolation parameter (typically [0, 1])
356
+ * @returns Interpolated value with cubic symmetric easing
357
+ *
358
+ * @example
359
+ * ```typescript
360
+ * CubicEaseInOut(0, 10, 0) // 0
361
+ * CubicEaseInOut(0, 10, 1) // 10
362
+ * CubicEaseInOut(0, 10, 0.25) // 0.625 (very slow start)
363
+ * CubicEaseInOut(0, 10, 0.75) // 9.375 (very slow end)
364
+ * ```
116
365
  */
117
366
  export declare function CubicEaseInOut(a: number, b: number, t: number): number;
118
367
  /**
119
- * Sine ease-in-out interpolation (−(cos(πt)−1)/2)
120
- * Smooth symmetric easing using cosine — gentle and natural feeling
368
+ * Sine ease-in-out interpolation (−(cos(πt) 1) / 2).
369
+ * Smooth symmetric easing using cosine — gentle and natural feeling.
370
+ *
371
+ * @param a - Start value (result when t = 0)
372
+ * @param b - End value (result when t = 1)
373
+ * @param t - Interpolation parameter (typically [0, 1])
374
+ * @returns Interpolated value with sine-based symmetric easing
375
+ *
376
+ * @example
377
+ * ```typescript
378
+ * SineEaseInOut(0, 10, 0) // 0
379
+ * SineEaseInOut(0, 10, 1) // 10
380
+ * SineEaseInOut(0, 10, 0.5) // 5 (symmetric midpoint)
381
+ * ```
121
382
  */
122
383
  export declare function SineEaseInOut(a: number, b: number, t: number): number;
123
384
  /**
124
- * Exponential ease-in-out interpolation
125
- * Very slow at both ends, extremely rapid in the middle
385
+ * Exponential ease-in-out interpolation.
386
+ * Very slow at both ends with an extremely rapid transition in the middle.
387
+ *
388
+ * @param a - Start value (result when t = 0)
389
+ * @param b - End value (result when t = 1)
390
+ * @param t - Interpolation parameter (typically [0, 1])
391
+ * @returns Interpolated value with exponential symmetric easing
392
+ *
393
+ * @example
394
+ * ```typescript
395
+ * ExponentialEaseInOut(0, 10, 0) // 0
396
+ * ExponentialEaseInOut(0, 10, 1) // 10
397
+ * ExponentialEaseInOut(0, 10, 0.25) // ~0.16 (barely moving in the first quarter)
398
+ * ```
126
399
  */
127
400
  export declare function ExponentialEaseInOut(a: number, b: number, t: number): number;
128
401
  /**
129
- * Circular ease-in-out interpolation
130
- * Smooth symmetric arc-based easing
402
+ * Circular ease-in-out interpolation.
403
+ * Smooth symmetric arc-based easing using a circular curve.
404
+ *
405
+ * @param a - Start value (result when t = 0)
406
+ * @param b - End value (result when t = 1)
407
+ * @param t - Interpolation parameter (typically [0, 1])
408
+ * @returns Interpolated value with circular symmetric easing
409
+ *
410
+ * @example
411
+ * ```typescript
412
+ * CircularEaseInOut(0, 10, 0) // 0
413
+ * CircularEaseInOut(0, 10, 1) // 10
414
+ * CircularEaseInOut(0, 10, 0.25) // ~0.67 (very slow circular start)
415
+ * ```
131
416
  */
132
417
  export declare function CircularEaseInOut(a: number, b: number, t: number): number;
133
418
  /**
134
- * Elastic ease-in interpolation
135
- * Spring-like acceleration from rest — starts with a bounce-back then launches forward
419
+ * Elastic ease-in interpolation.
420
+ * Spring-like acceleration from rest — starts with a backward oscillation then launches forward.
421
+ *
422
+ * @param a - Start value (result when t = 0)
423
+ * @param b - End value (result when t = 1)
424
+ * @param t - Interpolation parameter — clamped to [0, 1] at t=0 and t=1 boundaries
425
+ * @returns Interpolated value with elastic spring acceleration from start
426
+ *
427
+ * @example
428
+ * ```typescript
429
+ * ElasticEaseIn(0, 10, 0) // 0
430
+ * ElasticEaseIn(0, 10, 1) // 10
431
+ * ElasticEaseIn(0, 10, 0.5) // ~-0.16 (backward oscillation at midpoint before launching)
432
+ * ```
136
433
  */
137
434
  export declare function ElasticEaseIn(a: number, b: number, t: number): number;
138
435
  /**
139
- * Elastic ease-in-out interpolation
140
- * Spring-like oscillation at both the start and end
436
+ * Elastic ease-in-out interpolation.
437
+ * Spring-like oscillation at both the start and end of the motion.
438
+ *
439
+ * @param a - Start value (result when t = 0)
440
+ * @param b - End value (result when t = 1)
441
+ * @param t - Interpolation parameter — clamped to [0, 1] at t=0 and t=1 boundaries
442
+ * @returns Interpolated value with elastic oscillation at both ends
443
+ *
444
+ * @example
445
+ * ```typescript
446
+ * ElasticEaseInOut(0, 10, 0) // 0
447
+ * ElasticEaseInOut(0, 10, 1) // 10
448
+ * ElasticEaseInOut(0, 10, 0.4) // ~-1.17 (backward oscillation before midpoint)
449
+ * ```
141
450
  */
142
451
  export declare function ElasticEaseInOut(a: number, b: number, t: number): number;
143
452
  /**
144
- * Back ease-in interpolation (c3t³ − c1t²)
145
- * Slight backward pull before launching forward
453
+ * Back ease-in interpolation (c3t³ − c1t²).
454
+ * Slight backward pull before launching forward — like winding up before a throw.
455
+ *
456
+ * @param a - Start value (result when t = 0)
457
+ * @param b - End value (result when t = 1)
458
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
459
+ * @returns Interpolated value with back overshoot at start
460
+ *
461
+ * @example
462
+ * ```typescript
463
+ * BackEaseIn(0, 10, 0) // 0
464
+ * BackEaseIn(0, 10, 1) // 10
465
+ * BackEaseIn(0, 10, 0.25) // ~-0.64 (dips below start before accelerating forward)
466
+ * ```
146
467
  */
147
468
  export declare function BackEaseIn(a: number, b: number, t: number): number;
148
469
  /**
149
- * Back ease-in-out interpolation
150
- * Slight backward pull at both ends before and after the main motion
470
+ * Back ease-in-out interpolation.
471
+ * Slight backward pull at both ends before and after the main forward motion.
472
+ *
473
+ * @param a - Start value (result when t = 0)
474
+ * @param b - End value (result when t = 1)
475
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
476
+ * @returns Interpolated value with back overshoot at both start and end
477
+ *
478
+ * @example
479
+ * ```typescript
480
+ * BackEaseInOut(0, 10, 0) // 0
481
+ * BackEaseInOut(0, 10, 1) // 10
482
+ * BackEaseInOut(0, 10, 0.25) // ~-1.00 (dips backward at start)
483
+ * ```
151
484
  */
152
485
  export declare function BackEaseInOut(a: number, b: number, t: number): number;
153
486
  /**
154
- * Bounce ease-in interpolation
155
- * Bouncing ball effect with bounces at the start before settling at the target
487
+ * Bounce ease-in interpolation.
488
+ * Bouncing ball effect at the start — multiple bounces before launching toward the target.
489
+ *
490
+ * @param a - Start value (result when t = 0)
491
+ * @param b - End value (result when t = 1)
492
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
493
+ * @returns Interpolated value with bounce effect at start
494
+ *
495
+ * @example
496
+ * ```typescript
497
+ * BounceEaseIn(0, 10, 0) // 0
498
+ * BounceEaseIn(0, 10, 1) // 10
499
+ * BounceEaseIn(0, 10, 0.5) // ~2.34 (still bouncing at midpoint)
500
+ * ```
156
501
  */
157
502
  export declare function BounceEaseIn(a: number, b: number, t: number): number;
158
503
  /**
159
- * Bounce ease-in-out interpolation
160
- * Bouncing ball effect at both the start and the end
504
+ * Bounce ease-in-out interpolation.
505
+ * Bouncing ball effect at both the start and end of the motion.
506
+ *
507
+ * @param a - Start value (result when t = 0)
508
+ * @param b - End value (result when t = 1)
509
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
510
+ * @returns Interpolated value with bounce effect at both start and end
511
+ *
512
+ * @example
513
+ * ```typescript
514
+ * BounceEaseInOut(0, 10, 0) // 0
515
+ * BounceEaseInOut(0, 10, 1) // 10
516
+ * BounceEaseInOut(0, 10, 0.25) // ~1.17 (bouncing at start quarter)
517
+ * ```
161
518
  */
162
519
  export declare function BounceEaseInOut(a: number, b: number, t: number): number;
163
520
  /**
164
- * Step interpolation - instant transition at threshold
165
- * Useful for discrete state changes
521
+ * Step interpolation instant transition at a configurable threshold.
522
+ * Returns `a` when `t` is below the threshold, and `b` at or above it.
523
+ * Useful for discrete state changes and on/off animations.
524
+ *
525
+ * @param a - Start value (returned when t < threshold)
526
+ * @param b - End value (returned when t ≥ threshold)
527
+ * @param t - Interpolation parameter (clamped to [0, 1])
528
+ * @param threshold - Normalized transition point (default: 0.5; clamped to [0, 1])
529
+ * @returns Either `a` or `b` depending on `t` relative to `threshold`
530
+ *
531
+ * @example
532
+ * ```typescript
533
+ * StepInterpolation(0, 10, 0.3) // 0 (below default threshold of 0.5)
534
+ * StepInterpolation(0, 10, 0.7) // 10 (at or above default threshold of 0.5)
535
+ * StepInterpolation(0, 10, 0.3, 0.25) // 10 (above custom threshold of 0.25)
536
+ * ```
166
537
  */
167
538
  export declare function StepInterpolation(a: number, b: number, t: number, threshold?: number): number;
168
539
  /**
169
- * Spherical linear interpolation for scalar values
170
- * Provides smooth interpolation along a spherical arc
171
- * Note: For true SLERP with vectors, use VectorSphericalLinearInterpolation
540
+ * Spherical linear interpolation for scalar values.
541
+ * For scalar inputs, this is mathematically equivalent to {@link LinearInterpolation}.
542
+ * For true spherical rotation interpolation, use `QuaternionSLERP` from the quaternions module.
543
+ *
544
+ * @param a - Start value (result when t = 0)
545
+ * @param b - End value (result when t = 1)
546
+ * @param t - Interpolation parameter — unclamped, allowing extrapolation
547
+ * @returns Linearly interpolated value (identical to `LinearInterpolation(a, b, t)`)
548
+ *
172
549
  * @deprecated This function is identical to LinearInterpolation and is not a true spherical interpolation. For quaternion spherical interpolation, use QuaternionSLERP from the quaternions module.
173
550
  */
174
551
  export declare function SphericalLinearInterpolation(a: number, b: number, t: number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"interpolation.d.ts","sourceRoot":"","sources":["../src/interpolation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interpolation.d.ts","sourceRoot":"","sources":["../src/interpolation.ts"],"names":[],"mappings":"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"}