Skip to main content

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
nullTexture<>WebGLRenderbuffer

getTexture

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

Returns
nullTexture<>

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
nullWebGLShader

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
nullWebGLTexture

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
nullnumber

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<>