MayaviをPythonのスクリプトで起動したい(2)

streamlineを描くときの設定が不明な点が多い。ドキュメントが少なすぎるのだけど。ソースが最良のドキュメントか...。
こんな感じの雛型を使って実際に描いてみる。

from enthought.mayavi.scripts import mayavi2
from enthought.mayavi.sources.vtk_file_reader import VTKFileReader
from enthought.mayavi.modules.streamline import Streamline

def setup_data(fname):
    mayavi.new_scene()
    r = VTKFileReader()
    r.initialize(fname)
    mayavi.add_source(r)
    return r

def streamline():
    o = Outline()
    mayavi.add_module(o)

    s = Streamline(streamline_type='tube')
    mayavi.add_module(s)
    s.stream_tracer.integration_direction = 'both'
    s.seed.widget = s.seed.widget_list[1]
    s.seed.widget.set(point1=(-10,-5,2), point2=(-10,5,2))
    s.seed.widget.resolution = 20
    s.ribbon_filter.width = 0.15

@mayavi2.standalone
def main():
    import enthought.mayavi
    fname = 'xxx.vtk'
    r = setup_data(fname)
    streamline()

if __name__ == '__main__':
    main()

streamline関数の中をいろいろ変えて試してみる。線のタイプとか本数とか変えてみたい。

線のタイプをtubeにした場合の設定方法。seed(線の出発点)は線で与えている。

    o = Outline()
    mayavi.add_module(o)

    s = Streamline(streamline_type='tube')
    mayavi.add_module(s)
    s.stream_tracer.integration_direction = 'both'
    s.seed.widget = s.seed.widget_list[1]
    s.seed.widget.set(point1=(-10.0,-5.0,2.0), point2=(-10.0,5.0,2.0))
    s.seed.widget.resolution = 20
    s.tube_filter.radius = 0.05
    s.seed_visible=False
    s.module_manager.scalar_lut_manager.show_scalar_bar = True


線のタイプをribbonにした場合の設定方法。ついでにseedの与え方を変えてみる。よく分からないが、平面で与えているみたいに見える。

    s = Streamline(streamline_type='ribbon')
    mayavi.add_module(s)
    s.stream_tracer.integration_direction = 'both'
    s.seed.widget = s.seed.widget_list[2]
    s.seed.widget.set(center=(0.0,0.0,2.0))
    s.seed.widget.resolution = 20
    s.ribbon_filter.width = 0.15
    #s.seed_visible=False
    #s.module_manager.scalar_lut_manager.show_scalar_bar = True


今度もseedの与え方を変えてみる。resolutionを指定することはできない。1点だけを与えているのか?

    s = Streamline(streamline_type='ribbon')
    mayavi.add_module(s)
    s.stream_tracer.integration_direction = 'both'
    s.seed.widget = s.seed.widget_list[3]
    s.seed.widget.position=(-10.0,0.0,2.0)
    #s.seed.widget.resolution = 20
    s.ribbon_filter.width = 0.15
    #s.seed_visible=False
    #s.module_manager.scalar_lut_manager.show_scalar_bar = True


これが限界。設定方法が分からん。