def run(self): # Remove the renderer from the current render window. self.old_rw.remove_renderer(self.ren) # Creates renderwindow that should be used ONLY for # visualization in full screen full_rw = tvtk.RenderWindow(stereo_capable_window=True, full_screen=True ) # add the current visualization full_rw.add_renderer(self.ren) # provides a simple interactor style = tvtk.InteractorStyleTrackballCamera() self.iren = tvtk.RenderWindowInteractor(render_window=full_rw, interactor_style=style) # Gets parameters for stereo visualization if self.old_rw.stereo_render: full_rw.set(stereo_type=self.old_rw.stereo_type, stereo_render=True) # Starts the interactor self.iren.initialize() self.iren.render() self.iren.start() # Once the full screen window is quit this releases the # renderer before it is destroyed, and return it to the main # renderwindow. full_rw.remove_renderer(self.ren) self.old_rw.add_renderer(self.ren) self.old_rw.render() self.iren.disable()
def _create_tvtk_window(self, size=(500, 500)): # create a renderer self.renderer = tvtk.Renderer() # create a render window and hand it the renderer self.render_window = tvtk.RenderWindow(size=size) self.render_window.add_renderer(self.renderer) # create interactor and hand it the render window # This handles mouse interaction with window. self.interactor = tvtk.RenderWindowInteractor( render_window=self.render_window) self.gui = None
def show(d): l = tvtk.LookupTable(table_range=(0, 1)) m = tvtk.PolyDataMapper(input=d.output, scalar_visibility=True, scalar_mode="use_cell_data") p = tvtk.Property(representation="s") a = tvtk.Actor(mapper=m, property=p) ren = tvtk.Renderer(background=(.1, .2, .4)) ren.add_actor(a) rw = tvtk.RenderWindow(size=(600, 600)) rw.add_renderer(ren) rwi = tvtk.RenderWindowInteractor(render_window=rw) rwi.initialize() rwi.start()
def _create_control(self, parent): """ Create the toolkit-specific control that represents the widget. """ # Create the renderwindow. renwin = self._renwin = tvtk.RenderWindow() # If we are doing offscreen rendering we set the window size to # (1,1) so the window does not appear at all if self.off_screen_rendering: renwin.size = (1,1) renwin.set(point_smoothing=self.point_smoothing, line_smoothing=self.line_smoothing, polygon_smoothing=self.polygon_smoothing) # Create a renderer and add it to the renderwindow self._renderer = tvtk.Renderer() renwin.add_renderer(self._renderer) self._interactor = tvtk.RenderWindowInteractor(render_window=renwin) # Save a reference to our camera so it is not GC'd -- needed for # the sync_traits to work. self._camera = self.camera # Sync various traits. self._renderer.background = self.background self.sync_trait('background', self._renderer) self._renderer.on_trait_change(self.render, 'background') self._camera.parallel_projection = self.parallel_projection self.sync_trait('parallel_projection', self._camera) renwin.off_screen_rendering = self.off_screen_rendering self.sync_trait('off_screen_rendering', self._renwin) self.render_window.on_trait_change(self.render, 'off_screen_rendering') self.render_window.on_trait_change(self.render, 'stereo_render') self.render_window.on_trait_change(self.render, 'stereo_type') self.camera.on_trait_change(self.render, 'parallel_projection') self._interactor.initialize() self._interactor.render() self.light_manager = light_manager.LightManager(self) if self.off_screen_rendering: # We want the default size to be the normal (300, 300). # Setting the size now should not resize the window if # offscreen is working properly in VTK. renwin.size = (300, 300) return self._interactor
# -*- coding: utf-8 -*- """ Created on Wed Nov 9 08:36:22 2016 @author: Gordon """ from enthought.tvtk.api import tvtk # 创建一个圆锥数据源,并且同时设置其高度,底面半径和底面圆的分辨率(用36边形近似) cs = tvtk.ConeSource(height=3.0, radius=1.0, resolution=36) # 使用PolyDataMapper将数据转换为图形数据 m = tvtk.PolyDataMapper(input = cs.output) # 创建一个Actor a = tvtk.Actor(mapper=m) # 创建一个Renderer,将Actor添加进去 ren = tvtk.Renderer(background=(0.1, 0.2, 0.4)) ren.add_actor(a) # 创建一个RenderWindow(窗口),将Renderer添加进去 rw = tvtk.RenderWindow(size=(300,300)) rw.add_renderer(ren) # 创建一个RenderWindowInteractor(窗口的交互工具) rwi = tvtk.RenderWindowInteractor(render_window=rw) # 开启交互 rwi.initialize() rwi.start()
triangles = array([[0, 1, 3], [0, 3, 2], [1, 2, 3], [0, 2, 1]]) points = data[:, :3] temperature = data[:, -1] ### TVTK PIPELINE # create a renderer renderer = tvtk.Renderer() # create a render window and hand it the renderer render_window = tvtk.RenderWindow(size=(400, 400)) render_window.add_renderer(renderer) # create interactor and hand it the render window # This handles mouse interaction with window. interactor = tvtk.RenderWindowInteractor(render_window=render_window) # Create a mesh from the data created above. mesh = tvtk.PolyData(points=points, polys=triangles) mesh.point_data.scalars = temperature # Set the mapper to scale temperature range # across the entire range of colors mapper = tvtk.PolyDataMapper(input=mesh) mapper.scalar_range = min(temperature), max(temperature) # Create mesh actor for display actor = tvtk.Actor(mapper=mapper) # Create a scalar bar scalar_bar = tvtk.ScalarBarActor(title="Temperature",
data = tvtk.PolyData(points=points, polys=cells, lines=lines) data.point_data.scalars = numpy.linspace(-5,5,6) lm = LUTManager() #lm.configure_traits() map = tvtk.PolyDataMapper(input=data) map.lookup_table = lm.lut act = tvtk.Actor(mapper=map) x,y = numpy.ogrid[-5:5:0.1, -5:5:0.1] r = x**2 + y**2 z = numpy.cos(r*2) * numpy.exp(-r/3) img = tvtk.ImageData(origin=(2,2,2), spacing=(0.1,0.1,0.1), dimensions = (z.shape[0], z.shape[1],1 )) img.point_data.scalars=z.ravel() img_poly = tvtk.GeometryFilter(input=img) warp = tvtk.WarpScalar(input_connection=img_poly.output_port) norm = tvtk.PolyDataNormals(input_connection = warp.output_port) img_map = tvtk.PolyDataMapper(input_connection=norm.output_port) img_act = tvtk.Actor(mapper=img_map) ren = tvtk.Renderer() #ren.add_actor(act) ren.add_actor(img_act) renwin = tvtk.RenderWindow() renwin.add_renderer(ren) iren = tvtk.RenderWindowInteractor(render_window=renwin) iren.start()