Skip to content
Open
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
36 changes: 36 additions & 0 deletions geos-trame/src/geos/trame/app/ui/viewer/viewer.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,18 @@ def _setup_slider( self ) -> None:
value=perforation_radius,
)

self.plotter.add_slider_widget(
self._on_change_zscale,
[ 1, 10 ],
title="Z exaggeration",
title_opacity=0.5,
pointa=( 0.02, 0.37 ),
pointb=( 0.30, 0.37 ),
title_color="black",
title_height=0.02,
value=1.,
)

def _remove_slider( self ) -> None:
"""Create slider to control in the gui well parameters."""
self.plotter.clear_slider_widgets()
Expand All @@ -211,6 +223,26 @@ def _on_change_perforation_size( self, value: float ) -> None:
for _, perforation in self._perforations.items():
perforation.update_perforation_radius( value )

def _on_change_zscale( self, value: float ) -> None:
self.state[ self.ZAMPLIFICATION ] = value
if self._mesh_actor is not None:
self._mesh_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
if hasattr( self.box_engine, "_box_polydata_actor" ) and hasattr( self.box_engine,
"_extracted_cells_actor" ):
self.box_engine._box_polydata_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
self.box_engine._extracted_cells_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )

if self.plotter.plane_widgets:
self.plotter.plane_widgets[ 0 ].PlaceWidget( list( self._mesh_actor.GetBounds() ) )
self.plotter.plane_widgets[ 0 ].SetPlaceFactor( self.state[ self.ZAMPLIFICATION ] )

# if self.well_engine._wells_actors:
# for wa in self.well_engine._wells_actors:
# wa.actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )

self.plotter.renderer.Modified()
return

def _get_perforation_size( self ) -> float | None:
if len( self._perforations ) <= 0:
return 5.0
Expand All @@ -230,6 +262,7 @@ def _update_internalwell( self, path: str, show: bool ) -> None:
return

tube_actor = self.plotter.add_mesh( self.well_engine.get_tube( self.well_engine.get_last_mesh_idx() ) )
tube_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
self.well_engine.append_actor( path, tube_actor )

self.ctrl.view_update()
Expand All @@ -245,6 +278,7 @@ def _update_vtkwell( self, path: str, show: bool ) -> None:
return

tube_actor = self.plotter.add_mesh( self.well_engine.get_tube( self.well_engine.get_last_mesh_idx() ) )
tube_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
self.well_engine.append_actor( path, tube_actor )

self.ctrl.view_update()
Expand Down Expand Up @@ -384,6 +418,8 @@ def _update_box( self, active_block: Box, show_obj: bool ) -> None:
if box_polydata is not None and extracted_cell is not None:
self._make_mesh_transparent( True )
_box_polydata_actor = self.plotter.add_mesh( box_polydata, opacity=0.2 )
_box_polydata_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
_extracted_cells_actor = self.plotter.add_mesh( extracted_cell, show_edges=True )
_extracted_cells_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
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 )