2015年4月21日火曜日

ポリゴン境界を選択するプロシージャ

モデラーさん向けmelToolの開発中、ポリゴンの境界を検出するmelを探していたところ、
Mayaにあらかじめ実装されているプロシージャーで、以下のようなものを見つけました。

polySelectBorderShell(int $borderOnly)

さっと中身を呼んだところ、
これは、すでに選択されているエッジのうち、境界であるものを残して選択する...
というようなプロシージャーのようです。

ポリゴンの境界を検出する際、
あらかじめすべてのエッジを選択しておいて、上記のプロシージャーを走らせれば、
簡単にポリゴン境界を検出できそうです。


これはモデリング作業のとき、ポリゴンマージの漏れなどチェックするときに便利かも??

以下、サンプルソースでありんす。

proc SELECT_BORDER_EDGE(){
    string $NODE_NAME;
    string $NODE_LIST[] = `ls -sl`;
    if(size($NODE_LIST)<1){
        error "ポリゴンノードを二つ以上選んでね。";
    }
    else{
        select -cl;
        for($NODE_NAME in $NODE_LIST){
            //ポリゴンの末端のエッジを選択
            select -add ($NODE_NAME + ".e[*:*]") ;       
        }
        polySelectBorderShell(1); 
    }
}
SELECT_BORDER_EDGE;