MEL Math
よく使うテンプレとか。
直接コマンドが無くて自前で計算させないといけないときの式とか?
プロシージャ書くときに書き方がスッキリするTipsとか?
Shapeノードを抽出するテンプレ
ちょいちょい使いたくなるのでメモ
string $objects[] = `ls -sl -type transform`;
string $shapes[] = `ls -dag -s $objects`;
MELにはfloor()っていう小数点以下切捨てのコマンドがあるのですがそれ以外無いんで分かりやすい応用。
四捨五入
float $float = 3.141592;
floor($float+0.5);
//result : 3
似たような奴…
任意の桁で切捨て
10の位で切り捨て
float $float = 1234.5678;
float $result = `floor(float * 0.1)`*10;
print $result;
1230
絶対値
返り値が配列のコマンドから最初の値だけを呼び戻す
最初の値目当てでもいちいち返り値がArrayになって返ってくるQueryコマンドが多い。
変数を呼ぶときにいちいち$hensu[0]って付けるのもメンドクサイし整理しづらいのでこの方法を…
proc string stripString(string $array[]){
string $result = $array[0];
return $result;
}
というprocを用意しておく。で、元のコマンドのほうでは…
string $name = stripString(`ls -sl`);
↑
返り値が配列になるコマンド
と記述すれば一行で欲しい名前だけを単体の文字列として取得できる。
とりあえずぶっこんどくと地味に便利なコマンドになると思います。
配列の順番をランダマイズするプロシージャ
配列(今は文字列用)を与えると順番をシャッフルして返すプロシージャ。
地味に応用が利くと思うよ。
proc string[] randOrder(string $original[]){
string $tmp[] = $original;
string $randOrder[];
int $i;
for($i = 0; $i < size($original);$i++){
int $pick = rand(size($tmp));
$randOrder[$i] = $tmp[$pick];
stringArrayRemoveAtIndex($pick,$tmp);
}
return $randOrder;
}
最終更新:2010年12月28日 17:44