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