/** * Scalar linear interpolation. t is not clamped (extrapolation semantics preserved, * matches glam Vec3.lerp / wgpu-matrix). */ export declare function lerp(a: number, b: number, t: number): number; /** Squared length of a four-component numeric value. */ export declare function lengthSq4(a: ArrayLike): number; /** Normalize a four-component numeric value into a typed-array output. */ export declare function normalize4(out: Float32Array, a: ArrayLike, epsilon: number): void; /** * Exponential-decay smoothing factor for frame-rate-INDEPENDENT damping: * `1 − exp(−decayRate · dt)`. The single value the vec `smoothDamp` helpers interpolate by. * * SSOT for the smooth-nudge semantics (Bevy `StableInterpolate::smooth_nudge`, * three.js `MathUtils.damp`): the returned factor composes multiplicatively over dt — * `exp(−k·(a+b)) = exp(−k·a)·exp(−k·b)` — so one step of dt equals two steps of dt/2, the * property a naive `rate·dt` factor violates. `dt=0` → 0 (no move); `decayRate·dt → ∞` → 1 * (snap to target); `decayRate=0` → 0 (no effect). NaN propagates via Math.exp. */ export declare function smoothDecayFactor(decayRate: number, dt: number): number; /** * Scalar Catmull-Rom spline value on the segment between `b` and `c`, with `a` / `d` the * neighbor control points that set the endpoint tangents. Tension 0.5 (the Catmull-Rom * special case of a Cardinal spline, and the Bevy default). SSOT for the vec `catmullRom` * helpers — the coefficient matrix lives here once (Bevy `CubicCardinalSpline::char_matrix` * with s=0.5): * c0 = b * c1 = 0.5 (c − a) * c2 = a − 2.5 b + 2 c − 0.5 d * c3 = −0.5 a + 1.5 b − 1.5 c + 0.5 d * value = c0 + c1 t + c2 t² + c3 t³ * Interpolates the control points: t=0 → b, t=1 → c. `t` is not clamped (extrapolation * beyond the segment follows the same cubic, matching `lerp`'s unclamped semantics). */ export declare function catmullRomScalar(a: number, b: number, c: number, d: number, t: number): number; /** * Numeric clamp into the closed interval [min, max]. Returns NaN when v is NaN (NaN propagation). */ export declare function clamp(v: number, min: number, max: number): number; //# sourceMappingURL=scalar.d.ts.map