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

Aperta Adatta ai principianti
#3,746 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
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript

Direzione di ricerca

Leggi Sources/Rendering/Core/Camera/index.js, in particolare DEFAULT_VALUES vicino alla riga 804 e setDirectionOfProjection vicino alle righe 684–686. Riproduci il problema con lo snippet fornito e verifica come viene inizializzata e aggiornata la distanza della fotocamera. Il lavoro è completato quando una nuova fotocamera indica una distanza pari a 1 e l’impostazione della sua direzione di proiezione produce il punto focale finito previsto.

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

Descrizione

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
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.