Skip to content

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

Source

Source · Demo

Contributors

hairyf

Changelog

v0.1.0 on
ffc0b - feat(math): add createGenericProjection + createProjection (#16, #17)

Released under the MIT License. v0.1.8