Appearance
createGenericProjection
Category
Export Size
72 B
Package
@reause/math Last Changed
5 days ago
Related
Generic version of createProjection. Accepts a custom projector function to map arbitrary type of domains.
Demo
Usage
tsx
import { createGenericProjection } from '@reause/math'
const projector = createGenericProjection(
[0, 10],
['cold', 'hot'],
(value, fromDomain, toDomain) => (value > (fromDomain[0] + fromDomain[1]) / 2 ? toDomain[1] : toDomain[0]),
)
projector(8) // 'hot'Type Declarations
ts
export type UseProjection<F, T> = (input: F) => T
export type ProjectorFunction<F, T> = (input: F, from: readonly [
F,
F
], to: readonly [
T,
T
]) => T
export function createGenericProjection<F = number, T = number>(fromDomain: readonly [
F,
F
], toDomain: readonly [
T,
T
], projector: ProjectorFunction<F, T>): UseProjection<F, T>
export function useProjection(input: number, fromDomain: readonly [
number,
number
], toDomain: readonly [
number,
number
], projector?: ProjectorFunction<number, number>): number