BufferAttribute

Этот класс хранит данные для атрибутов (таких как позиции вершин, индексы граней, нормали, цвета, UV и любые пользовательские атрибуты), связанных с BufferGeometry, что позволяет более эффективно передавать данные на GPU. Подробности и пример использования см. на указанной странице.

При работе с векторными данными, также будет полезным использовать вспомогательные методы .fromBufferAttribute(attribute, index) классов Vector2, Vector3, Vector4 и Color.

Конструктор

BufferAttribute(array : TypedArray, itemSize : Integer, normalized : Boolean)

Свойства

.array : TypedArray

Типизированный массив, содержащий данные, хранящиеся в буфере.

.count : Integer

Содержит длину массива array, разделенную на itemSize.

Если в буфере хранится трехкомпонентный вектор (такой как позиция, нормаль или цвет), то подсчитывается количество таких векторов.

.isBufferAttribute : Boolean

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

.itemSize : Integer

Длина векторов, которые хранятся в массиве array.

.name : String

Необязательное имя для данного экземпляра атрибута. По умолчанию пустая строка.

.needsUpdate : Boolean

Флаг, указывающий на то, что данный атрибут изменился и должен быть повторно отправлен на GPU. Установите это значение в true при изменении значения массива.

Установка этого значения в true также увеличивает версию BufferAttribute.version.

.normalized : Boolean

Указывает, как данные в буфере отображаются на значения в коде шейдера GLSL. Подробности см. в конструкторе выше.

.onUploadCallback : Function

Функция обратного вызова, которая выполняется после того, как рендерер передал данные массива атрибутов на GPU.

.updateRange : Object

Объект, содержащий:

Это можно использовать для обновления только некоторых компонентов хранимых векторов (например, только компонента, связанного с цветом).

.usage : Usage

Определяет предполагаемую схему использования хранилища данных в целях оптимизации. Соответствует параметру usage в WebGLRenderingContext.bufferData(). По умолчанию StaticDrawUsage. Остальные значения параметра см. в разделе константы.

После первого использования буфера, параметр usage не может быть изменён. Вместо этого создайте новый и установите нужное значение параметра перед первым кадром отрисовки.

.version : Integer

Номер версии, увеличивающийся каждый раз, когда свойство needsUpdate установлено в true.

Методы

.applyMatrix3(m : Matrix3) → this

Применяет матрицу m к каждому элементу Vector3 данного BufferAttribute.

.applyMatrix4(m : Matrix4) → this

Применяет матрицу m к каждому элементу Vector3 данного BufferAttribute.

.applyNormalMatrix(m : Matrix3) → this

Применяет нормальную матрицу m к каждому элементу Vector3 данного BufferAttribute.

.transformDirection(m : Matrix4) → this

Применяет матрицу m к каждому элементу Vector3 этого BufferAttribute, интерпретируя элементы как векторы направления.

.clone() → BufferAttribute

Возвращает копию этого BufferAttribute.

.copy(bufferAttribute : BufferAttribute) → BufferAttribute

Копирует другой BufferAttribute в текущий BufferAttribute.

.copyArray(array) → BufferAttribute

Копирует указанный массив (который может быть обычным массивом или TypedArray) в свойство array.

Смотрите TypedArray.set, содержащий требования при копировании TypedArray.

.copyAt(index1 : Integer, bufferAttribute : BufferAttribute, index2 : Integer) → this

Копирует вектор из bufferAttribute[index2] в array[index1].

.getX(index : Integer) → Float

Возвращает x-компоненту вектора по заданному индексу.

.getY(index : Integer) → Float

Возвращает y-компоненту вектора по заданному индексу.

.getZ(index : Integer) → Float

Возвращает z-компоненту вектора по заданному индексу.

.getW(index : Integer) → Float

Возвращает w-компоненту вектора по заданному индексу.

.onUpload(callback : Function) → this

Устанавливает значение свойства onUploadCallback.

.set(value : Array, offset : Integer) → this

Вызывает TypedArray.set(value, offset) на массиве array.

В частности, смотрите на странице выше требования, предъявляемые к TypedArray.

.setUsage(value : Usage) → this

Устанавливает значение usage. Значения параметра см. в разделе константы.

После первого использования буфера, параметр usage не может быть изменён. Вместо этого создайте новый и установите нужное значение параметра перед первым кадром отрисовки.

.setX(index : Integer, x : Float) → this

Устанавливает x-компонент вектора по заданному индексу.

.setY(index : Integer, y : Float) → this

Устанавливает компонент y вектора по заданному индексу.

.setZ(index : Integer, z : Float) → this

Устанавливает компонент z вектора по заданному индексу.

.setW(index : Integer, w : Float) → this

Устанавливает w-компоненту вектора по заданному индексу.

.setXY(index : Integer, x : Float, y : Float) → this

Устанавливает x и y компоненты вектора по заданному индексу.

.setXYZ(index : Integer, x : Float, y : Float, z : Float) → this

Устанавливает x, y и z компоненты вектора по заданному индексу.

.setXYZW(index : Integer, x : Float, y : Float, z : Float, w : Float) → this

Устанавливает x, y, z и w компоненты вектора по заданному индексу.

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

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