Zzz reader example¶
This is a simple example that shows how to create a reader factory and register that reader with mayavi.
To use this:
put this in ~/.mayavi2/
then import this module in your ~/.mayavi2/user_mayavi.py.
that’s it.
What you should get:
Options to open .zzz files from the file->open menu.
Open .zzz files via right click.
Open .zzz files from the engine or mlab (via open)
do mayavi2 -d foo.zzz.
Python source code: zzz_reader.py
from mayavi.core.api import registry, SourceMetadata, PipelineInfo
def zzz_reader(fname, engine):
"""Reader for .zzz files.
Parameters:
-----------
fname -- Filename to be read.
engine -- The engine the source will be associated with.
"""
from tvtk.api import tvtk
from mayavi.sources.vtk_data_source import VTKDataSource
# Do your own reader stuff here, I'm just reading a VTK file with a
# different extension here.
r = tvtk.StructuredPointsReader(file_name=fname)
r.update()
src = VTKDataSource(data=r.output)
return src
zzz_reader_info = SourceMetadata(
id = "ZZZReader",
factory = 'zzz_reader.zzz_reader',
tooltip = "Load a ZZZ file",
desc = "Load a ZZZ file",
help = "Load a ZZZ file",
menu_name = "&ZZZ file",
extensions = ['zzz'],
wildcard = 'ZZZ files (*.zzz)|*.zzz',
output_info = PipelineInfo(datasets=['unstructured_grid'],
attribute_types=['any'],
attributes=['any'])
)
# Inject this information in the mayavi registry
registry.sources.append(zzz_reader_info)
if __name__ == '__main__':
import sys
print("*"*80)
print("ERROR: This script isn't supposed to be executed.")
print(__doc__)
print("*"*80)
sys.exit(1)