[Bug] vtkImageCPRMapper: setDirectionMatrix always reports a change

Aperta Adatta ai principianti
#3,738 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
86/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript

Direzione di ricerca

Apri Sources/Rendering/Core/ImageCPRMapper/index.js alla riga 267 ed esamina il confronto di setDirectionMatrix. La riproduzione usa getDirectionMatrix() e getMTime() per mostrare il comportamento attuale; verifica che passare la matrice invariata restituisca false e lasci invariato l’orario di modifica.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

type: bug 🐞
Bug description

Sources/Rendering/Core/ImageCPRMapper/index.js:267 compares the 3x3
direction matrix with mat4.equals, which reads 16 entries. Entries 9 to 15
are undefined on the two sides. A comparison with NaN is always false, so
the two matrices are never equal. The setter always calls modified() and
returns true.

Steps to reproduce
  1. Run this code:
import vtkImageCPRMapper from '@kitware/vtk.js/Rendering/Core/ImageCPRMapper';

const mapper = vtkImageCPRMapper.newInstance();
const current = mapper.getDirectionMatrix();
const mtime = mapper.getMTime();

const changed = mapper.setDirectionMatrix(current);
console.log('changed', changed);
console.log('mtime increased', mapper.getMTime() > mtime);
Detailed Behavior

The output is:

changed true
mtime increased true
Expected Behavior

The setter compares the nine entries. If the matrix does not change, the
setter returns false and does not modify the mapper.

Environment
  • vtk.js version: master (67328bc3ef)
  • Browsers: Chromium (Playwright, Vitest 5 browser mode)
  • OS: Windows 11
Lingua principale
JavaScript
Stelle
1.5k
Fork
428
Merge medio
5g 9h
PR unite (30g)
22

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Kitware/vtk-js

Tutte le issue di Kitware/vtk-js

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.