Skip to content

@web-engine-dev/math


@web-engine-dev/math / Color

Class: Color ​

An RGBA color with components in [0, 1] range. Immutable by design - all operations return new instances.

Example ​

ts
const red = Color.red();
const blue = Color.fromHexString('#0000FF');
const custom = new Color(0.5, 0.8, 0.2, 1);
const blended = red.lerp(blue, 0.5);  // Purple

Constructors ​

Constructor ​

new Color(r?, g?, b?, a?): Color

Parameters ​

r? ​

number = 0

g? ​

number = 0

b? ​

number = 0

a? ​

number = 1

Returns ​

Color

Properties ​

a ​

readonly a: number


b ​

readonly b: number


g ​

readonly g: number


r ​

readonly r: number

Methods ​

add() ​

add(c): Color

Parameters ​

c ​

Color

Returns ​

Color


clamp() ​

clamp(): Color

Clamps all components to [0, 1].

Returns ​

Color


copyToArray() ​

copyToArray(arr, offset?): void

Parameters ​

arr ​

number[] | Float32Array<ArrayBufferLike>

offset? ​

number = 0

Returns ​

void


div() ​

div(s): Color

Parameters ​

s ​

number

Returns ​

Color


equals() ​

equals(c, epsilon?): boolean

Parameters ​

c ​

Color

epsilon? ​

number = 0

Returns ​

boolean


grayscale() ​

grayscale(): Color

Converts to grayscale using luminance.

Returns ​

Color


invert() ​

invert(): Color

Inverts the color (1 - c).

Returns ​

Color


lerp() ​

lerp(c, t): Color

Linear interpolation between colors.

Parameters ​

c ​

Color

t ​

number

Returns ​

Color


luminance() ​

luminance(): number

Computes the luminance using standard coefficients.

Returns ​

number


mul() ​

mul(s): Color

Parameters ​

s ​

number

Returns ​

Color


mulColor() ​

mulColor(c): Color

Parameters ​

c ​

Color

Returns ​

Color


premultiply() ​

premultiply(): Color

Premultiplies RGB by alpha.

Returns ​

Color


sub() ​

sub(c): Color

Parameters ​

c ​

Color

Returns ​

Color


toArray() ​

toArray(): [number, number, number, number]

Returns ​

[number, number, number, number]


toCSSString() ​

toCSSString(): string

Returns ​

string


toFloat32Array() ​

toFloat32Array(): Float32Array

Returns ​

Float32Array


toHex() ​

toHex(includeAlpha?): number

Parameters ​

includeAlpha? ​

boolean = false

Returns ​

number


toHexString() ​

toHexString(includeAlpha?): string

Parameters ​

includeAlpha? ​

boolean = false

Returns ​

string


toHSL() ​

toHSL(): [number, number, number]

Converts to HSL.

Returns ​

[number, number, number]

[h, s, l] in [0, 1] range


toHSV() ​

toHSV(): [number, number, number]

Converts to HSV.

Returns ​

[number, number, number]

[h, s, v] in [0, 1] range


toLinear() ​

toLinear(): Color

Converts from sRGB to linear color space.

Returns ​

Color


toRGBA8() ​

toRGBA8(): [number, number, number, number]

Returns ​

[number, number, number, number]


toSRGB() ​

toSRGB(): Color

Converts from linear to sRGB color space.

Returns ​

Color


toString() ​

toString(): string

Returns ​

string


toVec3() ​

toVec3(): Vec3

Returns ​

Vec3


toVec4() ​

toVec4(): Vec4

Returns ​

Vec4


withAlpha() ​

withAlpha(a): Color

Parameters ​

a ​

number

Returns ​

Color


withBlue() ​

withBlue(b): Color

Parameters ​

b ​

number

Returns ​

Color


withGreen() ​

withGreen(g): Color

Parameters ​

g ​

number

Returns ​

Color


withRed() ​

withRed(r): Color

Parameters ​

r ​

number

Returns ​

Color


black() ​

static black(): Color

Returns ​

Color


blue() ​

static blue(): Color

Returns ​

Color


cyan() ​

static cyan(): Color

Returns ​

Color


fromArray() ​

static fromArray(arr, offset?): Color

Parameters ​

arr ​

ArrayLike<number>

offset? ​

number = 0

Returns ​

Color


fromHex() ​

static fromHex(hex, format?): Color

Creates a color from a 32-bit packed integer (0xRRGGBBAA or 0xAARRGGBB).

Parameters ​

hex ​

number

format? ​

"rgba" | "argb"

Returns ​

Color


fromHexString() ​

static fromHexString(hex): Color

Creates a color from a CSS-style hex string (#RGB, #RGBA, #RRGGBB, or #RRGGBBAA).

Parameters ​

hex ​

string

CSS-style hex color string

Returns ​

Color

Color instance

Example ​

ts
const red = Color.fromHexString('#FF0000');
const green = Color.fromHexString('#0F0');  // Short form
const semiTransparent = Color.fromHexString('#FF000080');

fromHSL() ​

static fromHSL(h, s, l, a?): Color

Creates a color from HSL values.

Parameters ​

h ​

number

Hue in [0, 1]

s ​

number

Saturation in [0, 1]

l ​

number

Lightness in [0, 1]

a? ​

number = 1

Alpha in [0, 1]

Returns ​

Color


fromHSV() ​

static fromHSV(h, s, v, a?): Color

Creates a color from HSV values.

Parameters ​

h ​

number

Hue in [0, 1]

s ​

number

Saturation in [0, 1]

v ​

number

Value in [0, 1]

a? ​

number = 1

Alpha in [0, 1]

Returns ​

Color


fromRGBA8() ​

static fromRGBA8(r, g, b, a?): Color

Creates a color from 8-bit RGBA values (0-255).

Parameters ​

r ​

number

g ​

number

b ​

number

a? ​

number = 255

Returns ​

Color


fromVec3() ​

static fromVec3(v, alpha?): Color

Parameters ​

v ​

Vec3

alpha? ​

number = 1

Returns ​

Color


fromVec4() ​

static fromVec4(v): Color

Parameters ​

v ​

Vec4

Returns ​

Color


green() ​

static green(): Color

Returns ​

Color


magenta() ​

static magenta(): Color

Returns ​

Color


red() ​

static red(): Color

Returns ​

Color


transparent() ​

static transparent(): Color

Returns ​

Color


white() ​

static white(): Color

Returns ​

Color


yellow() ​

static yellow(): Color

Returns ​

Color

Proprietary software. All rights reserved.