@@ -385,9 +385,11 @@ def pick_geometry(self, actor_wasm_id, cell_id, mode, world_x, world_y, world_z)
385385 #
386386 # Each method does both halves of its trigger, in this order and all under
387387 # ``_vtk_lock``: write the registry record, apply to the server's VTK
388- # pipeline, then push the mutated state to the wasm client with
389- # ``flush_wasm_state()``. An unresolvable node id is a logged no-op at
390- # every layer: nothing is applied and nothing is flushed.
388+ # pipeline. Nothing is pushed to the client from here. The client applies
389+ # its own change, and a push at this layer rebuilds the client, which
390+ # re-delivers state and fires further triggers. Presenting a server-originated
391+ # change is the renderer's, since it is not mode-agnostic.
392+ # An unresolvable node id is a logged no-op at the apply layer.
391393 #
392394 # Every value that arrives here is absolute, never relative: the caller
393395 # always supplies the target value, never a toggle or a delta.
@@ -400,8 +402,6 @@ def set_part_visibility(self, node_id: int, visible: bool) -> None:
400402 logger .debug ("set_part_visibility: no dataset owns node %s; skipping." , node_id )
401403 return
402404 self ._renderer .apply_visibility (node_id , visible )
403- # TODO: uncomment when adding round trips
404- # self._renderer.flush_wasm_state()
405405
406406 def set_part_opacity (self , node_id : int , opacity : float ) -> None :
407407 """Set the opacity of the part identified by *node_id*."""
@@ -410,8 +410,6 @@ def set_part_opacity(self, node_id: int, opacity: float) -> None:
410410 logger .debug ("set_part_opacity: no dataset owns node %s; skipping." , node_id )
411411 return
412412 self ._renderer .apply_opacity (node_id , opacity )
413- # TODO: uncomment when adding round trips
414- # self._renderer.flush_wasm_state()
415413
416414 def set_part_diffuse_color (self , node_id : int , diffuse_rgb : list [float ] | None ) -> None :
417415 """
@@ -433,8 +431,6 @@ def set_part_diffuse_color(self, node_id: int, diffuse_rgb: list[float] | None)
433431 self ._renderer .apply_diffuse_color (
434432 node_id , applied_rgb [0 ], applied_rgb [1 ], applied_rgb [2 ]
435433 )
436- # TODO: uncomment when adding round trips
437- # self._renderer.flush_wasm_state()
438434
439435 def set_part_selected (self , node_id : int , selected : bool ) -> None :
440436 """
@@ -456,8 +452,6 @@ def set_part_selected(self, node_id: int, selected: bool) -> None:
456452 stored_rgb if stored_rgb is not None else list (VisorColors .DefaultMeshColor )
457453 )
458454 self ._renderer .apply_selected (node_id , selected , diffuse_rgb )
459- # TODO: uncomment when adding round trips
460- # self._renderer.flush_wasm_state()
461455
462456 def set_part_color_variable (
463457 self ,
@@ -485,8 +479,6 @@ def set_part_color_variable(
485479 self ._renderer .apply_color_variable (
486480 node_id , variable_id , association , array_name , component , min_val , max_val
487481 )
488- # TODO: uncomment when adding round trips
489- # self._renderer.flush_wasm_state()
490482
491483 def clear_part_color_variable (self , node_id : int ) -> None :
492484 """
@@ -502,8 +494,6 @@ def clear_part_color_variable(self, node_id: int) -> None:
502494 )
503495 return
504496 self ._renderer .clear_color_variable (node_id )
505- # TODO: uncomment when adding round trips
506- # self._renderer.flush_wasm_state()
507497
508498 # ------------------------------------------------------------------
509499 # Internal helpers
0 commit comments