Skip to content

Commit 54a4046

Browse files
authored
fix: Display multiple box (#199)
1 parent e35c075 commit 54a4046

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

geos-trame/src/geos/trame/app/ui/viewer/viewer.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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 )

geos-trame/tests/test_box_intersection.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ def test_box_intersection( trame_server_layout: tuple[ Server, VAppLayout ] ) ->
2626
app.deckInspector.state.object_state = [ "Problem/Geometry/0/Box/0", True ]
2727
app.deckInspector.state.flush()
2828

29-
box = app.deckViewer.box_engine._box
30-
cells = app.deckViewer.box_engine._extracted_cells
29+
box = app.deckViewer.box_engine[ "box_1" ]._box
30+
cells = app.deckViewer.box_engine[ "box_1" ]._extracted_cells
3131

3232
assert box is not None
3333
assert box.x_min == '{ 3509, 4117, -596 }'

0 commit comments

Comments
 (0)