@thi.ng/shader-ast-stdlib
Version:
Function collection for modular GPGPU / shader programming with @thi.ng/shader-ast
65 lines • 2.05 kB
TypeScript
import type { Prim, PrimTerm, Term, TermType } from "@thi.ng/shader-ast";
/**
* Returns normalized value of `x` WRT to interval `[a,b]`. Returns 0, if `a`
* equals `b`.
*
* @param x -
* @param a -
* @param b -
*/
export declare const fitNorm1: import("@thi.ng/shader-ast").TaggedFn3<"float", "float", "float", "float">;
/**
* Similar to {@link fitNorm1} but also for vector types and without checking if
* `a == b`. Scales value `x` from closed interval `[a,b]` to closed `[0,1]`
* interval. No clamping performed.
*
* @param x
* @param a
* @param b
*/
export declare const fitNorm: <T extends Prim>(x: Term<T>, a: Term<T>, b: Term<T>) => import("@thi.ng/shader-ast").Op2<T>;
/**
* Fits value `x` from closed interval `[a,b]` to closed interval `[c,d]`. No
* clamping performed.
*
* @param x -
* @param a -
* @param b -
* @param c -
* @param d -
*/
export declare const fit: <T extends Prim>(x: Term<T>, a: Term<T>, b: Term<T>, c: Term<T>, d: Term<T>) => import("@thi.ng/shader-ast").FnCall<T>;
/**
* Same as {@link fit}, but first clamps `x` to closed `[a,b]` interval.
*
* @param x -
* @param a -
* @param b -
* @param c -
* @param d -
*/
export declare const fitClamped: <T extends Prim>(x: Term<T>, a: Term<T>, b: Term<T>, c: Term<T>, d: Term<T>) => import("@thi.ng/shader-ast").FnCall<T>;
/**
* Inline function. Fits value `a` in `[0,1]` interval to new interval `[b,c]`.
* No clamping performed. Same as `mix(b, c, a)`
*
* @param a -
* @param b -
* @param c -
*/
export declare const fit01: <T extends Prim>(a: Term<T>, b: Term<T>, c: Term<T>) => Term<T>;
/**
* Inline function. Fits value `x` in `[-1,1]` interval to `[0,1]` interval. No
* clamping performed.
*
* @param x -
*/
export declare const fit1101: <T extends PrimTerm>(x: T) => Term<TermType<T>>;
/**
* Inline function. Fits value `x` in `[0,1]` interval to `[-1,1]` interval. No
* clamping performed.
*
* @param x -
*/
export declare const fit0111: <T extends PrimTerm>(x: T) => Term<TermType<T>>;
//# sourceMappingURL=fit.d.ts.map