Color

Класс, представляющий цветовое значение (RGB).

Перечисление Color выдаёт его компоненты (r, g, b) в том же порядке.

Примеры

Цвет может быть инициализирован любым из следующих способов:

// пустой конструктор - по умолчанию будет белым const color1 = new v3d.Color(); // шестнадцатеричный цвет (рекомендуется) const color2 = new v3d.Color(0xff0000); // RGB-строка const color3 = new v3d.Color("rgb(255, 0, 0)"); const color4 = new v3d.Color("rgb(100%, 0%, 0%)"); // имя цвета CSS - поддерживаются все 140 цветов const color5 = new v3d.Color('skyblue'); // строка HSL const color6 = new v3d.Color("hsl(0, 100%, 50%)"); // значения RGB между 0 и 1 const color7 = new v3d.Color(1, 0, 0);

Конструктор

Color(r : Color_Hex_or_String, g : Float, b : Float)

Обратите внимание, что стандартным методом указания цвета в «Вердж3Д» является шестнадцатеричный триплет, и этот метод используется во всей остальной документации.

Если все аргументы определены, то r — это красный компонент, g — зеленый компонент и b — синий компонент цвета.

Когда определен только r:

Свойства

.isColor : Boolean

Указывает, что объект является экземпляром класса Color. Только для чтения.

.r : Float

Значение красного канала от 0 до 1. По умолчанию 1.

.g : Float

Значение зеленого канала от 0 до 1. По умолчанию 1.

.b : Float

Значение синего канала от 0 до 1. По умолчанию 1.

Методы

.add(color : Color) → Color

Добавляет значения RGB из color к значениям RGB текущего цвета.

.addColors(color1 : Color, color2 : Color) → Color

Устанавливает значения RGB текущего цвета в сумму значений RGB color1 и color2.

.addScalar(s : Float) → Color

Добавляет s к значениям RGB текущего цвета.

.clone() → Color

Возвращает новый цвет с теми же значениями r, g и b, что и данный.

.copy(color : Color) → Color

Копирует параметры r, g и b из color в этот цвет.

.convertLinearToSRGB() → Color

Преобразует данный цвет из линейного пространства в пространство sRGB.

.convertSRGBToLinear() → Color

Преобразует данный цвет из пространства sRGB в линейное пространство.

.copyLinearToSRGB(color : Color]) → Color

color — цвет для копирования.

Копирует заданный цвет в этот цвет, а затем преобразует этот цвет из линейного пространства в пространство sRGB.

.copySRGBToLinear(color : Color) → Color

color — цвет для копирования.

Копирует заданный цвет в этот цвет, а затем преобразует этот цвет из пространства sRGB в линейное пространство.

.equals(color : Color) → Boolean

Сравнивает RGB-значения color со значениями данного объекта. Возвращает true, если они одинаковы, false в противном случае.

.fromArray(array : Array, offset : Integer) → Color

Устанавливает компоненты текущего цвета на основе массива, отформатированного как [r, g, b].

.fromBufferAttribute(attribute : BufferAttribute, index : Integer) → this

Устанавливает компоненты текущего цвета из атрибута BufferAttribute.

.getHex(colorSpace : String = SRGBColorSpace) → Integer

Устанавливает компоненты текущего цвета из атрибута BufferAttribute.

.getHexString() → String

Возвращает шестнадцатеричное значение текущего цвета в виде строки (например, 'FFFFFF').

.getHSL(target : Object, colorSpace : String = LinearSRGBColorSpace) → Object

target — результат будет скопирован в этот объект. Добавляет ключи h, s и l к объекту (если они еще не присутствуют).

Преобразует значения r, g и b текущего цвета в формат HSL и возвращает объект вида:

{ h: 0, s: 0, l: 0 }

.getStyle(colorSpace : String = SRGBColorSpace) → String

Возвращает значение текущего цвета в виде строки стиля CSS, например rgb(255,0,0).

.lerp(color : Color, alpha : Float) → Color

Линейно интерполирует значения RGB текущего цвета к значениям RGB переданного аргумента. Аргумент alpha можно представить как соотношение между двумя цветами, где 0.0 - данный цвет, а 1.0 - первый аргумент.

.lerpColors(color1 : Color, color2 : Color, alpha : Float) → this

Устанавливает текущий цвет как результат интерфоляции между color1 и color2 где alpha процентное расстояние вдоль линии, соединяющей два цвета - alpha = 0 станет color1, а alpha = 1 станет color2.

.lerpHSL(color : Color, alpha : Float) → Color

Линейно интерполирует значения HSL текущего цвета к значениям HSL переданного аргумента. Он отличается от классического .lerp тем, что не интерполирует прямо от одного цвета к другому, а проходит через все оттенки между этими двумя цветами. Аргумент alpha можно представить как соотношение между двумя цветами, где 0.0 - этот цвет, а 1.0 - первый аргумент.

.multiply(color : Color) → Color

Умножает значения RGB текущего цвета на значения RGB данного color.

.multiplyScalar(s : Float) → Color

Умножает значения RGB текущего цвета на s.

.offsetHSL(h : Float, s : Float, l : Float) → Color

Добавляет заданные значения h, s и l к значениям текущего цвета. Внутренне это преобразует значения r, g и b цвета в HSL, добавляет h, s и l, а затем преобразует цвет обратно в RGB.

.set(value : Color_Hex_or_String) → Color

value — значение для установки текущего цвета.

Смотрите конструктор выше для получения полной информации о том, чем может быть value. Делегирует .copy, .setStyle или .setHex в зависимости от типа ввода.

.setHex(hex : Integer) → Color

hexшестнадцатеричный триплет формат.

Устанавливает этот цвет из шестнадцатеричного значения.

.setHSL(h : Float, s : Float, l : Float) → Color

Устанавливает цвет из значений HSL.

.setRGB(r : Float, g : Float, b : Float) → Color

Устанавливает данный цвет из значений RGB.

.setScalar(scalar : Float) → Color

scalar — значение между 0.0 и 1.0.

Устанавливает все три цветовых компонента в значение scalar.

.setStyle(style : String) → Color

style — цвет как строка CSS-стиля.

Устанавливает этот цвет из строки CSS-стиля. Например,

или любого имени цвета X11 [link:https://ru.wikipedia.org/wiki/Список_цветов_в_X11] - поддерживаются все 140 названий цветов).

Полупрозрачные цвета, такие как "rgba(255, 0, 0, 0, 0.5)" и "hsla(0, 100%, 50%, 0.5)" также принимаются, но координата альфа-канала будет отброшена.

Обратите внимание, что для названий цветов X11 несколько слов, таких как Dark Orange, превращаются в строку 'darkorange' (все строчные буквы).

.setColorName(style : String) → Color

style — название цвета (из X11 названий цветов).

Устанавливает этот цвет из имени цвета. Быстрее, чем метод .setStyle, если вам не нужны другие форматы CSS-стилей.

Для удобства список имен представлен в Color.NAMES в виде хэша:

Color.NAMES.aliceblue // returns 0xF0F8FF

.sub(color : Color) → Color

Вычитает компоненты RGB данного цвета из компонентов RGB текущего цвета. Если в результате получается отрицательный компонент, он устанавливается равным нулю.

.toArray(array : Array, offset : Integer) → Array

Возвращает массив вида [r, g, b].

Исходный файл

О том как получить исходный код этого модуля читайте тут.