11"""A wrapper to improve the user interface of graphics."""
22
3+ from ansys .fluent .visualization import get_config
34from ansys .fluent .visualization .graphics import graphics_windows_manager
5+ from ansys .fluent .visualization .plotter .plotter_windows import PlotterWindow
46
57
68class GraphicsWindow :
@@ -14,6 +16,7 @@ def add_graphics(
1416 object ,
1517 position : tuple = (0 , 0 ),
1618 opacity : float = 1 ,
19+ title : str = "" ,
1720 ) -> None :
1821 """Add data to a plot.
1922
@@ -25,27 +28,43 @@ def add_graphics(
2528 Position of the sub-plot.
2629 opacity: float, optional
2730 Transparency of the sub-plot.
31+ title: str, optional
32+ Title of the sub-plot (only for plots).
2833 """
2934 self ._graphics_objs .append ({** locals ()})
3035
36+ def _all_plt_objs (self ):
37+ from ansys .fluent .core .post_objects .post_object_definitions import PlotDefn
38+
39+ for obj in self ._graphics_objs :
40+ if not isinstance (obj ["object" ].obj , PlotDefn ):
41+ return False
42+ return True
43+
3144 def show (self ) -> None :
3245 """Render the objects in window and display the same."""
3346 self .window_id = graphics_windows_manager .open_window (grid = self ._grid )
34- self .graphics_window = graphics_windows_manager ._post_windows .get (
35- self .window_id
36- )
37- self ._renderer = self .graphics_window .renderer
38- self .plotter = self .graphics_window .renderer .plotter
39- for i in range (len (self ._graphics_objs )):
40- graphics_windows_manager .add_graphics (
41- object = self ._graphics_objs [i ]["object" ].obj ,
42- window_id = self .window_id ,
43- fetch_data = True ,
44- overlay = True ,
45- position = self ._graphics_objs [i ]["position" ],
46- opacity = self ._graphics_objs [i ]["opacity" ],
47+ if self ._all_plt_objs () and get_config ()["blocking" ]:
48+ p = PlotterWindow (grid = self ._grid )
49+ for obj in self ._graphics_objs :
50+ p .add_plots (obj ["object" ], position = obj ["position" ], title = obj ["title" ])
51+ p .show (self .window_id )
52+ else :
53+ self .graphics_window = graphics_windows_manager ._post_windows .get (
54+ self .window_id
4755 )
48- graphics_windows_manager .show_graphics (self .window_id )
56+ self ._renderer = self .graphics_window .renderer
57+ self .plotter = self .graphics_window .renderer .plotter
58+ for i in range (len (self ._graphics_objs )):
59+ graphics_windows_manager .add_graphics (
60+ object = self ._graphics_objs [i ]["object" ].obj ,
61+ window_id = self .window_id ,
62+ fetch_data = True ,
63+ overlay = True ,
64+ position = self ._graphics_objs [i ]["position" ],
65+ opacity = self ._graphics_objs [i ]["opacity" ],
66+ )
67+ graphics_windows_manager .show_graphics (self .window_id )
4968
5069 def save_graphic (
5170 self ,
0 commit comments