コンパイルブロックのエラー 4


こんにちは、篠島です。コンパイルブロックのエラー集の最後です。

 

今回のサンプルファイルです。
Compile_error3.zip

 

Attempt to use local variable in a compilied node: …

 

コンパイルブロック内でローカル変数を使うとこのようなエラーがでます。下の例ではTransform SOPにローカル変数の$CEYを使っています。解決策としてはローカル変数を使わないだけなのですが、ローカル変数の代わりになる物が分からないと対処が難しいです。

 

$CEY などのジオメトリの中心を求める機能はエクスプレッションのcentroid() を使って表すことが出来ます。Spare Input を使って下のように書くことが出来ます。するとコンパイルエラーは無くなりきちんと動作します。破片毎にスケールを掛けることができています。

 

使えないのはローカル変数だけであり、$Fなどはグローバル変数なのでコンパイルブロック内でも使用可能です。ローカル変数の代わりに使えるエクスプレッションとして $XMIN や $SIZEX 等は bbox() を使って表現することが出来ます。