Maya の内部構造

Maya の構造について

Maya はノードのアトリビュート同士をコネクトすることによってシーンを構成してゆく。
つまり、ノード間をアトリビュートによってコネクトするしくみがわかれば Maya と同じシステムを作ることができる。

コネクトの実現方法

あるノードのアトリビュートが変化した時、そのアトリビュートがコネクトされている他のノードのアトリビュートが同期して変化すれば良い。
これを実現するにはデザインパターンにおける Observer パターンを応用する。

サンプルプログラムのクラス図

サンプル・プログラム

Maya の内部構造を真似たシンプルな C++ プログラムの例である。

わかりやすくするためにノードは一種類(NodeA)、アトリビュートは一つだけ(int)にしている。

実行例

% cc test1.c++
% ./a.out
( n1 0 )    ( n2 0 )    ( n3 0 )    ← ノード n1, n2, n3 のアトリビュートの初期値は 0
( n1 0 ) -> ( n2 0 ) -> ( n3 0 )    ← n1 から n2、 n2 から n3 へコネクトされた状態
( n1 2 ) -> ( n2 2 ) -> ( n3 2 )    ← n1 のアトリビュートを変更すると n2, n3 も変更される

参考


Prev
Home | Contents
Mail