nmwsharp / nmwsharp/polyscope

Suggestions on rotate/zoom/pan behavior

Abierto
#367 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
C++
Estrellas
2.2k
Forks
242
Merge medio
11 min
PR fusionados (30 d)
1

Descripción

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.

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

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.

Línea de trabajo

Comienza rastreando el manejo existente de la entrada de trackball, zoom, pan y punto de enfoque descrito en el issue. Compara el comportamiento actual con las referencias de trackball enlazadas y define decisiones separadas y comprobables para la rotación, el zoom relativo, el desplazamiento proporcional, el movimiento del punto de enfoque y la activación del punto de enfoque antes de implementar nada.

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

Evaluación

Stack tecnológico
cpp
Área
computer-graphics
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.