Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
c962c49
fix(imagereslicemapper): be less sensitive for "snapping" to nearest …
finetjul Oct 25, 2024
cde9a92
fix(ImageMapper): label outlines with I/J slicing
floryst Oct 23, 2024
2e4c5e4
fix(ImageMapper): handle SlicingMode.NONE
floryst Oct 23, 2024
3027990
test(ImageMapper): slicing I+J label outlines
floryst Nov 4, 2024
644df60
feat(TGAReader): add vtkTGAReader
daker Oct 29, 2024
46424dc
fix(ImageMapper): unstable resource reference
floryst Nov 4, 2024
8c73b70
fix(ImageMapper): blend against black, not cyan
floryst Nov 4, 2024
1ca5ba1
fix(RenderWindowInteractor): export interface IPosition
jeremygau Nov 4, 2024
18d3a94
fix(PointPicker): Fixed pointId would be overwritten with multiple ac…
yarous224 Nov 9, 2024
1043314
fix(ImageProperty): add types of label outline funcs
PaulHax Nov 12, 2024
0c3933d
feat(GLTFImporter): add vtkGLTFImporter
daker Oct 21, 2024
9ab3172
fix(GLTFImporter): fix the environment texture path
daker Nov 13, 2024
34d5078
fix(GLTFImporter): add support for multiple primitives
daker Nov 24, 2024
ba39aae
fix(DataArray): warn on default data type
floryst Dec 3, 2024
2d7ce0f
fix(shapewidget): improve ShapeWidget example
finetjul Oct 3, 2024
d369c75
docs(shapewidget): change ShapeWidget example to use ResliceCursorWidget
finetjul Nov 25, 2024
88e7b2b
fix(shapewidget): support non axis-aligned slices
finetjul Nov 25, 2024
83f04ac
fix(anglewidget): add bounds to AngleWidget
finetjul Nov 22, 2024
1f92f84
feat(IFCImporter): add vtkIFCImporter
daker Nov 5, 2024
051d540
feat(TIFFReader): add vtkTIFFReader
daker Nov 6, 2024
89758ed
fix: vtkXMLPolyDataWriter Support Save FieldData
wumanman1024 Dec 12, 2024
3c562c5
fix(CanvasView): allow setting canvas element
daker Dec 25, 2024
8f40fc7
feat(thresholdpoints): add vtkThresholdPoints filter
finetjul Jun 8, 2024
b208ebb
fix(IFCImporter): fix normals
daker Dec 15, 2024
96a2643
fix(GLTFImporter): fix GLTF Draco normals
daker Dec 15, 2024
66a6cdb
docs(shapewidgetexample): fix ellipse coverage in oblique mode
finetjul Dec 13, 2024
3c01212
fix: avoid norm16 for textures with linear filtering
slak44 Dec 19, 2024
a31fa48
fix(vtkclipclosedsurface): fix initialization of a bidimensional array
rodrigobasilio2022 Jan 2, 2025
35a9338
refactor(vtkclipclosedsurface): refactor previous solution as reviewe…
rodrigobasilio2022 Jan 2, 2025
d69dde4
docs: itk.js -> itk-wasm
floryst Jan 10, 2025
1da90de
chore(github): update workflows
floryst Jan 23, 2025
a276d0b
fix(URLExtract): use builtin parser
floryst Jan 22, 2025
4b07b99
chore(github): use upload-artifact@v4
floryst Feb 5, 2025
64396e2
chore(github): fix upload-artifact write conflicts
floryst Feb 5, 2025
f1fd405
chore: update deps to address npm audit
floryst Feb 5, 2025
71b865f
chore(dox): patch to support ANY types
floryst Feb 6, 2025
6c58f6f
chore: unconditionally run patch-package
floryst Feb 6, 2025
0409186
chore(build): fix esm-check errors
floryst Feb 6, 2025
0a5fbd4
test: cleanup resources in hanging tests
floryst Feb 6, 2025
31f6ee9
chore(tests): fix tests, config and node versions
floryst Feb 6, 2025
0a0f68f
refactor(glyph3dmapper): Typescript definition
sankhesh Feb 4, 2025
ed1a14e
chore: deprecate gh-pages in favor of pages action
floryst Feb 6, 2025
eaa328b
docs: tweaks to validate deploy-pages is working
floryst Feb 17, 2025
f095768
chore: build vtk.js before building examples
floryst Feb 17, 2025
413f07a
chore(github): move off of 20.04 (deprecated)
floryst Feb 17, 2025
aa72845
feat(stlreader): add removeDuplicateVertices method to vtkSTLReader
jreyero12 Feb 14, 2025
f666163
fix(STLReader): apply requested changes in removeDuplicateVertices
jreyero12 Feb 18, 2025
64ab9b7
fix(STLReader): apply new requested changes in removeDuplicateVertices
jreyero12 Feb 19, 2025
722db8a
fix(STLReader): disable removeDuplicateVertices by default
jreyero12 Feb 24, 2025
472832c
test: fix async tests
floryst Feb 25, 2025
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
12 changes: 6 additions & 6 deletions .github/workflows/build-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]
node: [18, 20]
os: [ubuntu-24.04]
node: [22]
name: ${{ matrix.os }} and node ${{ matrix.node }}
steps:
- uses: actions/checkout@v2
Expand All @@ -25,9 +25,9 @@ jobs:
run: npm run build:release
- name: Archive build output
if: github.event_name != 'merge_group'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: build-results
name: build-results-${{ matrix.runs_on }}-node_${{ matrix.node }}
path: dist
retention-days: 15
- name: Validate generated typescript definitions
Expand All @@ -38,9 +38,9 @@ jobs:
run: xvfb-run --auto-servernum npm run test -- --browsers Chrome,Firefox
- name: Archive test results
if: github.event_name != 'merge_group' && (success() || failure())
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: test-results
name: test-results-${{ matrix.runs_on }}-node_${{ matrix.node }}
path: Utilities/TestResults/Test-Report.html
retention-days: 15
2 changes: 1 addition & 1 deletion .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:

jobs:
pr-checks:
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
name: Check and lint PR
steps:
- uses: actions/checkout@v2
Expand Down
42 changes: 33 additions & 9 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:
jobs:
publish:
name: Publish
runs-on: ubuntu-20.04
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v2
Expand All @@ -21,7 +21,7 @@ jobs:
- name: Setup node
uses: actions/setup-node@v1
with:
node-version: 20
node-version: 22
- name: Install dependencies
run: |
npm ci
Expand All @@ -38,7 +38,7 @@ jobs:
run: xvfb-run --auto-servernum npm run test -- --browsers Chrome,Firefox
- name: Archive test results
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: test-results
path: Utilities/TestResults/Test-Report.html
Expand All @@ -51,11 +51,35 @@ jobs:
git config --global user.name "Github Actions"
git config --global user.email "[email protected]"
npm run semantic-release
deploy_docs:
if: github.ref == 'refs/heads/master'
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Setup node
uses: actions/setup-node@v1
with:
node-version: 22
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build:release
- name: Build API docs
if: github.ref == 'refs/heads/master'
run: npm run doc:generate-api
- name: Publish docs
if: github.ref == 'refs/heads/master'
env:
GIT_PUBLISH_URL: https://${{ secrets.GH_PUBLISH_CREDS }}@github.com/Kitware/vtk-js.git
run: npm run doc:publish
- name: Build docs
run: npm run doc:minified
- name: Upload docs as a Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./Documentation/build-tmp/public/
- name: Deploy docs
uses: actions/deploy-pages@v4
23 changes: 12 additions & 11 deletions Documentation/content/docs/develop_test.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,15 @@ test('Validate vtkMyClass properties', (t) => {
```js ClassName/test/testRendering.js
import test from 'tape';

import vtkOpenGLRenderWindow from '../../../../Rendering/OpenGL/RenderWindow';
import vtkRenderWindow from '../../../../Rendering/Core/RenderWindow';
import vtkRenderer from '../../../../Rendering/Core/Renderer';
import vtkConeSource from '../../../../Filters/Sources/ConeSource';
import vtkActor from '../../../../Rendering/Core/Actor';
import vtkMapper from '../../../../Rendering/Core/Mapper';
import vtkOpenGLRenderWindow from '@kitware/vtk.js/Rendering/OpenGL/RenderWindow';
import vtkRenderWindow from '@kitware/vtk.js/Rendering/Core/RenderWindow';
import vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
import vtkConeSource from '@kitware/vtk.js/Filters/Sources/ConeSource';
import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor';
import vtkMapper from '@kitware/vtk.js/Rendering/Core/Mapper';

import baseline from './testClassName.png';
import testUtils from '../../../../Testing/testUtils';
import testUtils from '@kitware/vtk.js/Testing/testUtils';

test.onlyIfWebGL('Test vtkClassName Rendering', (t) => {
// Create some control UI
Expand Down Expand Up @@ -82,11 +82,12 @@ test.onlyIfWebGL('Test vtkClassName Rendering', (t) => {
renderWindow.addView(glwindow);
glwindow.setSize(400, 400);

glwindow.captureNextImage().then((image) => {
const promise = glwindow.captureNextImage().then((image) => {
// compareImages(image, baselines, testName, tapeContext, threshold = 5, nextCallback = null)
testUtils.compareImages(image, [baseline], 'Filters/Sources/ConeSource/', t);
return testUtils.compareImages(image, [baseline], 'Filters/Sources/ConeSource/', t);
});
renderWindow.render();
return promise;
});
```

Expand Down Expand Up @@ -133,9 +134,9 @@ Follow the following procedure to create a new baseline or change an existing ba

- Add an invalid baseline (any PNG file) and rename it as the required baseline.
For example, to create a baseline for `testCylinder.js` copy *testCone.png* to *Sources/Filters/Sources/CylinderSource/test/testCylinder.png*.
- Run the test as per [Running a single test for debugging](#Running-a-single-test-for-debugging). The test should fail because of the invalid baseline.
- Run the test as per [Running a single test for debugging](#Running-a-single-test-for-debugging). The test should fail because of the invalid baseline.
- The test execution creates a file **Utilities/TestResults/Test-Report.html**. Open this in the browser.
- The file should show the test output versus the invalid baseline image, as well as a diff.
Right-click on the test output image and save it as the valid baseline.
- Re-run the test to ensure that it passes with the valid baseline.
- Commit the baseline image to the git source tree.
- Commit the baseline image to the git source tree.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion Documentation/content/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ You can learn more about what vtk.js can do for you via the [examples](../exampl
VTK.js is a complete rewrite of VTK/C++ using plain JavaScript (ES6).
The focus of the rewrite, so far, has been the rendering pipeline for ImageData and PolyData, the pipeline infrastructure, and frequently used readers (obj, stl, vtp, vti). Some filters are also provided as demonstrations. We are not aiming for vtk.js to provide the same set of filters that is available in VTK/C++, but vtk.js does provide the infrastructure needed to define pipelines and filters.

We have also started to explore a path where you can compile some bits of VTK/C++ into WebAssembly and to enable them to interact with vtk.js. With such interaction, you can pick and choose what you need to extract from VTK and enable it inside your web application. VTK/C++ WebAssembly can even be used for rendering, and examples can be found in [VTK repository](https://github.com/Kitware/VTK/tree/master/Examples/Emscripten/Cxx). Additionally [itk.js](https://insightsoftwareconsortium.github.io/itk-js/index.html) (which is ITK via WebAssembly) also provides proven implementations for several image filters and data readers. There are, however, some additional costs in terms of the size of the WebAssembly file that will have to be downloaded when visiting a VTK or ITK WebAssembly webpage; and we still have some work to do to streamline the vtk.js + VTK WebAssembly integrations.
We have also started to explore a path where you can compile some bits of VTK/C++ into WebAssembly and to enable them to interact with vtk.js. With such interaction, you can pick and choose what you need to extract from VTK and enable it inside your web application. VTK/C++ WebAssembly can even be used for rendering, and examples can be found in [VTK repository](https://github.com/Kitware/VTK/tree/master/Examples/Emscripten/Cxx). Additionally [itk-wasm](https://wasm.itk.org/en/latest/) (which is ITK via WebAssembly) also provides proven implementations for several image filters and data readers. There are, however, some additional costs in terms of the size of the WebAssembly file that will have to be downloaded when visiting a VTK or ITK WebAssembly webpage; and we still have some work to do to streamline the vtk.js + VTK WebAssembly integrations.

In general if you want to stay in the pure JavaScript land, then vtk.js is perhaps the ideal solution for you. We welcome your feedback, including your contributions for new visualization filters, bug fixes, and examples.

Expand Down
Loading
Loading