cornerstone icon indicating copy to clipboard operation
cornerstone copied to clipboard

[Layers API] Layer viewport on setLayerImage call not set, if no options are passed

Open gohabereg opened this issue 4 years ago • 2 comments

On setLayerImage call there is an if statement to check if layer.viewport exists:


  if (!layer.viewport) {
    const defaultViewport = getDefaultViewport(enabledElement.canvas, image);

    // Override the defaults if any optional viewport settings
    // have been specified
    if (layer.options && layer.options.viewport) {
      layer.viewport = Object.assign(defaultViewport, layer.options.viewport);
    }

    if (baseLayer.layerId !== layerId) {
      rescaleImage(baseLayer, layer);
    }
  }

So in code above, layer.viewport is set only if layer has layer.options.viewport otherwise, it leaves it undefined. This cause an error on next drawCompositeImage execution, as it gets layers to render and requires viewport for calculations

gohabereg avatar Apr 21 '20 06:04 gohabereg

@gohabereg, are you able to author a PR that addresses this issue?

dannyrb avatar Apr 21 '20 10:04 dannyrb

Hi @dannyrb Sure, will do. It's enough to pass default viewport if it's not specified, isn't it?

gohabereg avatar Apr 21 '20 10:04 gohabereg