"Text Actors" won't show up in "Local" rendering
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- computer-graphics
Direzione di ricerca
Iniziate eseguendo la riproduzione Python fornita e analizzate trame_vtk_widgets.VtkRemoteLocalView, concentrandovi su come la modalità locale gestisce gli oggetti di tipo vtkTextActor rispetto alla modalità remota. Il problema è risolto quando l’attore di testo rimane visibile dopo il passaggio dal rendering locale a quello remoto e viceversa.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
Vtk Text Actors won't show up when using "Local" rendering method.
To Reproduce
Steps to reproduce the behavior:
- run the python code
- switch between "local" and "remote" rendering using the provided switch in the toolbar.
- you can see the text actors when "remote" rendering is ON, but they dissapear when switching to "local" rendering.
Code
from trame.app import get_server
from trame.decorators import TrameApp
from trame.widgets import html, vuetify, vtk as trame_vtk_widgets
from trame.ui.vuetify import SinglePageLayout
from vtkmodules.vtkRenderingCore import (
vtkRenderer,
vtkRenderWindow,
vtkRenderWindowInteractor,
vtkTextActor,
)
from vtkmodules.vtkInteractionStyle import (
vtkInteractorStyleTrackballActor,
vtkInteractorStyleTrackballCamera,
)
from vtkmodules.vtkRenderingAnnotation import vtkAxesActor
# VTK factory initialization
from vtkmodules.vtkInteractionStyle import vtkInteractorStyleSwitch # noqa
import vtkmodules.vtkRenderingOpenGL2 # noqa
@TrameApp()
class MainApp:
def __init__(self, server_or_name=None) -> None:
self.server = get_server(server_or_name, client_type="vue2")
self.state.trame__title = "Text actor issue"
self._render_window = self._setup_render_window()
self._origin_axes_actor = self._setup_origin_axes_actor()
self._logo_actor = self._setup_text_actor()
self.renderer.ResetCamera()
self.ui = self._setup_ui()
def _setup_render_window(self) -> vtkRenderWindow:
renderer = vtkRenderer()
renderWindow = vtkRenderWindow()
renderWindow.AddRenderer(renderer)
interactor = vtkRenderWindowInteractor()
interactor.SetInteractorStyle(vtkInteractorStyleTrackballCamera())
interactor.SetRenderWindow(renderWindow)
return renderWindow
def _setup_origin_axes_actor(self) -> vtkAxesActor:
axes = vtkAxesActor()
self.renderer.AddActor(axes)
return axes
def _setup_text_actor(self) -> vtkTextActor:
text_actor = vtkTextActor()
text_actor.SetInput("My Text")
text_actor.GetTextProperty().SetFontSize(24)
text_actor.GetTextProperty().BoldOn()
text_actor.GetTextProperty().SetColor(1.0, 0.0, 0.0)
text_actor.SetPosition(10, 10)
self.renderer.AddActor(text_actor)
return text_actor
def _setup_ui(self):
with SinglePageLayout(self.server) as layout:
layout.title.set_text("Text actor issue")
with layout.toolbar as toolbar:
toolbar.dense = True
vuetify.VSpacer()
html.Div("Switch between remote/local rendering: ")
vuetify.VCheckbox(
v_model=("viewMode", "local"),
on_icon="mdi-lan-disconnect",
off_icon="mdi-lan-connect",
true_value="local",
false_value="remote",
classes="mx-1",
hide_details=True,
dense=True,
)
vuetify.VSpacer()
with vuetify.VBtn(icon=True, click=self.ctrl.view_reset_camera):
vuetify.VIcon("mdi-crop-free")
with layout.content:
with vuetify.VContainer(fluid=True, classes="pa-0 fill-height"):
view = trame_vtk_widgets.VtkRemoteLocalView(
self._render_window,
namespace="view",
mode="local",
interactive_ratio=1,
)
self.ctrl.view_update = view.update
self.ctrl.view_reset_camera = view.reset_camera
return layout
@property
def ctrl(self):
return self.server.controller
@property
def state(self):
return self.server.state
@property
def renderer(self) -> vtkRenderer:
return self._render_window.GetRenderers().GetFirstRenderer()
if __name__ == "__main__":
app = MainApp()
app.server.start()
Expected behavior
It is expected that the text actors show up in the "local" rendering mode as well as "remote" rendering
Screenshots
Platform:
Device:
- Desktop
- Mobile
OS:
- Windows
- MacOS
- Linux
- Android
- iOS
Browsers Affected:
- Chrome
- Firefox
- Microsoft Edge
- Safari
- Opera
- Brave
- IE 11
- Lingua principale
- Python
- Stelle
- 710
- Fork
- 88
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Kitware/trame
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 30/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
-
Trame maintenance tasksForse di nuovo libera @jourdain l’ha presa 204 giorni fa e non c’è nessuna pull request aperta. Aperta
Tutte le issue di Kitware/trame
Issue simili
-
bug ready-for-dev
Difficoltà 1/5 1-3 ore Idoneità per principianti 92/100
OpenHands/extensions#897 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
tensorflow/datasets#11253 ·
I maintainer di solito rispondono entro 1 giorno
-
fix(core): a config section with all keys commented out crashes startupForse già presa @Aryanbhargava18 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
kubeflow/mcp-server#512 ·
I maintainer di solito rispondono entro 1 giorno
-
Stop trusting the compromised eMudhra CA certificatesForse già presa @anth-volk l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
PolicyEngine/uk-triple-lock#54 ·
I maintainer di solito rispondono entro 1 giorno
-
DBFS append mode silently overwrites existing filesForse già presa @IlyaKhalafi l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
fsspec/filesystem_spec#2429 ·
I maintainer di solito rispondono entro 1 giorno