2012年12月5日水曜日

[MEL]ビューポートのパネルサイズを取得する

仲間内の勉強会で出たお題への回答案。

メインビューポートパネルの縦横サイズを得る方法。

現在アクティブになっているビューポート※のサイズを表示する。



{
    //パネルレイアウトのサイズ取得
    string $panelX[];
    string $panelY[];
    int $mainX=`paneLayout -q -w viewPanes`;
    int $mainY=`paneLayout -q -h viewPanes`;



    //アクティブなパネルを取得
    string $selectPanel =`getPanel -wf`;


    //各パネルの名前とサイズを取得
    string $panelname[] = `paneLayout -q -ca viewPanes`;
    int $panelwh[] = `paneLayout -q -ps viewPanes`;


    //パネル名とパネルサイズのインデックスを揃える
    for ($i=0;$i<4;$i++)
    {
        $panelX[$i] = $mainX*$panelwh[($i*2)]/100;
        $panelY[$i] = $mainY*$panelwh[($i*2)+1]/100;


        //選択パネル名と同じなら結果を表示
        if ($panelname[$i] == $selectPanel)
        {
            print ($panelname[$i]+":X="+$panelX[$i]+",Y="+$panelY[$i]+"\n");
        }
    }
}



※アクティブなビューポートとはビューポートの外側に白枠のついた状態のもの。

 ”Render the current frame”使用時にレンダリングされるビューと同じ。



出力結果とPhotoshopで計った結果、数ドットの誤差があるような、合っているような・・・。

流用等は自己責任でお願いします。

0 件のコメント:

コメントを投稿