[Bug] vtkCamera: setDirectionOfProjection does not mark the camera as modified

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

Direzione di ricerca

Leggi le righe 668–688 di Sources/Rendering/Core/Camera/index.js, dove setDirectionOfProjection modifica lo stato della camera. Verifica come i setter vicini segnalano le modifiche e se i test esistenti della camera coprono MTime. Aggiungi un controllo di regressione per il cambio di direzione segnalato; il lavoro è completato quando il setter segnala una modifica e l’MTime della camera aumenta.

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

Descrizione

type: bug 🐞
Bug description

Sources/Rendering/Core/Camera/index.js:668 to 688 changes
directionOfProjection, moves the focal point and calculates the view plane
normal again. But the method does not call publicAPI.modified(). The
renderers and other objects that monitor the camera MTime continue to use the
old view.

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

const camera = vtkCamera.newInstance();
camera.setPosition(0, 0, 5);
const mtime = camera.getMTime();

camera.setDirectionOfProjection(1, 0, 0);
console.log('focalPoint', camera.getFocalPoint());
console.log('mtime increased', camera.getMTime() > mtime);
Detailed Behavior

The output is:

focalPoint [ 5, 0, 5 ]
mtime increased false

The focal point moves, but the camera MTime does not change.

Expected Behavior

The setter calls modified() and returns true when the direction changes.

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.