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 namestring Control identifier
value* Initial value
- Inherited From:
- Overrides:
- Source:
Throws:
-
If control already exists
- Type
- Error
-
addShader(id, shader)
-
Adds a shader to the layer's available shaders
Parameters:
Name Type Description idstring Unique identifier for the shader
shaderShader Shader instance to add
- Inherited From:
- Overrides:
- Source:
Throws:
-
If shader with the same id already exists
- Type
- Error
Returns:
This layer instance for method chaining
- Type
- Layer
Example
```javascript const customShader = new OpenLIME.Shader({...}); layer.addShader('custom', customShader); layer.setShader('custom'); ``` -
addShaderFilter(filter)
-
Adds a filter to the current shader
Parameters:
Name Type Description filterObject 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 nameObject Filter name
- Inherited From:
- Overrides:
- Source:
Throws:
-
If no shader is set
- Type
- Error
-
derive( [options])
-
Creates a new Layer that shares tiles with this layer but uses a different shader. This method allows efficient creation of derivative layers that share the same source textures, which is useful for applying different visual effects to the same image data without duplicating resources.
Parameters:
Name Type Argument Default Description optionsObject <optional>
{} Options for the new layer
Properties
Name Type Argument Description shadersObject <optional>
Map of shaders for the new layer
defaultShaderstring <optional>
ID of shader to set as active
labelstring <optional>
Label for the new layer (defaults to original label)
zindexnumber <optional>
Z-index for the new layer (defaults to original + 1)
visibleboolean <optional>
Layer visibility (defaults to same as original)
transformTransform <optional>
Custom transform (defaults to copy of original)
mipmapBiasnumber <optional>
Custom mipmap bias (defaults to original value)
pixelSizenumber <optional>
Custom pixel size (defaults to original value)
debugboolean <optional>
Debug mode flag (defaults to original value)
- Inherited From:
- Overrides:
- Source:
Returns:
A new layer sharing textures with this one
- Type
- Layer
Example
```javascript // Create a derived layer with edge detection shader const enhancedShader = new OpenLIME.ShaderEdgeDetection(); const derivedLayer = originalLayer.derive({ label: 'Edge Detection', shaders: { 'edge': enhancedShader }, defaultShader: 'edge', zindex: 10 }); viewer.addLayer('edges', derivedLayer); ``` or ```javascript const enhancedShader = new OpenLIME.ShaderEdgeDetection(); const derivedLayer = layer.derive({ label: 'Enhanced Image' }); derivedLayer.addShader('enhanced', enhancedShader); derivedLayer.setShader('enhanced'); viewer.addLayer('Enhanced Image', derivedLayer); ``` -
getAnnotationById(id)
-
Retrieves an annotation by its ID
Parameters:
Name Type Description idstring Annotation identifier
- Inherited From:
- Overrides:
- Source:
Returns:
The found annotation or null if not found
- Type
- Annotation | null
-
getAnnotationByIdx(idx)
-
Retrieves an annotation by its index
Parameters:
Name Type Description idxnumber | string Annotation index
- 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
nameParameters:
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>
-
getPixelValues(x, y)
-
Gets pixel values for a specific pixel location Works with both single images and tiled formats
Parameters:
Name Type Description xnumber X coordinate in image space (0,0 at top-left)
ynumber Y coordinate in image space (0,0 at top-left)
- Inherited From:
- Overrides:
- Source:
Returns:
Array containing RGBA values for each raster at the specified pixel
- Type
- Array.<Uint8Array>
-
getState( [stateMask])
-
Gets the current layer state
Parameters:
Name Type Argument Default Description stateMaskObject <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 transformTransform Current view transform
inverseboolean <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
-
<async> loadTile(tile, callback)
-
Loads and processes a single image tile with optimized resource management. Implements request batching, concurrent loading, and proper error handling.
Parameters:
Name Type Description tileObject Tile specification object
Properties
Name Type Argument Description indexstring Unique tile identifier
urlstring Base URL for tile resource
startnumber <optional>
Start byte for partial content (for tarzoom)
endnumber <optional>
End byte for partial content (for tarzoom)
offsetsArray.<Object> <optional>
Byte offsets for interleaved formats
callbackfunction Completion callback(error, size)
- Inherited From:
- Overrides:
- Source:
Throws:
-
If tile is already in processing queue
- Type
- Error
Returns:
- Type
- Promise.<void>
-
pixelSizePerMM()
-
Gets pixel size in millimeters
- Inherited From:
- Overrides:
- Source:
Returns:
Size of one pixel in mm
- Type
- number
-
removeShader(id)
-
Removes a shader from the layer's available shaders
Parameters:
Name Type Description idstring Identifier of the shader to remove
- Inherited From:
- Overrides:
- Source:
Throws:
-
If shader with the specified id doesn't exist
- Type
- Error
Returns:
This layer instance for method chaining
- Type
- Layer
Example
```javascript // Remove a shader that's no longer needed layer.removeShader('oldEffect'); ``` -
removeShaderFilter(name)
-
Removes a filter from the current shader
Parameters:
Name Type Description nameObject 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 namestring Control identifier
value* New value
dtnumber <optional>
Animation duration in ms
easingstring <optional>
'linear' Easing function
- Inherited From:
- Overrides:
- Source:
Fires:
-
setMode(mode)
-
Sets shader visualization mode
Parameters:
Name Type Description modestring Mode to set
- Inherited From:
- Overrides:
- Source:
Fires:
-
setSelected(anno [, on])
-
Sets selection state of an annotation
Parameters:
Name Type Argument Default Description annoAnnotation The annotation to select/deselect
onboolean <optional>
true Whether to select (true) or deselect (false)
- Overrides:
- Source:
-
setShader(id)
-
Sets the active shader
Parameters:
Name Type Description idstring 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 stateObject State object with controls and mode
dtnumber <optional>
Animation duration in ms
easingstring <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 txTransform New transform
- Inherited From:
- Overrides:
- Source:
Fires:
- Layer#event:updateSize
-
setViewport(view)
-
Sets the layer's viewport
Parameters:
Name Type Description viewObject Viewport specification
Properties
Name Type Description xnumber X position
ynumber Y position
dxnumber Width
dynumber 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 visibleboolean Whether layer should be visible
- Inherited From:
- Overrides:
- Source:
Fires:
-
setZindex(zindex)
-
Sets layer rendering order
Parameters:
Name Type Description zindexnumber 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: