From df2976de65775bd0e14ac4a2b873493ba8bd476b Mon Sep 17 00:00:00 2001 From: Paul Elliott Date: Tue, 1 Oct 2024 13:05:39 -0400 Subject: [PATCH] test(testImageLabelOutline): add slicing mode test --- .../ImageMapper/test/testImageLabelOutline.js | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/Sources/Rendering/Core/ImageMapper/test/testImageLabelOutline.js b/Sources/Rendering/Core/ImageMapper/test/testImageLabelOutline.js index c83effa3ce3..0bcdaf34514 100644 --- a/Sources/Rendering/Core/ImageMapper/test/testImageLabelOutline.js +++ b/Sources/Rendering/Core/ImageMapper/test/testImageLabelOutline.js @@ -4,6 +4,7 @@ import 'vtk.js/Sources/Rendering/Misc/RenderingAPIs'; import vtkImageMapper from 'vtk.js/Sources/Rendering/Core/ImageMapper'; import vtkImageSlice from 'vtk.js/Sources/Rendering/Core/ImageSlice'; +import { SlicingMode } from 'vtk.js/Sources/Rendering/Core/ImageMapper/Constants'; import vtkRenderer from 'vtk.js/Sources/Rendering/Core/Renderer'; import vtkRenderWindow from 'vtk.js/Sources/Rendering/Core/RenderWindow'; import vtkImageData from 'vtk.js/Sources/Common/DataModel/ImageData'; @@ -13,7 +14,7 @@ import vtkPiecewiseFunction from 'vtk.js/Sources/Common/DataModel/PiecewiseFunct import baseline from './testImageLabelOutline.png'; -test('Test ImageMapper', (t) => { +test.only('Test ImageMapper', (t) => { const gc = testUtils.createGarbageCollector(t); t.ok('rendering', 'vtkImageMapper testImage'); @@ -37,6 +38,9 @@ test('Test ImageMapper', (t) => { const BACKGROUND = 0; const LOW_VALUE = 80; const HIGH_VALUE = 160; + const SLICE = 5; + const SLICING_MODE = SlicingMode.I; + const CAMERA_POS = [10, 0, 0]; function createLabelPipeline(backgroundImageData) { const labelMapData = gc.registerResource( @@ -79,6 +83,9 @@ test('Test ImageMapper', (t) => { ofun: gc.registerResource(vtkPiecewiseFunction.newInstance()), }; + labelMap.mapper.setSlicingMode(SLICING_MODE); + labelMap.mapper.setSlice(SLICE); + // Labelmap pipeline labelMap.mapper.setInputData(labelMapData); labelMap.actor.setMapper(labelMap.mapper); @@ -129,7 +136,7 @@ test('Test ImageMapper', (t) => { // Create a one slice vtkImageData that has four quadrants of different values const imageData = gc.registerResource(vtkImageData.newInstance()); - const dims = [10, 10, 1]; + const dims = [10, 10, 10]; imageData.setSpacing(1, 1, 1); imageData.setOrigin(0.1, 0.1, 0.1); imageData.setDirection(1, 0, 0, 0, 1, 0, 0, 0, 1); @@ -140,14 +147,16 @@ test('Test ImageMapper', (t) => { const values = new Uint8Array(dims[0] * dims[1] * dims[2]); let i = 0; - for (let y = 0; y < dims[1]; y++) { - for (let x = 0; x < dims[0]; x++, i++) { - if ((x < 3 && y < 3) || (x > 7 && y > 7)) { - values[i] = BACKGROUND; - } else if (x > 4 && x < 6 && y > 4 && y < 7) { - values[i] = LOW_VALUE; - } else { - values[i] = HIGH_VALUE; + for (let z = 0; z < dims[2]; z++) { + for (let y = 0; y < dims[1]; y++) { + for (let x = 0; x < dims[0]; x++, i++) { + if (x > 3 && x < 6 && y > 3 && y < 6) { + values[i] = LOW_VALUE; + } else if (x > 1 && x < 8 && y > 1 && y < 8) { + values[i] = HIGH_VALUE; + } else { + values[i] = BACKGROUND; + } } } } @@ -170,11 +179,15 @@ test('Test ImageMapper', (t) => { const actor = gc.registerResource(vtkImageSlice.newInstance()); const mapper = gc.registerResource(vtkImageMapper.newInstance()); mapper.setInputData(data); + mapper.setSlicingMode(SLICING_MODE); + mapper.setSlice(SLICE); actor.setMapper(mapper); actor.getProperty().setInterpolationTypeToNearest(); renderer.addActor(actor); renderer.addActor(labelMap.actor); + + renderer.getActiveCamera().setPosition(...CAMERA_POS); renderer.resetCamera(); renderer.resetCameraClippingRange(); renderWindow.render();