Skip to content

ScenePlugin

Generic scene plugin

ScenePlugins can be attached to SceneRenderer instances. Usually they control a scene node and implement simple tasks that can be separated from main rendering context. For example, make a scene node follow (be attached to) person’s head, or make node an occluder, or create face mesh node and set texture as a mask. On load() plugin prepares or modifies the attached node if required and reference to the scene object is cached to be used in update() and unload(); update() implements main logic and updates the scene node according to provided results.

ResultT extends object = { }

Type of processing results

SceneT = undefined

Type of renderer’s scene

new ScenePlugin<ResultT, SceneT>(): ScenePlugin<ResultT, SceneT>

Constructor

ScenePlugin<ResultT, SceneT>

Plugin.constructor

loaded: boolean = false

Loaded state

Plugin.loaded


ordinal: number = PluginOrdinal.Render

Ordinal number

Plugin.ordinal


protected optional renderer: Renderer<ResultT>

Renderer loaded the plugin

Plugin.renderer


protected optional scene: SceneT

Reference to a scene instance

dispose(): void

Dispose video plugin

void

Plugin.dispose


load(renderer): Promise<void>

Initialize plugin

Prepares or modifies the attached node if required. Reference to the scene object is cached and used by plugin on update() and unload(). You need to reload plugin if you want to change scene it’s attached to.

Renderer<ResultT>

Renderer this plugin is attached to

Promise<void>

Promise resolving when initialization is finished

Plugin.load


setupCamera(ratio, angle): void

Set camera parameters

Could be overridden to adjust plugin’s pipeline.

number

Aspect ration of input video

number

Vertical field of view in radians

void

Plugin.setupCamera


setupVideo(size): void

Set video size

Could be overridden to adjust plugin’s pipeline.

Size

Resolution of input video

void

Plugin.setupVideo


unload(): void

Reset plugin

Releases all resources allocated in load(). Deletes cached reference to the scene object.

void

Plugin.unload


update(result, stream): Promise<void>

Update

Main method implementing the logic of the plugin. Overridden by derived classes for particular task.

ResultT

Results of video processing

HTMLCanvasElement

Captured video frame

Promise<void>

Promise resolving when update is finished

Plugin.update