@@ -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