Mirror Engine
V7
How To
Mirror Engine Logo

Mirror Engine API


Mirror Engine API / Color

Class: Color

An RGBA color.

Each color component is a floating point value in the range 0 to 1. The r (red), g (green) and b (blue) components define a color in RGB color space. The a (alpha) component defines transparency. An alpha of 1 is fully opaque. An alpha of 0 is fully transparent.

Constructors

new Color()

new Color(
   r?: number | number[],
   g?: number,
   b?: number,
   a?: number): Color

Create a new Color object.

Parameters

r?

The value of the red component (0-1). Defaults to 0. If r is an array of length 3 or 4, the array will be used to populate all components.

number | number[]

g?

number = 0

The value of the green component (0-1). Defaults to 0.

b?

number = 0

The value of the blue component (0-1). Defaults to 0.

a?

number = 1

The value of the alpha component (0-1). Defaults to 1.

Returns

Color

Properties

a

a: number

The alpha component of the color.


b

b: number

The blue component of the color.


g

g: number

The green component of the color.


r

r: number

The red component of the color.


BLACK

readonly static BLACK: Color;

A constant color set to black [0, 0, 0, 1].


BLUE

readonly static BLUE: Color;

A constant color set to blue [0, 0, 1, 1].


CYAN

readonly static CYAN: Color;

A constant color set to cyan [0, 1, 1, 1].


GRAY

readonly static GRAY: Color;

A constant color set to gray [0.5, 0.5, 0.5, 1].


GREEN

readonly static GREEN: Color;

A constant color set to green [0, 1, 0, 1].


MAGENTA

readonly static MAGENTA: Color;

A constant color set to magenta [1, 0, 1, 1].


RED

readonly static RED: Color;

A constant color set to red [1, 0, 0, 1].


WHITE

readonly static WHITE: Color;

A constant color set to white [1, 1, 1, 1].


YELLOW

readonly static YELLOW: Color;

A constant color set to yellow [1, 1, 0, 1].

Methods

clone()

clone(): Color

Returns a clone of the specified color.

Returns

Color

A duplicate color object.


copy()

copy(rhs: Color): Color

Copies the contents of a source color to a destination color.

Parameters

rhs

Color

A color to copy to the specified color.

Returns

Color

Self for chaining.

Example

const src = new Color(1, 0, 0, 1)
const dst = new Color()

dst.copy(src)

console.log('The two colors are ' + (dst.equals(src) ? 'equal' : 'different'))

equals()

equals(rhs: Color): boolean

Reports whether two colors are equal.

Parameters

rhs

Color

The color to compare to the specified color.

Returns

boolean

True if the colors are equal and false otherwise.

Example

const a = new Color(1, 0, 0, 1)
const b = new Color(1, 1, 0, 1)
console.log('The two colors are ' + (a.equals(b) ? 'equal' : 'different'))

fromArray()

fromArray(arr: number[], offset?: number): Color

Set the values of the vector from an array.

Parameters

arr

number[]

The array to set the vector values from.

offset?

number = 0

The zero-based index at which to start copying elements from the array. Default is 0.

Returns

Color

Self for chaining.

Example

const c = new Color()
c.fromArray([
  1,
  0,
  1,
  1
])
// c is set to [1, 0, 1, 1]

fromString()

fromString(hex: string): Color

Set the values of the color from a string representation '#11223344' or '#112233'.

Parameters

hex

string

A string representation in the format '#RRGGBBAA' or '#RRGGBB'. Where RR, GG, BB, AA are red, green, blue and alpha values. This is the same format used in HTML/CSS.

Returns

Color

Self for chaining.


gamma()

gamma(src?: Color): Color

Converts the color from linear to gamma color space.

Parameters

src?

Color = ...

The color to convert to gamma color space. If not set, the operation is done in place.

Returns

Color

Self for chaining.


lerp()

lerp(
   lhs: Color,
   rhs: Color,
   alpha: number): Color

Returns the result of a linear interpolation between two specified colors.

Parameters

lhs

Color

The color to interpolate from.

rhs

Color

The color to interpolate to.

alpha

number

The value controlling the point of interpolation. Between 0 and 1, the linear interpolant will occur on a straight line between lhs and rhs. Outside of this range, the linear interpolant will occur on a ray extrapolated from this line.

Returns

Color

Self for chaining.

Example

const a = new Color(0, 0, 0)
const b = new Color(1, 1, 0.5)
const r = new Color()

r.lerp(a, b, 0) // r is equal to a
r.lerp(a, b, 0.5) // r is 0.5, 0.5, 0.25
r.lerp(a, b, 1) // r is equal to b

linear()

linear(src?: Color): Color

Converts the color from gamma to linear color space.

Parameters

src?

Color = ...

The color to convert to linear color space. If not set, the operation is done in place.

Returns

Color

Self for chaining.


mulScalar()

mulScalar(scalar: number): Color

Multiplies RGB elements of a Color by a number. Note that the alpha value is left unchanged.

Parameters

scalar

number

The number to multiply by.

Returns

Color

Self for chaining.


set()

set(
   r: number,
   g: number,
   b: number,
   a?: number): Color

Assign values to the color components, including alpha.

Parameters

r

number

The value for red (0-1).

g

number

The value for blue (0-1).

b

number

The value for green (0-1).

a?

number = 1

The value for the alpha (0-1), defaults to 1.

Returns

Color

Self for chaining.


toArray()

toArray(
   arr?: number[],
   offset?: number,
   alpha?: boolean): number[]

Converts the color to an array of numbers.

Parameters

arr?

number[] = []

The array to populate with the color components. If not specified, a new array is created. Default is true.

offset?

number = 0

The zero-based index at which to start copying elements to the array. Default is 0.

alpha?

boolean = true

If true, the output array will include the alpha value.

Returns

number[]

The color as an array of numbers.

Example

const c = new Color(1, 1, 1)
// Outputs [1, 1, 1, 1]
console.log(c.toArray())

toString()

toString(alpha: boolean, asArray?: boolean): string

Converts the color to string form. The format is '#RRGGBBAA', where RR, GG, BB, AA are the red, green, blue and alpha values. When the alpha value is not included (the default), this is the same format as used in HTML/CSS.

Parameters

alpha

boolean

If true, the output string will include the alpha value.

asArray?

boolean

If true, the output will be an array of numbers. Defaults to false.

Returns

string

The color in string form.

Example

const c = new Color(1, 1, 1)
// Outputs #ffffffff
console.log(c.toString())
Mirror Engine Logo