[Bug] vtkImageCPRMapper: setDirectionMatrix always reports a change

Abierto Apto para principiantes
#3,738 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
86/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript

Línea de trabajo

Abre Sources/Rendering/Core/ImageCPRMapper/index.js en la línea 267 e inspecciona la comparación de setDirectionMatrix. La reproducción usa getDirectionMatrix() y getMTime() para mostrar el comportamiento actual; verifica que pasar la matriz sin cambios devuelva false y deje la hora de modificación sin cambios.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
JavaScript
Estrellas
1.5k
Forks
428
Merge medio
5 d 9 h
PR fusionados (30 d)
22

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Kitware/vtk-js

Todos los issues de Kitware/vtk-js

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.