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

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