1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
"""
An example of how to generate a polydata dataset using numpy arrays.
The example is similar to tvtk/examples/tiny_mesh.py. Also shown is a
way to visualize this data with mayavi2. The script can be run like so::
$ mayavi2 -x polydata.py
It can be alternatively run as::
$ python polydata.py
"""
# Author: Prabhu Ramachandran <prabhu at aero dot iitb dot ac dot in>
# Copyright (c) 2007, Enthought, Inc.
# License: BSD style.
from numpy import array
from tvtk.api import tvtk
from mayavi.scripts import mayavi2
# The numpy array data.
points = array([[0,0,0], [1,0,0], [0,1,0], [0,0,1]], 'f')
triangles = array([[0,1,3], [0,3,2], [1,2,3], [0,2,1]])
temperature = array([10., 20., 30., 40.])
# The TVTK dataset.
mesh = tvtk.PolyData(points=points, polys=triangles)
mesh.point_data.scalars = temperature
mesh.point_data.scalars.name = 'Temperature'
# Uncomment the next two lines to save the dataset to a VTK XML file.
#w = tvtk.XMLPolyDataWriter(input=mesh, file_name='polydata.vtp')
#w.write()
# Now view the data.
@mayavi2.standalone
def view():
from mayavi.sources.vtk_data_source import VTKDataSource
from mayavi.modules.surface import Surface
mayavi.new_scene()
src = VTKDataSource(data = mesh)
mayavi.add_source(src)
s = Surface()
mayavi.add_module(s)
if __name__ == '__main__':
view()
|