Exemple #1
0
    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()
Exemple #2
0
 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
Exemple #3
0
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()
Exemple #4
0
    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
Exemple #5
0
# -*- 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()
Exemple #6
0
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()