Zzzリーダーの例

これは,リーダーファクトリを作成し,そのリーダーをmayaviに登録する方法を示す簡単な例です.

これを使用するには

  • これを ~/.mayavi2/ に入れます.
  • このモジュールを ~/.mayavi2/user_mayavi.py にインポートします.

それだけです.

必要なもの

  • file->open メニューから .zzz ファイルを開くオプション.
  • .zzzファイルを開き右クリックします.
  • 開く.エンジンまたはmlabからのzzzファイル(openによる)
  • mayavi2 -d foo.zzz を実行します.

Pythonソースコード: 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)