Skip to content

Commit bd3b9ea

Browse files
authored
feat: adding z-scale modifier (#201)
1 parent 2c48d31 commit bd3b9ea

File tree

1 file changed

+37
-0
lines changed
  • geos-trame/src/geos/trame/app/ui/viewer

1 file changed

+37
-0
lines changed

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

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,18 @@ def _setup_slider( self ) -> None:
197197
value=perforation_radius,
198198
)
199199

200+
self.plotter.add_slider_widget(
201+
self._on_change_zscale,
202+
[ 1, 10 ],
203+
title="Z exaggeration",
204+
title_opacity=0.5,
205+
pointa=( 0.02, 0.37 ),
206+
pointb=( 0.30, 0.37 ),
207+
title_color="black",
208+
title_height=0.02,
209+
value=1.,
210+
)
211+
200212
def _remove_slider( self ) -> None:
201213
"""Create slider to control in the gui well parameters."""
202214
self.plotter.clear_slider_widgets()
@@ -211,6 +223,27 @@ def _on_change_perforation_size( self, value: float ) -> None:
211223
for _, perforation in self._perforations.items():
212224
perforation.update_perforation_radius( value )
213225

226+
def _on_change_zscale( self, value: float ) -> None:
227+
self.state[ self.ZAMPLIFICATION ] = value
228+
if self._mesh_actor is not None:
229+
self._mesh_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
230+
for k, _ in self.box_engine.items():
231+
if hasattr( self.box_engine[ k ], "_box_polydata_actor" ) and hasattr(
232+
self.box_engine[ k ], "_extracted_cells_actor" ):
233+
self.box_engine[ k ]._box_polydata_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
234+
self.box_engine[ k ]._extracted_cells_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
235+
236+
if self.plotter.plane_widgets:
237+
self.plotter.plane_widgets[ 0 ].PlaceWidget( list( self._mesh_actor.GetBounds() ) )
238+
self.plotter.plane_widgets[ 0 ].SetPlaceFactor( self.state[ self.ZAMPLIFICATION ] )
239+
240+
# if self.well_engine._wells_actors:
241+
# for wa in self.well_engine._wells_actors:
242+
# wa.actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
243+
244+
self.plotter.renderer.Modified()
245+
return
246+
214247
def _get_perforation_size( self ) -> float | None:
215248
if len( self._perforations ) <= 0:
216249
return 5.0
@@ -230,6 +263,7 @@ def _update_internalwell( self, path: str, show: bool ) -> None:
230263
return
231264

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

235269
self.ctrl.view_update()
@@ -245,6 +279,7 @@ def _update_vtkwell( self, path: str, show: bool ) -> None:
245279
return
246280

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

250285
self.ctrl.view_update()
@@ -384,6 +419,8 @@ def _update_box( self, active_block: Box, show_obj: bool ) -> None:
384419
if box_polydata is not None and extracted_cell is not None:
385420
self._make_mesh_transparent( True )
386421
_box_polydata_actor = self.plotter.add_mesh( box_polydata, opacity=0.2 )
422+
_box_polydata_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
387423
_extracted_cells_actor = self.plotter.add_mesh( extracted_cell, show_edges=True )
424+
_extracted_cells_actor.SetScale( 1.0, 1.0, self.state[ self.ZAMPLIFICATION ] )
388425
self.box_engine[ active_block.name ].set_box_polydata_actor( _box_polydata_actor )
389426
self.box_engine[ active_block.name ].set_extracted_cells_actor( _extracted_cells_actor )

0 commit comments

Comments
 (0)