Перейти к основному содержимому

class

Buffer

Используется для хранения и подготовки данных для передачи в атрибуты шейдера

new constructor(initData, options?, isElementArray)
Parameters
initData
number|TypedArray|ArrayBuffer|DataView

Данные для инита буфера: содержимое буфера или его размер

options?
Partial<BufferBindOptions>

Параметры передачи буфера в видеокарту, могут быть переопределены из BufferChannel

isElementArray
boolean

Флаг определяющий является ли буффер индексным (если true) или повертексным (если false)

Returns
Buffer<>
Methods
bind(gl, location?, options?, instancesExt?, locationsCount?)

Связывает данные с контекстом WebGL.

В случае Buffer.ArrayBuffer связывает с атрибутами шейдера. А в случае Buffer.ElementArrayBuffer связывает массив индексов.

Если используется первый раз, добавляет данные в контекст WebGL.

Parameters
gl

Контекст WebGL

location?
null|number

Положение аттрибута для связывания данных с переменными в шейдере

options?

Параметры передаваемые в функцию vertexAttribPointer, если их нет, то используются параметры конкретного буфера. Параметры должны быть переданы все.

instancesExt?
null|ANGLE_instanced_arrays

Экстеншн для работы с instanced буферами,

locationsCount?
number

Количество слотов необходимых атрибуту. По умолчанию равен 1.

Returns
Buffer<>
remove

Удаляет данные из контекста WebGL.

Returns
Buffer<>
subData(gl, index, data)

Заменяет часть буфера новыми данными и отправляет их в видеокарту

Parameters
gl
WebGLRenderingContext
index
number

Индекс, с которого начать замену

data
TypedArray

Новые данные

Returns
Buffer<>

BufferChannel

Класс BufferChannel используется, если данные в обычном буфере имееют разные типы и предназначены для разных атрибутов шейдера, т.е. нужно использовать webgl параметры stride и offset. При инициализации классу передаётся Buffer . Несколько BufferChannel могут использовать один и тот же Buffer. Во время рендеринга BufferChannel связывает полученный буфер с нужными параметрами.

@param [object Object] @param

new constructor(buffer, options)
Parameters
buffer
Buffer<>
options
Returns
BufferChannel<>
Methods
bind(gl, location, options?, instancesExt?, locationsCount?)

Связывает данные с контекстом WebGL с нужными параметрами. Вызывает Buffer#bind исходного буфера.

Parameters
gl
location
number
options?
instancesExt?
ANGLE_instanced_arrays
locationsCount?
number
Returns
void

Deck2gisLayer

A class that provides rendering any deck.gl layer inside the MapGl canvas / WebGL context.

new constructor(props)

Example:

const deckLayer = new mapgl.Deck2gisLayer(map, Deck, {
id: 'deckLayer',
deck,
type: HexagonLayer,
data,
getPosition: (d) => [d.point.lon, d.point.lat]
});

map.addLayer(deckLayer);
Parameters
props
LayerProps<LayerT>
Returns
Deck2gisLayer<LayerT>
Methods
initDeck(map, Deck, deckProps?)

Initializes deck.gl instance for working with the MapGL map.

Parameters
map
Map<>

The map instance.

Deck
any

The Deck.gl class

deckProps?

CustomRenderProps initialization options.

Returns
default<>
destroy

Destroys the layer and frees all related resources.

Returns
void
setProps(props)

Sets layer properties and updates the layer.

Parameters
props
Partial<LayerProps<LayerT>>

deck.gl layer properties.

Returns
void

Object3D

Базовый класс для 3D объектов.

new constructor
Returns
Object3D<>
Methods
add(object)

Добавляет дочерний объект

Parameters
object
Object3D<>

Дочерний объект

Returns
Object3D<>
getWorldPosition

Возвращает позицию объекта относительно глобальных координат.

Returns
Vec3
remove(object)

Убирает дочерний объект

Parameters
object
Object3D<>

Дочерний объект

Returns
Object3D<>
render

Вызывается рендером для подготовки и отрисовки объекта.

Returns
Object3D<>
traverse(callback)

Вызывает переданный callback для себя и для каждого дочернего класса.

Parameters
callback
(obj: Object3D<>) => void
Returns
Object3D<>
traverseVisible(callback)

Работает также как и Object3D#traverse , но только для объектов с visible = true

Parameters
callback
(obj: Object3D<>) => void
Returns
Object3D<>
updateLocalMatrix

Обновляет локальную матрицу объекта. Необходимо использовать каждый раз после изменения position, scale и quaternion.

Returns
Object3D<>
updateWorldMatrix

Обновляет глобальную матрицу объекта.

Returns
Object3D<>

Renderer

Используется для инициализация WebGL контекста и отрисовки объектов. Для некоторых объектов может использовать специфичные рендеры.

@param @param [object Object] @param [object Object] @param [object Object] @param [object Object] @param [object Object] @param [object Object] @param [object Object]

new constructor(options)
Parameters
options
RendererOptions
Returns
Renderer<>
Methods
addExtension(name)

Включает расширение WebGL

Parameters
name
string

Название расширения

Returns
Renderer<>
getPixelRatio

Возвращает текущий pixel ratio

@returns

Returns
number
getSize

Возвращает текущий viewport WebGL

@returns

Returns
Vec2
setPixelRatio(value)

Устанавливает параметр pixel ratio

Parameters
value
number
Returns
Renderer<>
setSize(width, height)

Устанавливает размеры элементу canvas и viewport для WebGL

Parameters
width
number

Ширина в пикселях

height
number

Высота в пикселях

Returns
Renderer<>
setViewport(width?, height?)

Устанавливает viewport для WebGL Если размеры не указаны, то выставляет размеры указанные в функции Renderer#setSize

Parameters
width?
number

Ширина в пикселях

height?
number

Высота в пикселях

Returns
Renderer<>

RenderTarget

Используется для создания фреймбуфера, куда можно отрендерить кадр.

new constructor(options)
Parameters
options
Partial<RenderTargetOptions>
Returns
RenderTarget<>
Methods
bind(gl)

Связывает компоненты с контекстом WebGL

Parameters
gl
Returns
RenderTarget<>
getDepthBuffer

Возвращает текущие буфер или текстуру глубины фреймбуфера

Returns
null|Texture<>|WebGLRenderbuffer
getTexture

Возвращает текущую текстуру фреймбуфера

Returns
null|Texture<>
remove

Удаляет фреймбуфер из видеокарты

Returns
RenderTarget<>
setSize(size)

Устанавливает размер фреймбуферу

Parameters
size
Vec2
Returns
RenderTarget<>
unbind(gl)

Устанавливает пустой фреймбуфер у контекста WebGL

Parameters
gl
Returns
RenderTarget<>

Shader

Шейдер компилирует код и хранит его в видеокарте. Один шейдер может быть использован для нескольких программ.

@param [object Object] @param [object Object] @param [object Object]

new constructor(type, code, definitions)
Parameters
type
string
code
string|string[]
definitions
Returns
Shader<>
Methods
get(gl, externalDefinitions?)

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

Parameters
gl

Контекст WebGL

externalDefinitions?

Внешние #define, которые могут перезаписать существующие определения

Returns
null|WebGLShader
getCode

Возвращает текстовый код шейдера

Returns
string
remove(gl)

Удаляет шейдер из видеокарты

Parameters
gl

Контекст WebGl

Returns
void

ShaderAttribute

Шейдерный атрибут, используется только ShaderProgram

@param [object Object]

new constructor(options)
Parameters
options
Returns
ShaderAttribute<>
Methods
bind(gl, buffer)
Parameters
gl
buffer
Buffer<>|BufferChannel<>
Returns
ShaderAttribute<>
bindLocation(gl, shaderProgram)
Parameters
gl
shaderProgram
WebGLProgram
Returns
ShaderAttribute<>
disable(gl)
Parameters
gl
Returns
ShaderAttribute<>
getLocation(gl, shaderProgram)
Parameters
gl
shaderProgram
WebGLProgram
Returns
ShaderAttribute<>

ShaderProgram

Шейдерная программа инициализирует шейдеры, подготавливает и связывает данные с WebGL.

@param @param [object Object] @param [object Object] @param [object Object] @param [object Object]

new constructor(options)
Parameters
options
Returns
ShaderProgram<>
Methods
bind(gl, uniforms?, attributes?)

Связывает юниформы и атрибуты программы с контекстом WebGl

Parameters
gl
uniforms?
Record<string, any>

Key-value объект содержащий значения юниформ

attributes?
Record<string, Buffer<>|BufferChannel<>>

Key-value объект содержащий значения атрибутов

Returns
ShaderProgram<>
disable(gl)

Выключает программу

Parameters
gl
Returns
ShaderProgram<>
enable(gl, externalDefinitions?)

Инициализирует программу с контекстом WebGl

Parameters
gl
externalDefinitions?
Returns
ShaderProgram<>
locate(gl)

Лоцирует атрибуты и юниформе на основе шейдера. Одна из двух необходимых функций для работы шейдерной программы.

Parameters
gl
Returns
ShaderProgram<>

Texture

Текстуры используются для отрисовки изображений в WebGL

new constructor(src?, options)
Parameters
src?
null|TexImageSource|ArrayBufferView

В качестве изображения может быть либо элемент img, либо canvas

options
TextureOptions|Record<string, unknown>
Returns
Texture<>
Methods
enable(gl, index?)

Связывает WebGL и данные текстуры. При первом вызов происходит инициализация.

Parameters
gl
index?
number

Номер текстуры в контексте WebGL. Если его нет, используется уже активированный юнит текстуры.

Returns
Texture<>
getTexture

Возвращает WebGL текстуру

@returns

Returns
null|WebGLTexture
prepare(gl)

Кладёт текстуру в видеокарту

Parameters
gl
Returns
Texture<>
remove

Удаляет текстуру из видеокарты

Returns
Texture<>
subImage(gl, src, x, y)

Обновляет часть текстуры

Parameters
gl
src
TexImageSource
x
number

Горизонтальное смещение, с которого записываем в текстуру

y
number

Вертикальное смещение, с которого записываем в текстуру

Returns
Texture<>

Vao

Обертка над vertex array object. https://developer.mozilla.org/ru/docs/Web/API/OES_vertex_array_object

Для использования необходимо включить расширение renderer.addExtension('OES_vertex_array_object')

new constructor(shaderProgram, attributes, indicesBuffer)
Parameters
shaderProgram
ShaderProgram<>

Шейдерная программа, каждый Vao привязан к одной шейдерной программе.

attributes

Key-value объект содержащий данные атрибутов.

indicesBuffer
null|Buffer<>

Буффер индексов.

Returns
Vao<>
Methods
merge(vaos)
Parameters
vaos
Vao[]
Returns
Vao<>
bind(state)

Связывает vao с контекстом WebGL.

Parameters
state

Стейт рендера

Returns
Vao<>
copy

Копирует Vao

Returns
Vao<>
getElementsGLType(gl)

Возвращает GL-тип индексного буфера или null

@returns [object Object]

Parameters
gl

Gl-контекст

Returns
null|number
remove

Удаляет vao.

Returns
Vao<>
setAttribute(name, buffer)
Parameters
name
string
buffer
Buffer<>|BufferChannel<>
Returns
void
setAttributesAliases(aliases)

Карта псевдонимов вида { 'shader_att_name': 'vao_attr_name' }. Эти псевдонимы могут использоваться при связке буферов с шейдерными атрибутами в методе bind. Например, в Vao задан буфер 'texcoord_0'. В шейдере он может использоваться под именем 'texcoord_color'.

Parameters
aliases

Карта пвседонимов

Returns
void
unbind

Отвязывает vao от контекста WebGL. ВНИМАНИЕ: Этот метод нужно вызывать всегда, перед тем как будет использоваться стандартный подход для связывания атрибутов через ShaderProgram#bind .

Returns
Vao<>