Scatter 3D dragmode turntable loses the camera.eye on JavaScript reload
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 18.3k
- Forks
- 2k
- Merge medio
- 2 d 12 h
- PR fusionados (30 d)
- 28
Descripción
Scatter 3D dragmode "orbit" and "turntable" moves camera.eye but it is not reflected to layout.schene.camera.eye of the frame. It will be saved just after mouse click event or wheel, through relayoutCallback > scene.saveLayout .
https://github.com/plotly/plotly.js/blob/35fb5b918e3dbdc3cc6e3b9735c8003008376020/src/plots/gl3d/scene.js#L240
If replot, react, animate and so on, happens during mouse move and mouse up, replot uses layout.schene.camera.eye saved BEFORE and overwrite.
It can reploduced in https://halueda.github.io/wavy-orbitals/ .
Its color is chaneged once a second and you can only rotate 3d-axis if mouse move is in 1 second, during color change.
To solve this, there seems two ways.
- every mouse move event do scene.saveLayout. It may cause performance impact.
- replot function do scene.saveLayout if the plot is 3d.
Perhaps more genral way should be used. For example, mouse moving event set into something like pending events and replot-api executes all pending events prior to real replot. As well as, scene.saveLayout clears the pending event.
This issue can be related to:
#5500
#5005
#5560
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza en src/plots/gl3d/scene.js alrededor de la línea 240 y reproduce la pérdida del estado de la cámara en el ejemplo vinculado wavy-orbitals mientras las actualizaciones de color activan replots. Sigue relayoutCallback, scene.saveLayout y la ruta de replot. Se considera terminado cuando los cambios de camera.eye de la cámara orbit o turntable sobreviven a un replot, react o una animación durante el movimiento del ratón sin sobrescribir la vista actual.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript
- Área
- data-visualization
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100