From fd819ae770873582b3c551ba5f629bd9df952e32 Mon Sep 17 00:00:00 2001 From: md-prog <26860200+md-prog@users.noreply.github.com> Date: Fri, 7 Oct 2022 09:26:07 -0400 Subject: [PATCH] GPU rendering : reuse previously applied "voiRange" for the images that are rendered on the reused viewport but new actor --- packages/core/src/RenderingEngine/StackViewport.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/core/src/RenderingEngine/StackViewport.ts b/packages/core/src/RenderingEngine/StackViewport.ts index 83cb569b3..dac1b43f0 100644 --- a/packages/core/src/RenderingEngine/StackViewport.ts +++ b/packages/core/src/RenderingEngine/StackViewport.ts @@ -1765,6 +1765,15 @@ class StackViewport extends Viewport implements IStackViewport { } this.initialVOIRange = voiRange; + + if (this.voiApplied && typeof voiRange === 'undefined') { + // There are some cases when different frames within the same multi-frame + // file are not hitting the actor cache because above + // this.__checkVTKImageDataMatchesCornerstoneImage() call results in + // "false". + // In that case we want to keep the applied VOI range. + voiRange = this.voiRange; + } this.setProperties({ voiRange }); // At the moment it appears that vtkImageSlice actors do not automatically