@@ -62,7 +62,7 @@ def __init__(
6262 self .SELECTED_DATA_ARRAY = "viewer_selected_data_array"
6363 self .state .change ( self .SELECTED_DATA_ARRAY )( self ._update_actor_array )
6464
65- self .box_engine : BoxViewer | None = None
65+ self .box_engine : dict [ str , BoxViewer ] = {}
6666 self .region_engine = region_viewer
6767 self .well_engine = well_viewer
6868 self ._perforations : dict [ str , PerforationViewer ] = {}
@@ -364,25 +364,26 @@ def _update_box( self, active_block: Box, show_obj: bool ) -> None:
364364 )
365365 return
366366
367- if self .box_engine is not None :
368- box_polydata_actor : pv .Actor = self .box_engine .get_box_polydata_actor ()
369- extracted_cell_actor : pv .Actor = self .box_engine .get_extracted_cells_actor ()
367+ if self .box_engine is not None and active_block . name in self . box_engine :
368+ box_polydata_actor : pv .Actor = self .box_engine [ active_block . name ] .get_box_polydata_actor ()
369+ extracted_cell_actor : pv .Actor = self .box_engine [ active_block . name ] .get_extracted_cells_actor ()
370370 self .plotter .remove_actor ( box_polydata_actor )
371371 self .plotter .remove_actor ( extracted_cell_actor )
372+ del self .box_engine [ active_block .name ]
372373
373374 if not show_obj :
374375 self ._make_mesh_transparent ( False )
375376 return
376377
377378 box : Box = active_block
378- self .box_engine = BoxViewer ( self .region_engine .input , box )
379+ self .box_engine [ active_block . name ] = BoxViewer ( self .region_engine .input , box )
379380
380- box_polydata : pv .PolyData = self .box_engine .get_box_polydata ()
381- extracted_cell : pv .UnstructuredGrid = self .box_engine .get_extracted_cells ()
381+ box_polydata : pv .PolyData = self .box_engine [ active_block . name ] .get_box_polydata ()
382+ extracted_cell : pv .UnstructuredGrid = self .box_engine [ active_block . name ] .get_extracted_cells ()
382383
383384 if box_polydata is not None and extracted_cell is not None :
384385 self ._make_mesh_transparent ( True )
385386 _box_polydata_actor = self .plotter .add_mesh ( box_polydata , opacity = 0.2 )
386387 _extracted_cells_actor = self .plotter .add_mesh ( extracted_cell , show_edges = True )
387- self .box_engine .set_box_polydata_actor ( _box_polydata_actor )
388- self .box_engine .set_extracted_cells_actor ( _extracted_cells_actor )
388+ self .box_engine [ active_block . name ] .set_box_polydata_actor ( _box_polydata_actor )
389+ self .box_engine [ active_block . name ] .set_extracted_cells_actor ( _extracted_cells_actor )
0 commit comments