[Bug] vtkCamera: setDirectionOfProjection on a new camera gives a NaN focal point

Abierto Apto para principiantes
#3,746 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
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript

Línea de trabajo

Lee Sources/Rendering/Core/Camera/index.js, especialmente DEFAULT_VALUES cerca de la línea 804 y setDirectionOfProjection cerca de las líneas 684–686. Reproduce el problema con el fragmento proporcionado e inspecciona cómo se inicializa y actualiza la distancia de la cámara. El trabajo estará terminado cuando una cámara nueva indique una distancia de 1 y establecer su dirección de proyección produzca el punto focal finito esperado.

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

Descripción

type: bug 🐞
Bug description

The camera DEFAULT_VALUES (Sources/Rendering/Core/Camera/index.js:804)
have no distance value. Only setPosition and setFocalPoint calculate
the distance. setDirectionOfProjection (index.js:684 to 686)
calculates the focal point as position + direction * distance. On a new
camera, distance is undefined, so the focal point becomes NaN.

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

const camera = vtkCamera.newInstance();
console.log('distance', camera.getDistance());
camera.setDirectionOfProjection(0, 0, 1);
console.log('focalPoint', camera.getFocalPoint().join(', '));
Detailed Behavior

The output is:

distance undefined
focalPoint NaN, NaN, NaN

The NaN focal point goes into the view matrix, and the camera becomes
unusable.

Expected Behavior

A new camera has distance 1, which is the distance between the default
position (0, 0, 1) and the default focal point (0, 0, 0). The focal
point becomes 0, 0, 2.

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.