Class: SceneRenderer<ResultT, SceneT>
@geenee/armature.SceneRenderer
Generic scene renderer
Extends VideoRenderer to be used with the particular WebGL engine e.g. babylon.js or three.js. Type of the scene is additional parametrization of generic. The most important feature of SceneRenderer is plugin system. Plugins written for webgl engine can be attached to SceneRenderer. Usually they perform simple rendering task that can be separated from the context, for example add object on the scene that follows (attached to) person's head or implement face mask. ScenePlugin is not very different to SceneRenderer and very much alike, but implements only one rendering task. Plugins are levels of abstraction allowing to single out ready-made helpers that are used as atomic building blocks. Another type of plugins is VideoPlugin doing the same but with input video frames, for example applying vide filter.
Type parameters
Name | Type | Description |
---|---|---|
ResultT | extends Object = {} | Type of processing results |
SceneT | undefined | Type of renderer's scene |
Hierarchy
VideoRenderer
<ResultT
>↳
SceneRenderer
Constructors
constructor
• new SceneRenderer<ResultT
, SceneT
>(params
)
Constructor
Type parameters
Name | Type |
---|---|
ResultT | extends Object = {} |
SceneT | undefined |
Parameters
Name | Type | Description |
---|---|---|
params | CanvasParams | Parameters of responsive canvas |
Overrides
Properties
cameraAngle
• Protected
cameraAngle: number
Camera vertical angle in radians
Inherited from
cameraRatio
• Protected
cameraRatio: number
Camera aspect ratio
Inherited from
canvas
• canvas: ResponsiveCanvas
Responsive canvas
Inherited from
loaded
• Protected
loaded: boolean
= false
Loaded state
Inherited from
padCtx
• Protected
padCtx: [null
| CanvasRenderingContext2D
, null
| CanvasRenderingContext2D
]
Drawing context of padding canvases
Inherited from
plugins
• Protected
plugins: (ScenePlugin
<ResultT
, SceneT
> | VideoPlugin
<ResultT
>)[] = []
Attached plugins
scene
• Protected
Optional
scene: SceneT
Renderer scene
videoCtx
• Protected
videoCtx: null
| CanvasRenderingContext2D
= null
Drawing context of video canvas layer
Inherited from
videoRatio
• Protected
videoRatio: number
Aspect ratio of input video
Inherited from
videoSize
• Protected
videoSize: Size
Resolution of input video
Inherited from
Methods
addListener
▸ addListener<E
>(event
, listener
): SceneRenderer
<ResultT
, SceneT
>
Adds the listener function to the end of the listeners array
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
listener | RendererEvents [E ] | The callback function |
Returns
SceneRenderer
<ResultT
, SceneT
>
This EventEmitter
Inherited from
addPlugin
▸ addPlugin(plugin
): Promise
<void
>
Add render plugin
Initializes the plugin if it's not loaded yet but renderer is ready. Renderer takes ownership of the plugin instance meaning it will release it when plugin is detached or renderer is disposed itself.
Parameters
Name | Type |
---|---|
plugin | ScenePlugin <ResultT , SceneT > | VideoPlugin <ResultT > |
Returns
Promise
<void
>
dispose
▸ dispose(): void
Dispose renderer object
Extended to dispose all attached plugins.
Returns
void
Overrides
emit
▸ emit<E
>(event
, ...args
): boolean
Synchronously calls each of the listeners registered for the event
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
...args | Args <RendererEvents [E ]> | Arguments passed to the listeners |
Returns
boolean
True if the event had listeners, False otherwise
Inherited from
eventNames
▸ eventNames(): (string
| symbol
)[]
List of emitter's events
Returns
(string
| symbol
)[]
List of emitter's events
Inherited from
getMaxListeners
▸ getMaxListeners(): number
Maximum number of listeners per event
Returns
number
Maximum number of listeners per event
Inherited from
listenerCount
▸ listenerCount<E
>(event
): number
The number of listeners listening to the event
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
Returns
number
Number of listeners
Inherited from
listeners
▸ listeners<E
>(event
): Function
[]
Copy of the array of listeners for the event
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
Returns
Function
[]
Copy of the listeners array
Inherited from
load
▸ load(): Promise
<void
>
Initialize renderer
Initializes all attached plugins.
Returns
Promise
<void
>
Promise resolving when initialization is finished
Overrides
off
▸ off<E
>(event
, listener
): SceneRenderer
<ResultT
, SceneT
>
Removes the listener from the listener array for the event
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
listener | RendererEvents [E ] | The callback function |
Returns
SceneRenderer
<ResultT
, SceneT
>
This EventEmitter
Inherited from
on
▸ on<E
>(event
, listener
): SceneRenderer
<ResultT
, SceneT
>
Adds the listener function to the event
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
listener | RendererEvents [E ] | The callback function |
Returns
SceneRenderer
<ResultT
, SceneT
>
This EventEmitter
Inherited from
once
▸ once<E
>(event
, listener
): SceneRenderer
<ResultT
, SceneT
>
Adds a one-time listener function for the event
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
listener | RendererEvents [E ] | The callback function |
Returns
SceneRenderer
<ResultT
, SceneT
>
This EventEmitter
Inherited from
prependListener
▸ prependListener<E
>(event
, listener
): SceneRenderer
<ResultT
, SceneT
>
Adds the listener function to the beginning of the listeners array
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
listener | RendererEvents [E ] | The callback function |
Returns
SceneRenderer
<ResultT
, SceneT
>
This EventEmitter
Inherited from
prependOnceListener
▸ prependOnceListener<E
>(event
, listener
): SceneRenderer
<ResultT
, SceneT
>
Adds a one-time listener function to the beginning of the listeners array
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
listener | RendererEvents [E ] | The callback function |
Returns
SceneRenderer
<ResultT
, SceneT
>
Inherited from
VideoRenderer.prependOnceListener
rawListeners
▸ rawListeners<E
>(event
): Function
[]
Copy of the array of listeners for the event including wrappers
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
Returns
Function
[]
Copy of the listeners array
Inherited from
removeAllListeners
▸ removeAllListeners<E
>(event?
): SceneRenderer
<ResultT
, SceneT
>
Removes all listeners, or those of the specified event
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event? | E | The name of the event |
Returns
SceneRenderer
<ResultT
, SceneT
>
This EventEmitter
Inherited from
VideoRenderer.removeAllListeners
removeAllPlugins
▸ removeAllPlugins(): void
Remove all render plugins
Renderer will dispose all plugins before detaching them.
Returns
void
removeListener
▸ removeListener<E
>(event
, listener
): SceneRenderer
<ResultT
, SceneT
>
Removes the specified listener from the listener array
Type parameters
Name | Type |
---|---|
E | extends keyof RendererEvents |
Parameters
Name | Type | Description |
---|---|---|
event | E | The name of the event |
listener | RendererEvents [E ] | The callback function |
Returns
SceneRenderer
<ResultT
, SceneT
>
This EventEmitter
Inherited from
removePlugin
▸ removePlugin(plugin
): void
Remove render plugin
Renderer will dispose the plugin before detaching it.
Parameters
Name | Type |
---|---|
plugin | ScenePlugin <ResultT , SceneT > | VideoPlugin <ResultT > |
Returns
void
setMaxListeners
▸ setMaxListeners(n
): SceneRenderer
<ResultT
, SceneT
>
Sets maximum number of listeners per event
Parameters
Name | Type | Description |
---|---|---|
n | number | Maximum number of listeners |
Returns
SceneRenderer
<ResultT
, SceneT
>
This EventEmitter
Inherited from
setMirror
▸ setMirror(mirror
): void
Set mirror mode
CanvasRenderer sets mirror mode of ResponsiveCanvas.
Parameters
Name | Type |
---|---|
mirror | boolean |
Returns
void
Inherited from
setupCamera
▸ setupCamera(ratio
, angle
): void
Set camera parameters
Some video processors statically define camera parameters from just a video resolution. In this cases setupCamera() is used to pass these static camera parameters to renderer.
Parameters
Name | Type | Description |
---|---|---|
ratio | number | Aspect ration of input video |
angle | number | - |
Returns
void
Inherited from
setupPadding
▸ setupPadding(): void
Setup padding canvases
Callback sets up size of padding canvases.
Returns
void
Inherited from
setupVideo
▸ setupVideo(size
, ratio?
): void
Set video parameters
Callback sets up size of video canvas layer.
Parameters
Name | Type | Description |
---|---|---|
size | Size | Resolution of input video |
ratio? | number | Aspect ration of input video |
Returns
void
Inherited from
unload
▸ unload(): void
Reset renderer
Resets all attached plugins.
Returns
void
Overrides
update
▸ update(result
, stream
): Promise
<void
>
Update the scene
Calls updated of all attached plugins.
Parameters
Name | Type | Description |
---|---|---|
result | ResultT | Results of video processing |
stream | HTMLCanvasElement | Captured video frame |
Returns
Promise
<void
>
Promise resolving when update is finished
Overrides
updateScene
▸ Protected
updateScene(): void
Update and render the scene
Virtual method updating and rendering the 3D scene. Overridden by implementation for underlying renderer.
Returns
void
updateVideo
▸ Protected
updateVideo(stream
): void
Update the video
Draws input video frame on corresponding canvas layer.
Parameters
Name | Type | Description |
---|---|---|
stream | HTMLCanvasElement | Captured video frame |
Returns
void