日々適当

hibitekitou

EdgePositionって何?

xsi |2011-04-18
ICE Attributeの中の一つ、EdgePositionってのがあります。ドキュメントには
The positions of the edge midpoints.
とあります。エッジの中点の位置と読めます。

ということで、こんな実験をしてみました。



10unit四方のグリッドです。そこに、図の位置にPointCloudからポイントを一個置いてやります。で、Closest Locationノードで、そのポイントからみた近い位置のグリッド上の情報を取得しようと試みます。

なお、ビュー上の図では、ポイント位置をオレンジ色で、Closest Locationで取得した位置を青色で表示しています。また、Closest Locationで取得した位置に別のPointCloutでもって赤点を打つように設定してあります。

そうしたとき、ClosestEdgeでは、下図のように、イチバン近いエッジの中点の位置が帰ってくることを期待しておりました(赤点)。



しかし実際は、



まずこのツリーの場合は、以下のような感じ(Closest LocationのオプションがSurface)。



Closest LocationのオプションVertexに変更して、以下のようになります。





これらは、なんの位置を返してきているんでしょうね?

試しに、EdgePositionの部分をPolygonPositionに変更してやると下図のようになります。



Closest Locationの設定がSurfaceだとこんな↓かんじ。



ポイントが乗っかっているポリゴンの中心になってますね。
Vertexだと、



イチバン近いVertexはグリッドの中心のポイントなので、そのポイントに接するポリゴンの最初の要素の中心を返してきているのかな?



いずれにしても想像しやすい結果が返ってきていると思います。
しかし、Edgeの場合、よく分からないのですよね。この値は何なのでしょうか?

<追記>
なお、グリッド自身にICE Treeを設定し、自分自身のEdgePositionを取得すると、ドキュメントの説明通りの値が帰ってきます。




<追記>
んでまぁ、仕方ないのでツリーを組んでみました。
きっと、もっとスマートにやる方法はあるに違いないです。






<追記>
その後、別オブジェクトの上記ツリーを適用したところ、うまく動作しないことが判明。困ってる。


<追記>
このやり方(Closet Locationでイチバン近いバーテックスを求めるやり方)は希望していた動作に持っていくことが原理的に無理なことに気付いてしまったために断念。
</追記>
コメント ( 0 )|Trackback ( )
  ・