Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions geos-trame/src/geos/trame/app/ui/viewer/viewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def __init__(
self.SELECTED_DATA_ARRAY = "viewer_selected_data_array"
self.state.change( self.SELECTED_DATA_ARRAY )( self._update_actor_array )

self.box_engine: BoxViewer | None = None
self.box_engine: dict[ str, BoxViewer ] = {}
self.region_engine = region_viewer
self.well_engine = well_viewer
self._perforations: dict[ str, PerforationViewer ] = {}
Expand Down Expand Up @@ -354,23 +354,24 @@ def _update_box( self, active_block: Box, show_obj: bool ) -> None:
)
return

if self.box_engine is not None:
box_polydata_actor: pv.Actor = self.box_engine.get_box_polydata_actor()
extracted_cell_actor: pv.Actor = self.box_engine.get_extracted_cells_actor()
if self.box_engine is not None and active_block.name in self.box_engine:
box_polydata_actor: pv.Actor = self.box_engine[ active_block.name ].get_box_polydata_actor()
extracted_cell_actor: pv.Actor = self.box_engine[ active_block.name ].get_extracted_cells_actor()
self.plotter.remove_actor( box_polydata_actor )
self.plotter.remove_actor( extracted_cell_actor )
del self.box_engine[ active_block.name ]

if not show_obj:
return

box: Box = active_block
self.box_engine = BoxViewer( self.region_engine.input, box )
self.box_engine[ active_block.name ] = BoxViewer( self.region_engine.input, box )

box_polydata: pv.PolyData = self.box_engine.get_box_polydata()
extracted_cell: pv.UnstructuredGrid = self.box_engine.get_extracted_cells()
box_polydata: pv.PolyData = self.box_engine[ active_block.name ].get_box_polydata()
extracted_cell: pv.UnstructuredGrid = self.box_engine[ active_block.name ].get_extracted_cells()

if box_polydata is not None and extracted_cell is not None:
_box_polydata_actor = self.plotter.add_mesh( box_polydata, opacity=0.2 )
_extracted_cells_actor = self.plotter.add_mesh( extracted_cell, show_edges=True )
self.box_engine.set_box_polydata_actor( _box_polydata_actor )
self.box_engine.set_extracted_cells_actor( _extracted_cells_actor )
self.box_engine[ active_block.name ].set_box_polydata_actor( _box_polydata_actor )
self.box_engine[ active_block.name ].set_extracted_cells_actor( _extracted_cells_actor )
4 changes: 2 additions & 2 deletions geos-trame/tests/test_box_intersection.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ def test_box_intersection( trame_server_layout: tuple[ Server, VAppLayout ] ) ->
app.deckInspector.state.object_state = [ "Problem/Geometry/0/Box/0", True ]
app.deckInspector.state.flush()

box = app.deckViewer.box_engine._box
cells = app.deckViewer.box_engine._extracted_cells
box = app.deckViewer.box_engine[ "box_1" ]._box
cells = app.deckViewer.box_engine[ "box_1" ]._extracted_cells

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