nmwsharp / nmwsharp/polyscope

Suggestions on rotate/zoom/pan behavior

Aperta
#367 3 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
C++
Stelle
2.2k
Fork
242
Merge medio
11m
PR unite (30g)
1

Descrizione

Hi, thanks for this great lib !

  • The recent feature that allows to select a focus point with ctr+shift+left click is very convenient.
  • The trackball follows the rule of path invariance which is great too !

However, I'd like to suggest other features that could improve the ergonomy when carefully inspecting a scene.

Rotate

Current trackball seems to be an azimuth/elevation control which is fine, but disallows roll completely. This "turntable" behavior might be desired, but a more standard approach is to use an azimuth/elevation behavior in the center of the viewport fading to a more roll-permissive behavior further from the center. This nice blog post from Scott Shambaugh summarizes different trackball implementations, including the standard OpenGL one.

Zoom

The default mouse scroll zoom should be relative (without pressing shift+ctrl). The absolute zoom is bad because zooming is supposed to give an impression of scaling things. When far from the scene, it is painfully slow, and way too sensitive near an object's surface.

Pan

Currently, panning the camera does not move the focus point which creates a incomfortable setup if the user decide to rotate again. I suggest to also translate the focus point by a same amount to prevent that. Also, the panning is absolute thus suffers from the same issues of the absolute zoom. I recommend to make it proportional to the distance between the eye and the focus point.

Lastly, I find the focus point picking so convenient I think it should be more accessible (maybe double click like in Meshlab ?)

Those are only suggestions of course.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

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.

Direzione di ricerca

Inizia tracciando la gestione esistente degli input di trackball, zoom, pan e punto focale descritta nell'issue. Confronta il comportamento attuale con i riferimenti al trackball collegati e definisci decisioni separate e verificabili per la rotazione, lo zoom relativo, il panning proporzionale, lo spostamento del punto focale e l'attivazione del punto focale prima di implementare qualsiasi cosa.

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

Valutazione

Stack tecnologico
cpp
Ambito
computer-graphics
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.