Skip to main content

class

Buffer

Используется для хранения и подготовки данных для передачи в атрибуты шейдера
new constructor(initData, options?, isElementArray)
Parameters
initData
numberTypedArrayArrayBufferDataView
Данные для инита буфера: содержимое буфера или его размер
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?
nullnumber
Положение аттрибута для связывания данных с переменными в шейдере
options?
Параметры передаваемые в функцию vertexAttribPointer, если их нет, то используются параметры конкретного буфера. Параметры должны быть переданы все.
instancesExt?
nullANGLE_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: ```js 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
stringstring[]
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?
nullTexImageSourceArrayBufferView
В качестве изображения может быть либо элемент img, либо canvas
options
TextureOptionsRecord<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
nullBuffer<>
Буффер индексов.
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<>