def test_3d_data(self): "Test for 3D data arrays." # Add a 3D data source d = self.data sc, vec = self.make_3d_data() d.scalar_data = sc d.vector_data = vec d.start() # Start the object so it flushes the pipeline etc. # Create an outline for the data. o = Outline() d.add_child(o) o.start() self.assertEqual(tuple(o.actor.actor.bounds), (0, 1., 0., 1., 0., 1.)) # Create a surface module. surf = Surface() d.add_child(surf) self.assertEqual(surf.running, True) tps = numpy.transpose expect = [tps(sc), tps(vec, (2,1,0,3))] sc2 = surf.actor.mapper.input.point_data.scalars.to_array() self.assertEqual(numpy.allclose(sc2.flatten(), expect[0].flatten()), True) vec2 = surf.actor.mapper.input.point_data.vectors.to_array() self.assertEqual(numpy.allclose(vec2.flatten(), expect[1].flatten()), True)
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e=e # Read the multi-block plot3d file. r = PLOT3DReader() r.reader.set(has_byte_count=True, multi_grid=True, byte_order='little_endian') r.initialize(get_example_data('tiny.xyz'), get_example_data('tiny.q'), configure=False) e.add_source(r) # Add the filter. f = SelectOutput() e.add_filter(f) # Create an outline for the data. o = Outline() e.add_module(o) o.render() self.o=o self.r=r self.e=e self.scene = e.current_scene return
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e = e # Read the multi-block plot3d file. r = PLOT3DReader() r.reader.set(has_byte_count=True, multi_grid=True, byte_order='little_endian') r.initialize(get_example_data('tiny.xyz'), get_example_data('tiny.q'), configure=False) e.add_source(r) # Add the filter. f = SelectOutput() e.add_filter(f) # Create an outline for the data. o = Outline() e.add_module(o) o.render() self.o = o self.r = r self.e = e self.scene = e.current_scene return
def test_2d_data(self): """Generic tests for 2D data arrays.""" d = self.data sc, vec = self.make_2d_data() d.origin = (-1, -1, 0) d.scalar_data = sc d.vector_data = vec d.start() # Start the object so it flushes the pipeline etc. # Create an outline for the data. o = Outline() d.add_child(o) o.start() self.assertEqual(tuple(o.actor.actor.bounds), (-1., 0., -1., 0., 0., 0.)) # Create a surface module. surf = Surface() d.add_child(surf) self.assertEqual(surf.running, True) tps = numpy.transpose expect = [tps(sc), tps(vec, (1, 0, 2))] sc1 = surf.actor.mapper.input.point_data.scalars.to_array() self.assertEqual(numpy.allclose(sc1.flatten(), expect[0].flatten()), True) vec1 = surf.actor.mapper.input.point_data.vectors.to_array() self.assertEqual(numpy.allclose(vec1.flatten(), expect[1].flatten()), True)
def glyph(): """The script itself. We needn't have defined a function but having a function makes this more reusable. """ # 'mayavi' is always defined on the interpreter. # Create a new VTK scene. mayavi.new_scene() # Read a VTK (old style) data file. r = VTKXMLFileReader() r.initialize(join(mayavi2.get_data_dir(dirname(abspath(__file__))), 'fire_ug.vtu')) mayavi.add_source(r) # Create an outline and a vector cut plane. mayavi.add_module(Outline()) v = VectorCutPlane() mayavi.add_module(v) v.glyph.color_mode = 'color_by_scalar' # Now mask the points and show glyphs (we could also use # Vectors but glyphs are a bit more generic) m = MaskPoints() m.filter.set(on_ratio=10, random_mode=True) mayavi.add_filter(m) g = Glyph() mayavi.add_module(g) # Note that this adds the module to the filtered output. g.glyph.scale_mode = 'scale_by_vector' # Use arrows to view the scalars. gs = g.glyph.glyph_source gs.glyph_source = gs.glyph_dict['arrow_source']
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() s = e.new_scene() poly_data = BuiltinSurface() e.add_source(poly_data) outline = Outline() e.add_module(outline) surface = Surface() e.add_module(surface) poly_data.data_source.shaft_radius = 0.05 poly_data.data_source.shaft_resolution = 7 poly_data.data_source.tip_radius = 0.1 self.e = e self.scene = e.current_scene return
def setUp(self): e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() s = e.new_scene() image_data = BuiltinImage() e.add_source(image_data) outline = Outline() e.add_module(outline) surface = Surface() e.add_module(surface) image_data.data_source.radius = array([80., 80., 80.]) image_data.data_source.center = array([150., 150., 0.]) image_data.data_source.whole_extent = array([10, 245, 10, 245, 0, 0]) self.e = e self.scene = e.current_scene return
def setUp(self): e = NullEngine() e.start() e.new_scene() scene = e.scenes[-1] s = ParametricSurface() e.add_source(s) o = Outline() s.add_child(o) o1 = Outline() s.add_child(o1) self.scene = scene self.e = e self.s = s self.o = o self.o1 = o1 return
def test_pickle(self): "Test if pickling works." # Test if saving a visualization and restoring it works. d = self.data sc, vec = self.make_3d_data() d.scalar_data = sc d.vector_data = vec d.spacing = [1, 2, 3] d.origin = [4, 5, 6] d.start() # Start the object so it flushes the pipeline etc. # Create an outline for the data. o = Outline() d.add_child(o) o.start() # Create a surface module. surf = Surface() d.add_child(surf) data = pickle.dumps(d) del d, surf, o d = pickle.loads(data) # We must explicitly start the object. d.start() mm = d.children[0] o, surf = mm.children # Test the unpciked state. self.assertEqual(tuple(o.actor.actor.bounds), (4., 5., 5., 7., 6., 9.)) self.assertEqual(surf.running, True) self.assertEqual(o.running, True) self.assertEqual(d.running, True) self.assertEqual(numpy.allclose(d.spacing, [1, 2, 3]), True) self.assertEqual(numpy.allclose(d.origin, [4, 5, 6]), True) tps = numpy.transpose expect = [tps(sc), tps(vec, (2,1,0,3))] sc2 = surf.actor.mapper.input.point_data.scalars.to_array() self.assertEqual(numpy.allclose(sc2.flatten(), expect[0].flatten()), True) vec2 = surf.actor.mapper.input.point_data.vectors.to_array() self.assertEqual(numpy.allclose(vec2.flatten(), expect[1].flatten()), True)
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() s = e.new_scene() self.e = e self.s = s ############################################################ # Create a new scene and set up the visualization. d = ArraySource() sc, vec = self.make_data() d.origin = (-5, -5, -5) d.scalar_data = sc d.vector_data = vec e.add_source(d) # Create an outline for the data. o = Outline() e.add_module(o) # View the data. st = Streamline() e.add_module(st) widget = st.seed.widget widget.set(radius=1.0, center=(-4.0, -4.0, -4.0), theta_resolution=4, phi_resolution=4) st = Streamline(streamline_type='ribbon') seed = st.seed seed.widget = seed.widget_list[1] e.add_module(st) seed.widget.set(point1=(-5.0, -4.5, -4.0), point2=(-5.0, -4.5, 4.0)) st.ribbon_filter.width = 0.25 st = Streamline(streamline_type='tube') seed = st.seed seed.widget = seed.widget_list[2] e.add_module(st) seed.widget.set(center=(-5.0, 1.5, -2.5)) st.tube_filter.radius = 0.15 st = Streamline(streamline_type='tube') seed = st.seed seed.widget = seed.widget_list[3] e.add_module(st) seed.widget.position = (-5.0, 3.75, 3.75) st.tube_filter.radius = 0.2 self.st = st self.scene = e.current_scene return
def surf_regular(): """Now visualize the data as done in mlab. """ w = WarpScalar() mayavi.add_filter(w) o = Outline() s = Surface() mayavi.add_module(o) mayavi.add_module(s)
def user_outline(): """A Factory function that creates a new module to add to the pipeline. Note that the method safely does any mayavi imports inside avoiding any circular imports. """ print "User Outline" from enthought.mayavi.modules.outline import Outline o = Outline(outline_mode='cornered', name='UserOutline') return o
def view(): from enthought.mayavi.sources.vtk_data_source import VTKDataSource from enthought.mayavi.modules.outline import Outline from enthought.mayavi.modules.image_plane_widget import ImagePlaneWidget mayavi2.new_scene() src = VTKDataSource(data=spoints) mayavi2.add_source(src) mayavi2.add_module(Outline()) mayavi2.add_module(ImagePlaneWidget())
def contour(): """The script itself. We needn't have defined a function but having a function makes this more reusable. """ # 'mayavi' is always defined on the interpreter. # Create a new scene. mayavi.new_scene() # Read a VTK (old style) data file. r = VTKFileReader() filename = join(mayavi2.get_data_dir(dirname(abspath(__file__))), 'heart.vtk') r.initialize(filename) mayavi.add_source(r) # Create an outline for the data. o = Outline() mayavi.add_module(o) # Create three simple grid plane modules. # First normal to 'x' axis. gp = GridPlane() mayavi.add_module(gp) # Second normal to 'y' axis. gp = GridPlane() mayavi.add_module(gp) gp.grid_plane.axis = 'y' # Third normal to 'z' axis. gp = GridPlane() mayavi.add_module(gp) gp.grid_plane.axis = 'z' # Create one ContourGridPlane normal to the 'x' axis. cgp = ContourGridPlane() mayavi.add_module(cgp) # Set the position to the middle of the data. cgp.grid_plane.position = 15 # Another with filled contours normal to 'y' axis. cgp = ContourGridPlane() mayavi.add_module(cgp) # Set the axis and position to the middle of the data. cgp.grid_plane.axis = 'y' cgp.grid_plane.position = 15 cgp.contour.filled_contours = True # An isosurface module. iso = IsoSurface(compute_normals=True) mayavi.add_module(iso) iso.contour.contours = [220.0] # An interactive scalar cut plane. cp = ScalarCutPlane() mayavi.add_module(cp) cp.implicit_plane.normal = 0, 0, 1
def view(): from enthought.mayavi.sources.vtk_data_source import VTKDataSource from enthought.mayavi.modules.outline import Outline from enthought.mayavi.modules.surface import Surface from enthought.mayavi.modules.vectors import Vectors mayavi.new_scene() # The single type one src = VTKDataSource(data=ug1) mayavi.add_source(src) mayavi.add_module(Outline()) mayavi.add_module(Surface()) mayavi.add_module(Vectors()) # Mixed types. src = VTKDataSource(data=ug2) mayavi.add_source(src) mayavi.add_module(Outline()) mayavi.add_module(Surface()) mayavi.add_module(Vectors())
def test_remove(self): "Does obj.remove() work correctly" # Fails only when the current object is the one that is removed. self.e.current_object = self.o1 mm = self.o1.module_manager # Remove the object. self.o1.remove() # Now add another object. o1 = Outline() self.e.add_module(o1) # Is it really added? self.assertEqual(o1.module_manager, mm) self.assertEqual(o1.parent, mm)
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e = e sgrid = datasets.generateStructuredGrid() src = VTKDataSource(data=sgrid) e.add_source(src) # Create an outline for the data. o = Outline() e.add_module(o) # Create one ContourGridPlane normal to the 'x' axis. cgp1 = ContourGridPlane() e.add_module(cgp1) # Set the position to the middle of the data. cgp1.grid_plane.position = 15 # Another with filled contours normal to 'y' axis. cgp2 = ContourGridPlane() cgp2.contour.filled_contours = True # Set the axis and position to the middle of the data. cgp2.grid_plane.axis = 'y' cgp2.grid_plane.position = 15 e.add_module(cgp2) # An isosurface module. iso = IsoSurface(compute_normals=True) e.add_module(iso) iso.contour.contours = [5] # An interactive scalar cut plane. cp = ScalarCutPlane() e.add_module(cp) ip = cp.implicit_plane ip.normal = 0, 0, 1 ip.origin = 0.5, 0.5, 1.0 # Since this is running offscreen this seems necessary. ip.widget.origin = 0.5, 0.5, 1.0 ip.widget.enabled = False self.scene = e.current_scene self.cgp2 = cgp2 self.iso = iso self.cp = cp return
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() s=e.new_scene() self.e=e self.s=s ############################################################ # Create a new scene and set up the visualization. d = ArraySource() sc, vec = self.make_data() d.origin = (-5, -5, -5) d.scalar_data = sc d.vector_data = vec e.add_source(d) # Create an outline for the data. o = Outline() e.add_module(o) # Glyphs for the scalars g = Glyph() e.add_module(g) g.glyph.glyph_source.glyph_position = 'center' g.glyph.glyph.vector_mode = 'use_normal' g.glyph.glyph.scale_factor = 0.5 g.actor.property.line_width = 1.0 v = VectorCutPlane() glyph = v.glyph gs = glyph.glyph_source gs.glyph_position = 'tail' gs.glyph_source = gs.glyph_list[1] e.add_module(v) v.implicit_plane.set(normal=(0, 1, 0), origin=(0, 3, 0)) v = VectorCutPlane() glyph = v.glyph gs = glyph.glyph_source gs.glyph_source = gs.glyph_list[2] gs.glyph_position = 'head' e.add_module(v) v.implicit_plane.set(normal=(0, 1, 0), origin=(0, -2, 0)) self.g=g self.v=v self.scene = e.current_scene return
def _view_data_fired(self): mayavi = self.get_mayavi() from enthought.mayavi.modules.outline import Outline from enthought.mayavi.modules.image_plane_widget import ImagePlaneWidget # Visualize the data. o = Outline() mayavi.add_module(o) ipw = ImagePlaneWidget() mayavi.add_module(ipw) ipw.module_manager.scalar_lut_manager.show_scalar_bar = True ipw_y = ImagePlaneWidget() mayavi.add_module(ipw_y) ipw_y.ipw.plane_orientation = 'y_axes'
def contour(i, x): """The script itself. We needn't have defined a function but having a function makes this more reusable. """ # 'mayavi' is always defined on the interpreter. # Create a new scene. mayavi.new_scene() # Read in datacube fd = open("output/output-cube-%.8d-%.3d" % (i, 0)) rho, rhovx, rhovz, rhovy = numpy.fromfile(file=fd, dtype=numpy.float32).reshape( (4, x, x, x)) src = ArraySource(transpose_input_array=False) src.scalar_data = numpy.log10(rho).T.copy() mayavi.add_source(src) # Create an outline for the data. o = Outline() mayavi.add_module(o) # Create one ContourGridPlane normal to the 'x' axis. cgp = ContourGridPlane() mayavi.add_module(cgp) # Set the position to the middle of the data. cgp.grid_plane.position = 0 # Another normal to 'y' axis. cgp = ContourGridPlane() mayavi.add_module(cgp) # Set the axis and position to the middle of the data. cgp.grid_plane.axis = 'y' cgp.grid_plane.position = 0 # Another normal to 'z' axis. cgp = ContourGridPlane() mayavi.add_module(cgp) # Set the axis and position to the middle of the data. cgp.grid_plane.axis = 'z' cgp.grid_plane.position = 0 # An isosurface module. iso = IsoSurface(compute_normals=False) mayavi.add_module(iso) iso.contour.contours = [220.0] # An interactive scalar cut plane. cp = ScalarCutPlane() mayavi.add_module(cp) cp.implicit_plane.normal = 0, 0, 1
def streamline(): """Sets up the mayavi pipeline for the visualization. """ # Create an outline for the data. o = Outline() mayavi.add_module(o) s = Streamline(streamline_type='tube') mayavi.add_module(s) s.stream_tracer.integration_direction = 'both' s.seed.widget.center = 3.5, 0.625, 1.25 s.module_manager.scalar_lut_manager.show_scalar_bar = True i = IsoSurface() mayavi.add_module(i) i.contour.contours[0] = 550 i.actor.property.opacity = 0.5
def setUp(self): e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e=e # Read a VTK XML data file. r = VTKXMLFileReader() r.initialize(get_example_data('cube.vti')) e.add_source(r) # Create an outline for the data. o = Outline() e.add_module(o) # Create one ContourGridPlane normal to the 'x' axis. cgp1 = ContourGridPlane() e.add_module(cgp1) # Set the position to the middle of the data. cgp1.grid_plane.position = 1 # Another with filled contours normal to 'y' axis. cgp2 = ContourGridPlane() cgp2.contour.filled_contours = True # Set the axis and position to the middle of the data. cgp2.grid_plane.axis = 'y' cgp2.grid_plane.position = 1 e.add_module(cgp2) # An interactive scalar cut plane. cp = ScalarCutPlane() e.add_module(cp) ip = cp.implicit_plane ip.normal = 0,0,1 ip.origin = 0.5, 0.5, 1.0 # Since this is running offscreen this seems necessary. ip.widget.origin = 0.5, 0.5, 1.0 ip.widget.enabled = False self.scene = e.current_scene self.cgp2=cgp2 self.cp=cp return
def view_numpy(): """Example showing how to view a 3D numpy array in mayavi2. """ # 'mayavi' is always defined on the interpreter. mayavi.new_scene() # Make the data and add it to the pipeline. data = make_data() src = ArraySource(transpose_input_array=False) src.scalar_data = data mayavi.add_source(src) # Visualize the data. o = Outline() mayavi.add_module(o) ipw = ImagePlaneWidget() mayavi.add_module(ipw) ipw.module_manager.scalar_lut_manager.show_scalar_bar = True ipw_y = ImagePlaneWidget() mayavi.add_module(ipw_y) ipw_y.ipw.plane_orientation = 'y_axes'
def addmodules(self, idx, addTextIndexer): #add Outline module o = Outline() mayavi.add_module(o) #add OrientationAxes module oa = OrientationAxes() mayavi.add_module(oa) """ #add IsoSurface module if requested i = IsoSurface() mayavi.add_module(i) """ #add Surface module if requested s = Surface() s.enable_contours = True s.actor.property.opacity = 0.5 mayavi.add_module(s) #add Text module if requested t1 = Text() t1.text = self.title t1.actor.scaled_text = False t1.actor.text_property.font_size = 18 mayavi.add_module(t1) t1.width = 1.0 * t1.actor.mapper.get_width( t1.scene.renderer) / t1.scene.renderer.size[0] height = 1.0 * t1.actor.mapper.get_height( t1.scene.renderer) / t1.scene.renderer.size[1] t1.x_position = 0.5 - t1.width / 2 t1.y_position = 1 - height if (addTextIndexer): #add default Text module for indicating scene index self.sceneTextCount = Text() self.sceneTextCount.text = "0" mayavi.add_module(self.sceneTextCount) self.sceneTextCount.actor.scaled_text = False self.sceneTextCount.actor.text_property.font_size = 24 self.sceneTextCount.x_position = .95 self.sceneTextCount.y_position = .05
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() e.new_scene() self.e = e sgrid = datasets.generateStructuredGrid() src = VTKDataSource(data=sgrid) e.add_source(src) # Create an outline for the data. o = Outline() e.add_module(o) # Create three simple grid plane modules. # First normal to 'x' axis. gp1 = GridPlane() e.add_module(gp1) # Second normal to 'y' axis. gp2 = GridPlane() # We'll test how robust things are by setting attributes gp2.grid_plane.axis = 'y' gp2.grid_plane.position = 16 e.add_module(gp2) # Third normal to 'z' axis. gp3 = GridPlane() e.add_module(gp3) gp3.grid_plane.axis = 'z' gp3.grid_plane.position = 6 for gp in (gp1, gp2, gp3): gp.actor.property.set(ambient=1.0) self.scene = e.current_scene return
def main(): # Create some random points to view. pd = tvtk.PolyData() pd.points = np.random.random((1000, 3)) verts = np.arange(0, 1000, 1) verts.shape = (1000, 1) pd.verts = verts pd.point_data.scalars = np.random.random(1000) pd.point_data.scalars.name = 'scalars' # Now visualize it using mayavi2. from enthought.mayavi.sources.vtk_data_source import VTKDataSource from enthought.mayavi.modules.outline import Outline from enthought.mayavi.modules.surface import Surface mayavi.new_scene() d = VTKDataSource() d.data = pd mayavi.add_source(d) mayavi.add_module(Outline()) s = Surface() mayavi.add_module(s) s.actor.property.set(representation='p', point_size=2)
def _show_data(self): if self.source is not None: return mayavi = self.get_mayavi() if mayavi.engine.current_scene is None: mayavi.new_scene() from enthought.mayavi.sources.array_source import ArraySource vol = self.volume origin = vol[::2] spacing = (vol[1::2] - origin) / (self.dimensions - 1) src = ArraySource(transpose_input_array=False, scalar_data=self.data, origin=origin, spacing=spacing) self.source = src mayavi.add_source(src) from enthought.mayavi.modules.outline import Outline from enthought.mayavi.modules.image_plane_widget import ImagePlaneWidget from enthought.mayavi.modules.axes import Axes # Visualize the data. o = Outline() mayavi.add_module(o) a = Axes() mayavi.add_module(a) self._ipw1 = ipw = ImagePlaneWidget() mayavi.add_module(ipw) ipw.module_manager.scalar_lut_manager.show_scalar_bar = True self._ipw2 = ipw_y = ImagePlaneWidget() mayavi.add_module(ipw_y) ipw_y.ipw.plane_orientation = 'y_axes' self._ipw3 = ipw_z = ImagePlaneWidget() mayavi.add_module(ipw_z) ipw_z.ipw.plane_orientation = 'z_axes'
def setUp(self): """Initial setting up of test fixture, automatically called by TestCase before any other test method is invoked""" e = NullEngine() # Uncomment to see visualization for debugging etc. #e = Engine() e.start() s = e.new_scene() self.e = e self.s = s ############################################################ # Create a new scene and set up the visualization. d = ArraySource() sc = self.make_data() d.scalar_data = sc e.add_source(d) # Create an outline for the data. o = Outline() e.add_module(o) # ImagePlaneWidgets for the scalars ipw = ImagePlaneWidget() e.add_module(ipw) ipw_y = ImagePlaneWidget() e.add_module(ipw_y) ipw_y.ipw.plane_orientation = 'y_axes' ipw_z = ImagePlaneWidget() e.add_module(ipw_z) ipw_z.ipw.plane_orientation = 'z_axes' self.scene = e.current_scene return
def f(x, y): return numpy.sin(x * y) / (x * y) x = numpy.arange(-7., 7.05, 0.1) y = numpy.arange(-5., 5.05, 0.05) from enthought.tvtk.tools import mlab s = mlab.SurfRegular(x, y, f) from enthought.mayavi.sources.vtk_data_source import VTKDataSource d = VTKDataSource() d.data = s.data mayavi.add_source(d) from enthought.mayavi.filters.warp_scalar import WarpScalar w = WarpScalar() mayavi.add_filter(w) from enthought.mayavi.modules.outline import Outline from enthought.mayavi.modules.surface import Surface o = Outline() s = Surface() mayavi.add_module(o) mayavi.add_module(s) # <markdowncell> # You can run this script by running "mayavi2 -n -x script.py", loading it # through the menu (File -\> Open File), and pressing Ctrl+R, or entering # "execfile('script.py') in the python shell. # # ![](files/MayaVi(2f)Surf_attachments/surf.png #
def run(self): """This is executed once the application GUI has started. *Make sure all other MayaVi specific imports are made here!* """ # Various imports to do different things. from enthought.mayavi.sources.vtk_file_reader import VTKFileReader from enthought.mayavi.modules.outline import Outline from enthought.mayavi.modules.axes import Axes from enthought.mayavi.modules.grid_plane import GridPlane from enthought.mayavi.modules.image_plane_widget import ImagePlaneWidget from enthought.mayavi.modules.text import Text script = self.script # Create a new scene. script.new_scene() # Read a VTK (old style) data file. r = VTKFileReader() r.initialize( join(get_data_dir(dirname(abspath(__file__))), 'heart.vtk')) script.add_source(r) # Put up some text. t = Text(text='MayaVi rules!', x_position=0.2, y_position=0.9, width=0.8) t.property.color = 1, 1, 0 # Bright yellow, yeah! script.add_module(t) # Create an outline for the data. o = Outline() script.add_module(o) # Create an axes for the data. a = Axes() script.add_module(a) # Create an orientation axes for the scene. This only works with # VTK-4.5 and above which is why we have the try block. try: from enthought.mayavi.modules.orientation_axes import OrientationAxes except ImportError: pass else: a = OrientationAxes() a.marker.set_viewport(0.0, 0.8, 0.2, 1.0) script.add_module(a) # Create three simple grid plane modules. # First normal to 'x' axis. gp = GridPlane() script.add_module(gp) # Second normal to 'y' axis. gp = GridPlane() gp.grid_plane.axis = 'y' script.add_module(gp) # Third normal to 'z' axis. gp = GridPlane() script.add_module(gp) gp.grid_plane.axis = 'z' # Create one ImagePlaneWidget. ipw = ImagePlaneWidget() script.add_module(ipw) # Set the position to the middle of the data. ipw.ipw.slice_position = 16
scene.scene.camera.clipping_range = [16.803351361631922, 58.674779759221536] scene.scene.camera.compute_view_plane_normal() scene.scene.render() surface.actor.property.edge_visibility = True surface.actor.property.line_width = 1.1832000017166138 surface.actor.property.line_width = 1.1831999999999998 vtkxml_file_reader1 = engine.open( u'/Users/prabhu/work/MEDIA/m2/data/shuttle_flow_vel.vti', scene) from enthought.mayavi.filters.extract_vector_norm import ExtractVectorNorm extract_vector_norm = ExtractVectorNorm() engine.add_filter(extract_vector_norm, vtkxml_file_reader1) from enthought.mayavi.modules.streamline import Streamline streamline = Streamline() engine.add_filter(streamline, extract_vector_norm) from enthought.mayavi.modules.outline import Outline outline = Outline() module_manager1 = extract_vector_norm.children[0] engine.add_filter(outline, module_manager1) scene.scene.camera.position = [ -35.527291132838059, 1.5271766756373661, 3.1941487321866866 ] scene.scene.camera.focal_point = [ -0.30313491821289062, 0.0, 1.4027749300003052 ] scene.scene.camera.view_angle = 30.0 scene.scene.camera.view_up = [ 0.061459962287939186, 0.30146804029963314, 0.9514934018233987 ] scene.scene.camera.clipping_range = [16.205447930141609, 60.499114495812179] scene.scene.camera.compute_view_plane_normal() scene.scene.render()