Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Sources/Common/Core/LookupTable/test/testSetTable.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import vtkPolyData from 'vtk.js/Sources/Common/DataModel/PolyData';

import baseline from './testSetTable.png';

it.skip('Test LookupTable setTable', () => {
it.skipIf(__VTK_TEST_NO_WEBGL__)('Test LookupTable setTable', () => {
const gc = testUtils.createGarbageCollector();
expect('rendering', 'vtkLookupTable TestSetTable').toBeTruthy();
// testUtils.keepDOM();
Expand Down
4 changes: 2 additions & 2 deletions Sources/Rendering/Core/Mapper/test/testEdgeVisibility.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import vtkMapper from 'vtk.js/Sources/Rendering/Core/Mapper';

import baseline from './testEdgeVisibility.png';

it.skip('Test Edge Visibility', () => {
it.skipIf(__VTK_TEST_NO_WEBGL__)('Test Edge Visibility', () => {
const gc = testUtils.createGarbageCollector();
expect('rendering', 'vtkMapper EdgeVisibility').toBeTruthy();

Expand Down Expand Up @@ -50,7 +50,7 @@ it.skip('Test Edge Visibility', () => {
testUtils.compareImages(
image,
[baseline],
'Rendering/Core/Mapper/testEdgeVisibility.js',
'Rendering/Core/Mapper/testEdgeVisibility',
1
)
)
Expand Down
Binary file modified Sources/Rendering/Core/Mapper/test/testEdgeVisibility.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -14,87 +14,92 @@ import Constants from 'vtk.js/Sources/Rendering/Core/VolumeMapper/Constants';

import baseline from './testAverageIntensityProjection.png';

it.skip('Test Average Intensity Projection Volume Rendering', async () => {
const gc = testUtils.createGarbageCollector();
expect('rendering', 'vtkVolumeMapper AverageIP').toBeTruthy();
// testUtils.keepDOM();

// Create some control UI
const container = document.querySelector('body');
const renderWindowContainer = gc.registerDOMElement(
document.createElement('div')
);
container.appendChild(renderWindowContainer);

// create what we will view
const renderWindow = gc.registerResource(vtkRenderWindow.newInstance());
const renderer = gc.registerResource(vtkRenderer.newInstance());
renderWindow.addRenderer(renderer);
renderer.setBackground(0.32, 0.34, 0.43);

const actor = gc.registerResource(vtkVolume.newInstance());

const mapper = gc.registerResource(vtkVolumeMapper.newInstance());
mapper.setSampleDistance(0.7);
mapper.setBlendMode(Constants.BlendMode.AVERAGE_INTENSITY_BLEND);

actor.setMapper(mapper);

const reader = vtkHttpDataSetReader.newInstance({ fetchGzip: true });

// create color and opacity transfer functions
const ctfun = vtkColorTransferFunction.newInstance();
ctfun.addRGBPoint(-3024, 0, 0, 0);
ctfun.addRGBPoint(-637.62, 1, 1, 1);
ctfun.addRGBPoint(700, 1, 1, 1);
ctfun.addRGBPoint(3071, 1, 1, 1);
ctfun.setMappingRange(500, 3000);

const ofun = vtkPiecewiseFunction.newInstance();
ofun.addPoint(-3024, 0);
ofun.addPoint(-637.62, 0);
ofun.addPoint(700, 0.5);
ofun.addPoint(3071, 0.9);

actor.getProperty().setRGBTransferFunction(0, ctfun);
actor.getProperty().setScalarOpacity(0, ofun);
actor.getProperty().setScalarOpacityUnitDistance(0, 4.5);
actor.getProperty().setInterpolationTypeToFastLinear();

mapper.setInputConnection(reader.getOutputPort());

// now create something to view it
const glwindow = gc.registerResource(renderWindow.newAPISpecificView());
glwindow.setContainer(renderWindowContainer);
renderWindow.addView(glwindow);
glwindow.setSize(400, 400);

// Interactor
const interactor = vtkRenderWindowInteractor.newInstance();
interactor.setStillUpdateRate(0.01);
interactor.setView(glwindow);
interactor.initialize();
interactor.bindEvents(renderWindowContainer);

await reader.setUrl(`${__BASE_PATH__}/Data/volume/headsq.vti`);
await reader.loadData();

renderer.addVolume(actor);
renderer.resetCamera();

const promise = glwindow.captureNextImage().then((image) =>
testUtils.compareImages(
image,
[baseline],
'Rendering/Core/VolumeMapper/testAverageIntensityProjection',
{
// be stricter here
pixelThreshold: 0.01,
mismatchTolerance: 1.0,
},
gc.releaseResources
)
);
renderWindow.render();
return promise;
});
it.skipIf(__VTK_TEST_NO_WEBGL__)(
'Test Average Intensity Projection Volume Rendering',
async () => {
const gc = testUtils.createGarbageCollector();
expect('rendering', 'vtkVolumeMapper AverageIP').toBeTruthy();
// testUtils.keepDOM();

// Create some control UI
const container = document.querySelector('body');
const renderWindowContainer = gc.registerDOMElement(
document.createElement('div')
);
container.appendChild(renderWindowContainer);

// create what we will view
const renderWindow = gc.registerResource(vtkRenderWindow.newInstance());
const renderer = gc.registerResource(vtkRenderer.newInstance());
renderWindow.addRenderer(renderer);
renderer.setBackground(0.32, 0.34, 0.43);

const actor = gc.registerResource(vtkVolume.newInstance());

const mapper = gc.registerResource(vtkVolumeMapper.newInstance());
mapper.setSampleDistance(0.7);
mapper.setBlendMode(Constants.BlendMode.AVERAGE_INTENSITY_BLEND);

actor.setMapper(mapper);

const reader = vtkHttpDataSetReader.newInstance({ fetchGzip: true });

// create color and opacity transfer functions
const ctfun = vtkColorTransferFunction.newInstance();
ctfun.addRGBPoint(-3024, 0, 0, 0);
ctfun.addRGBPoint(-637.62, 1, 1, 1);
ctfun.addRGBPoint(700, 1, 1, 1);
ctfun.addRGBPoint(3071, 1, 1, 1);
ctfun.setMappingRange(500, 3000);

const ofun = vtkPiecewiseFunction.newInstance();
ofun.addPoint(-3024, 0);
ofun.addPoint(-637.62, 0);
ofun.addPoint(700, 0.5);
ofun.addPoint(3071, 0.9);

actor.getProperty().setRGBTransferFunction(0, ctfun);
actor.getProperty().setScalarOpacity(0, ofun);
actor.getProperty().setScalarOpacityUnitDistance(0, 4.5);
actor.getProperty().setInterpolationTypeToFastLinear();

mapper.setInputConnection(reader.getOutputPort());

// now create something to view it
const glwindow = gc.registerResource(renderWindow.newAPISpecificView());
glwindow.setContainer(renderWindowContainer);
renderWindow.addView(glwindow);
glwindow.setSize(400, 400);

// Interactor
const interactor = vtkRenderWindowInteractor.newInstance();
interactor.setStillUpdateRate(0.01);
interactor.setView(glwindow);
interactor.initialize();
interactor.bindEvents(renderWindowContainer);

await reader.setUrl(`${__BASE_PATH__}/Data/volume/headsq.vti`);
await reader.loadData();

renderer.addVolume(actor);
renderer.resetCamera();

const promise = glwindow
.captureNextImage()
.then((image) =>
testUtils.compareImages(
image,
[baseline],
'Rendering/Core/VolumeMapper/testAverageIntensityProjection',
{
// be stricter here
pixelThreshold: 0.01,
mismatchTolerance: 1.0,
}
)
)
.finally(gc.releaseResources);
renderWindow.render();
return promise;
}
);
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading