Class: LayerSvgAnnotation

LayerSvgAnnotation

LayerSvgAnnotation provides SVG-based annotation capabilities in OpenLIME. It renders SVG elements directly on the canvas overlay, outside the WebGL context, enabling rich vector graphics annotations with interactive features.

Features:

  • SVG-based vector annotations
  • Custom styling per annotation class
  • Interactive selection
  • Shadow DOM isolation
  • Dynamic SVG transformation
  • Event handling
  • Custom update callbacks

Technical Details:

  • Uses SVG overlay for rendering
  • Handles coordinate system transformations
  • Manages DOM element lifecycle
  • Supports custom class styling
  • Implements visibility management
  • Provides selection mechanisms

new LayerSvgAnnotation( [options])

Creates a new LayerSvgAnnotation instance

Parameters:
Name Type Argument Description
options LayerSvgAnnotationOptions <optional>

Configuration options

Source:
Example
```javascript
// Create SVG annotation layer with custom classes
const annotationLayer = new OpenLIME.Layer({
  type: 'svg_annotations',
  classes: {
    'highlight': { stroke: '#ff0', label: 'Highlight' },
    'comment': { stroke: '#0f0', label: 'Comment' }
  },
  onClick: (annotation) => {
    console.log('Clicked:', annotation.label);
  },
  shadow: true
});

// Add to viewer
viewer.addLayer('annotations', annotationLayer);
```

Extends

Methods


addControl(name, value)

Adds a shader parameter control

Parameters:
Name Type Description
name string

Control identifier

value *

Initial value

Inherited From:
Overrides:
Source:
Throws:

If control already exists

Type
Error

addShaderFilter(filter)

Adds a filter to the current shader

Parameters:
Name Type Description
filter Object

Filter specification

Inherited From:
Overrides:
Source:
Throws:

If no shader is set

Type
Error

boundingBox()

Gets layer bounding box in scene coordinates

Inherited From:
Overrides:
Source:
Returns:

Bounding box

Type
BoundingBox

clearSelected()

Clears all annotation selections

Overrides:
  • LayerAnnotation#clearSelected
Source:

clearShaderFilters(name)

Removes all filters from the current shader

Parameters:
Name Type Description
name Object

Filter name

Inherited From:
Overrides:
Source:
Throws:

If no shader is set

Type
Error

getAnnotationById(id)

Retrieves an annotation by its ID

Parameters:
Name Type Description
id string

Annotation identifier

Inherited From:
Overrides:
Source:
Returns:

The found annotation or null if not found

Type
Annotation | null

getControl(name)

Gets the shader parameter control corresponding to name

Parameters:
Name Type Description
name *

The name of the control. return {*} The control

Inherited From:
Overrides:
Source:

getMode()

Gets the current shader visualization mode

Inherited From:
Overrides:
Source:
Returns:

Current mode or null if no shader

Type
string | null

getModes()

Gets available shader modes

Inherited From:
Overrides:
Source:
Returns:

Array of available modes

Type
Array.<string>

getState( [stateMask])

Gets the current layer state

Parameters:
Name Type Argument Default Description
stateMask Object <optional>
null

Optional mask to filter returned state properties

Inherited From:
Overrides:
Source:
Returns:

Current state object

Type
Object

getSvgGroupTransform(transform [, inverse])

Calculates SVG group transform string

Parameters:
Name Type Argument Default Description
transform Transform

Current view transform

inverse boolean <optional>
false

Whether to return inverse transform

Source:
Returns:

SVG transform attribute value

Type
string

interpolateControls()

Updates control interpolation

Inherited From:
Overrides:
Source:
Returns:

Whether all interpolations are complete

Type
boolean

pixelSizePerMM()

Gets pixel size in millimeters

Inherited From:
Overrides:
Source:
Returns:

Size of one pixel in mm

Type
number

removeShaderFilter(name)

Removes a filter from the current shader

Parameters:
Name Type Description
name Object

Filter name

Inherited From:
Overrides:
Source:
Throws:

If no shader is set

Type
Error

scale()

Gets layer scale

Inherited From:
Overrides:
Source:
Returns:

Current scale value

Type
number

setControl(name, value [, dt] [, easing])

Sets a shader control value with optional animation

Parameters:
Name Type Argument Default Description
name string

Control identifier

value *

New value

dt number <optional>

Animation duration in ms

easing string <optional>
'linear'

Easing function

Inherited From:
Overrides:
Source:
Fires:

setMode(mode)

Sets shader visualization mode

Parameters:
Name Type Description
mode string

Mode to set

Inherited From:
Overrides:
Source:
Fires:

setSelected(anno [, on])

Sets selection state of an annotation

Parameters:
Name Type Argument Default Description
anno Annotation

The annotation to select/deselect

on boolean <optional>
true

Whether to select (true) or deselect (false)

Overrides:
Source:

setShader(id)

Sets the active shader

Parameters:
Name Type Description
id string

Shader identifier from registered shaders

Inherited From:
Overrides:
Source:
Fires:
Throws:

If shader ID is not found

Type
Error

setState(state [, dt] [, easing])

Sets the layer state with optional animation

Parameters:
Name Type Argument Default Description
state Object

State object with controls and mode

dt number <optional>

Animation duration in ms

easing string <optional>
'linear'

Easing function ('linear'|'ease-out'|'ease-in-out')

Inherited From:
Overrides:
Source:

setTransform(tx)

Sets the layer's transform

Parameters:
Name Type Description
tx Transform

New transform

Inherited From:
Overrides:
Source:
Fires:
  • Layer#event:updateSize

setViewport(view)

Sets the layer's viewport

Parameters:
Name Type Description
view Object

Viewport specification

Properties
Name Type Description
x number

X position

y number

Y position

dx number

Width

dy number

Height

Inherited From:
Overrides:
Source:
Fires:

setVisible(visible)

Sets visibility of the annotation layer Updates both SVG display and underlying layer visibility

Parameters:
Name Type Description
visible boolean

Whether layer should be visible

Inherited From:
Overrides:
Source:
Fires:

setZindex(zindex)

Sets layer rendering order

Parameters:
Name Type Description
zindex number

Stack order value

Inherited From:
Overrides:
Source:
Fires:

Events


ready

The event is fired when a layer is initialized.

Inherited From:
Overrides:
Source:

update

The event is fired if a redraw is needed.

Inherited From:
Overrides:
Source: