Skip to content

LayerManager API

Manages layer lifecycle, ordering, and visibility. Created automatically by Rink.

Access

typescript
const rink = new Rink("#container").render();
const layerManager = rink.getLayerManager();

Note: Only available after render() is called.

Methods

Layer Management

MethodSignatureDescription
addLayeraddLayer(layer: BaseLayer): voidAdd a layer
removeLayerremoveLayer(id: string): booleanRemove layer, returns success
getLayergetLayer(id: string): BaseLayer | undefinedGet layer by ID
getAllLayersgetAllLayers(): BaseLayer[]Get all layers
hasLayerhasLayer(id: string): booleanCheck if layer exists
getLayerIdsgetLayerIds(): string[]Get all layer IDs

Visibility

MethodSignatureDescription
showLayershowLayer(id: string): voidShow a hidden layer
hideLayerhideLayer(id: string): voidHide a layer
setLayerOpacitysetLayerOpacity(id: string, opacity: number): voidSet layer opacity (0-1)

Rendering

MethodSignatureDescription
renderAllrenderAll(): voidRe-render all visible layers
clearAllclearAll(): voidClear all layer content
updateDimensionsupdateDimensions(dims: RenderDimensions): voidUpdate dimensions for all layers
destroydestroy(): voidRemove all layers and clean up

Examples

Toggle layer:

typescript
const layer = layerManager?.getLayer("shots");
if (layer?.getConfig().visible) {
  layerManager?.hideLayer("shots");
} else {
  layerManager?.showLayer("shots");
}

Conditional add:

typescript
if (!layerManager?.hasLayer("goals")) {
  rink.addEvents(goals, { id: "goals", color: "gold" });
}

Iterate layers:

typescript
layerManager?.getAllLayers().forEach((layer) => {
  console.log(layer.getConfig().id, layer.getData().length);
});

Notes

  • Layers are sorted by zIndex (lower = rendered first/behind)
  • Duplicate IDs will replace the existing layer (with warning)
  • Most users should use rink.addLayer(), rink.removeLayer(), etc. which delegate to LayerManager

See Also

  • Rink — Layer convenience methods
  • BaseLayer — Creating custom layers