Mayaviパイプラインを構成するオブジェクト

ここでは,Mayaviパイプラインの主要なオブジェクトについて簡単に説明します.

_images/pipeline_and_scene.jpg

注釈

Mayaviオブジェクトを指定すると,重要な属性を簡単に確認することができます.このオブジェクトを表示して print_traits() という名前を付けます.特定のオブジェクトの場合,IPythonで使用すると,IPythonでのスレッド化の問題のためにセグメント・フォールトが発生することがあります.

Scene

キーアトリビュート  
scene すべてのレンダリングが行われる TVTKScene (tvtk.pyface.tvtk_scene) オブジェクト.
children Source オブジェクトのリスト.

Scene クラスは mayavi.core.scene モジュールで定義されています.

参考

Scene クラスのAPIリファレンスです.

Source

データソース,ファイルリーダ,パラメトリックサーフェスなどはすべて Source クラスのサブクラスです.

キーアトリビュート  
children Modules または Filters のリスト
outputs ソースによって生成された出力の List .これらはTVTKのデータセットであり, Mayaviでのデータ表現 の章で説明されています.

Source クラスは mayavi.core.source モジュールで定義されています.

参考

Source クラスのAPIリファレンスです.

Filter

Filters セクションに記述されているすべての Filters は,このクラスのサブクラスです.

キーアトリビュート  
children Modules または他の Filters のリスト.
inputs フィルタに入力するTVTKデータセットオブジェクトの List です.
outputs フィルタによって生成された出力のリストです.これらはTVTKのデータセットであり, Mayaviでのデータ表現 の章で説明されています.
キーメソッド  
setup_pipeline() 必要に応じて,基礎となるTVTKパイプラインオブジェクトの作成に使用します.
update_pipeline() 上流のパイプラインが変更された場合,すなわち上流のオブジェクトが pipeline_changed イベントを起動した場合に呼び出される.
update_data() 上流パイプラインが変更されてい ない が,パイプラインのデータが変更された場合に呼び出されます.これは,上流のオブジェクトが data_changed イベントを起動したときに発生します.

フィルタクラスは mayavi.core.filter モジュールで定義されています.

参考

Filter クラスのAPI参照です.

ModuleManager: カラーと凡例ノード

このオブジェクトは,UIのツリービューでは Colors and legends と呼ばれています.このオブジェクトの主な目的は,管理する Modules でデータをカラー表示する方法を制御することです.通常,すべてのモジュールは,意味のある視覚化を行うためにルックアップテーブル(LUT)を使用します.このルックアップテーブルは,モジュールマネージャによって管理される.

キーアトリビュート  
source このオブジェクトの入力である Source または Filter オブジェクト.
children それが管理する Modules のリスト.
scalar_lut_manager これは視覚化においてスカラー値から色へのカラーマッピングを基本的に管理する LUTManager のインスタンスです.これは基本的にスカラーからカラーへのマッピングです.
vector_lut_manager 視覚化におけるベクトル値から色へのカラーマッピングを管理する LUTManager のインスタンス.
lut_data_mode
'auto', 'point data' と 'cell data'.
LUTに使用するデータ型を指定します.これは間で変更できます.この設定を変更すると,データ範囲および参照テーブル/凡例バーの名前が変更されます. 'auto' (デフォルト)に設定すると,ポイントデータが優先されるセルおよびポイントデータが自動的に検索され,使用可能なデータが選択されます. 'point data' に設定するとLUTの入力点データを使用し, 'cell data' に設定すると入力セルデータを使用します.

このクラスは mayavi.core.module_manager モジュールで定義されています.

参考

ModuleManager クラスのAPIリファレンスです.

Module

これらのオブジェクトは,通常,シーンに視覚化を生成するオブジェクトです. モジュール セクションで定義されている全てのモジュールはこのサブクラスです.

モジュールは通常,mlab 3D plotting functions によって返されます.

キーアトリビュート  
module_manager この Module のカラーマップと凡例を制御する ModuleManager インスタンス
actor モジュールのTVTKアクター,つまりシーンに表示されるオブジェクト.ここにスケーリングやGLマテリアルプロパティなどのプロパティがあります.
components モジュールで使用される再利用可能な各種コンポーネントのリスト.これらは通常,ユーザーが直接使用することはありません.ただし,新しいモジュールを作成するときには非常に便利です. Component は基本的には再利用可能なコードで,他のさまざまなオブジェクトによって使用されます.例えば,ほとんど全ての Module はTVTKの俳優,マッパー,プロパティを使っています.これらはすべて,モジュールが使用する再利用可能なコンポーネントに "componentized" されます.したがって,コンポーネントはmayaviパイプラインオブジェクト間での再利用を促進する手段となります.
キーメソッド  
setup_pipeline() 必要に応じて,基礎となるTVTKパイプラインオブジェクトの作成に使用します.
update_pipeline() 上流のパイプラインが変更された場合,すなわち上流のオブジェクトが pipeline_changed イベントを起動した場合に呼び出される.
update_data() 上流パイプラインが変更されてい ない が,パイプラインのデータが変更された場合に呼び出されます.これは,上流のオブジェクトが data_changed イベントを起動したときに発生します.

mayavi.core.module モジュールで定義されている.

参考

Module クラスのAPIリファレンスです.

Engine

Mayaviエンジンは,可視化オブジェクトとシーンのライフサイクル,およびパイプラインの接続と更新を処理する中心的なオブジェクトです.これはパイプラインのルートにあり,パイプラインビューには表示されません.

コンテクスト操作のために,エンジンは 'current object' と 'current scene' の概念を持っていて, Filter/Source/Module インスタンスをそれに追加することができるいくつかの方法を特徴とします.コンテキスト操作は,メニュー方式のグラフィカル・ユーザー・インターフェースにおいて重要です.

新しいシーンを作成して削除することができます.また,視覚化全体をロードおよび保存するメソッドもあります.

mlabを使用する場合,mlabで使用されるエンジンは mlab.get_engine() を使用して取得できます.

キーアトリビュート  
scenes Scene オブジェクトのリスト.
current_object add_module などのコンテキスト操作が適用されるオブジェクト.
current_scene デフォルトでデータソースが追加されるシーン.
current_selection パイプラインビューで選択されているオブジェクト.
キーメソッド  
new_scene() 新しいシーンを作成するために呼び出されるメソッドです.サブクラスはこのメソッドをオーバーライドします.
重要なサブクラス  
EnvisageEngine mayavi.plugins.envisage_engine モジュールで定義されます. mayavi2 アプリケーションで使用されるのサブクラスです.
OffScreenEngine mayavi.core.off_screen_engine モジュール.既定では画面に表示されないシーンが作成されます.
NullEngine mayavi.core.null_engine モジュールです.このエンジンでは,ビジュアル化オブジェクトはシーンに追加されないため,レンダリングできません.このエンジンは,Mayaviのデータ構造のテストおよび純粋なデータ処理に便利です.
The ``Engine`` object.

Engine ベースクラスは mayavi.engine モジュールで定義されています.

参考

Engine クラスのAPI参照です.

Baseクラス: PipelineBase

PipelineBase は,(実際にはpipelineの ではありませんがpipelineを含む) SceneEngine を除く,mayaviパイプライン内のすべてのオブジェクトの基本クラスです. mayavi.core.pipeline_base モジュールで定義されます.共通の機能を抽象化するだけの Base から派生します.

キーアトリビュート  
pipeline_changed

これは Event Traitで,パイプラインがいつ変更されたかを割り当てることができます.そのため,次のことを行うとします.

object.pipeline_changed = True

pipeline_changed イベントが発生します.パイプライン内の object の下流にあるオブジェクトは,上流のオブジェクトからのイベントを受信するように自動的に設定され, update_pipeline メソッドを呼び出します.

data_changed 同様に, data_changed イベントが発生すると,下流のオブジェクトは自動的に update_data メソッドを呼び出します.
outputs オブジェクトによって生成された出力のリスト.
scene オブジェクトがアタッチされているシーン.
visible オブジェクトとその下流パイプラインの非表示/表示ステータスを切り替えるブール値.
キーメソッド  
remove() を使用して,mayaviパイプラインから(追加されている場合)オブジェクトを削除できます.

参考

PipelineBase クラスのAPIリファレンスです.

クラス階層

次の図は,関連するさまざまなオブジェクトのクラス階層を示しています.

Basic object hierarchy

この階層は, ``Base`` オブジェクト, ``Scene`` ,``PipelineBase`` ,および ``ModuleManager`` を表します.

More object hierarchy

この階層は, ``PipelineBase`` オブジェクト, ``Source`` , ``Filter`` ,および ``Module`` と ``Component`` を表します.