UNPKG

@thi.ng/arrays

Version:

Array / Arraylike utilities

63 lines 2.26 kB
import type { Fn3, Maybe, TypedArray } from "@thi.ng/api"; /** * Selectively copies all non-`mask` values from `src` into `dest` starting from * destination position `dx`. Returns `dest`. * * @remarks * Where `src` values are the same as `mask`, the corresponding `dest` values * will be left unchanged. Performs region clipping, i.e. `dx` can be outside * the `[0,dest.length)` interval. * * @example * ```ts tangle:../export/blit1d.ts * import { blit1d } from "@thi.ng/arrays"; * * console.log( * blit1d( * // dest array * [1, 1, 1, 1, 1, 1, 1, 1, 1], * // paste from index 2 * 2, * // source array * [2, 3, 2, 3, 2], * // mask value * 3 * ) * ); * //[1, 1, 2, 1, 2, 1, 2, 1, 1] * ``` * * @param dest * @param src * @param dx * @param mask */ export declare function blit1d<T extends TypedArray>(dest: T, dx: number, src: ArrayLike<number>, mask: number): T; export declare function blit1d<T>(dest: T[], dx: number, src: ArrayLike<T>, mask: T): T[]; /** * Similar to {@link blit1d}, but uses a predicate function to * determine/transform copied values. The predicate is called with the src, and * dest item values and src index. The result of that function is written to the * `dest` array. If the predicate returns `undefined`, no value will be written. * * @param dest * @param dx * @param src * @param pred */ export declare function blitPred1d<T extends TypedArray>(dest: T, dx: number, src: ArrayLike<number>, pred: Fn3<number, number, number, Maybe<number>>): T; export declare function blitPred1d<T>(dest: T[], dx: number, src: ArrayLike<T>, pred: Fn3<T, T, number, Maybe<T>>): T[]; /** * 2D version of {@link blit1d} (also with region clipping). Positions and sizes * are given as 2D vectors. * * @param dest * @param dpos * @param dsize * @param src * @param ssize * @param mask */ export declare function blit2d<T extends TypedArray>(dest: T, dpos: ArrayLike<number>, dsize: ArrayLike<number>, src: ArrayLike<number>, ssize: ArrayLike<number>, mask: number): T; export declare function blit2d<T>(dest: T[], dpos: ArrayLike<number>, dsize: ArrayLike<number>, src: ArrayLike<T>, ssize: ArrayLike<number>, mask: T): T[]; //# sourceMappingURL=blit.d.ts.map