このセットアップでは、ポイントをプリミティブ間で共有させることができます。 例えば、ポリゴンは他のプリミティブと共有されていない頂点のリストを含んでいますが、 別のポリゴンの頂点がその同じポイントを参照することができます。 そのポイントを動かすと、すべての隣接ポリゴン上のそれに相当する頂点も動き、ポリゴンのエッジは離れません。
hou.Vertex.pointを使用すれば頂点からポイントを取得することができますが、 ポイントを参照している頂点すべてを取得するメソッドはありません。 Houdiniは内部的にこの情報を保存しませんが、その情報を引き出すことができます。 この上昇を簡単に習得する一番良い方法は、すべてのポイントを頂点セットにマッピングした辞書を構築して、この辞書をあなたのアルゴリズムで 再利用することです。
メソッド ¶
attribValue(name_or_attrib)
→ int
, float
, str
, tuple
or dict
この頂点内に記録されている特定のアトリビュートの値を返します。 このアトリビュートはnameまたはhou.Attribオブジェクトで指定することができます。
hou.Attribオブジェクトを使用してアトリビュート値を取得するほうが、nameを使用するよりも若干高速です。 ループでアトリビュート値を検索する時は、そのループ外でhou.Attribオブジェクトを調べて、それをこのメソッドに渡してください。
この名前のアトリビュートがなかった場合、hou.OperationFailedを引き起こします。
floatAttribValue(name_or_attrib)
→ float
特定の浮動小数点アトリビュートの頂点アトリビュート値を返します。 このアトリビュートはnameまたはhou.Attribオブジェクトで指定することができます。
この名前のアトリビュートがなかった場合や、アトリビュートのサイズが1のfloatでなかった場合は、 hou.OperationFailedを引き起こします。
ほとんどの場合では、hou.Vertex.attribValueさえ使用すればアトリビュート値にアクセスすることができます。 Houdiniは内部的にこのメソッドを使用してattribValueを実装しています。
floatListAttribValue(name_or_attrib)
→ tuple
of float
特定の浮動小数点アトリビュートの頂点アトリビュート値を返します。 このアトリビュートはnameまたはhou.Attribオブジェクトで指定することができます。 戻り値はfloatのタプルです。
アトリビュートのサイズが1の時にこのメソッドをコールするのが有効です。 この場合では、1個の要素のタプルが返されます。
hou.Vertex.attribValueも参照してください。
intAttribValue(name_or_attrib)
→ int
サイズが1の特定の整数アトリビュートの頂点アトリビュート値を返します。 このアトリビュートはnameまたはhou.Attribオブジェクトで指定することができます。 詳細は、hou.Vertex.floatAttribValueを参照してください。
intListAttribValue(name_or_attrib)
→ tuple
of int
特定の整数アトリビュートの頂点アトリビュート値を返します。 このアトリビュートはnameまたはhou.Attribオブジェクトで指定することができます。 戻り値はintのタプルです。詳細は、hou.Vertex.floatListAttribValueを参照してください。
stringAttribValue(name_or_attrib)
→ str
特定の文字列アトリビュートの頂点アトリビュートを返します。 このアトリビュートはnameまたはhou.Attribオブジェクトで指定することができます。 詳細は、hou.Vertex.floatAttribValueを参照してください。
stringListAttribValue(name_or_attrib)
→ tuple
of str
特定の文字列アトリビュートの頂点アトリビュート値を返します。 このアトリビュートはnameまたはhou.Attribオブジェクトで指定することができます。 戻り値は文字列のタプルです。
アトリビュートのサイズが1の時にこのメソッドをコールするのが有効です。 この場合では、1個の要素のタプルが返されます。
hou.Vertex.attribValueも参照してください。
dictAttribValue(name_or_attrib)
→ dict
特定の辞書アトリビュートの頂点アトリビュート値を返します。 この辞書アトリビュートは、名前またはhou.Attribオブジェクトで指定することができます。 詳細は、hou.Vertex.floatAttribValueを参照してください。
dictListAttribValue(name_or_attrib)
→ tuple
of str
特定の辞書アトリビュートの頂点アトリビュート値を返します。 この辞書アトリビュートは、名前またはhou.Attribオブジェクトで指定することができます。 戻り値は、辞書のタプルです。
アトリビュートのサイズが1の時にこのメソッドをコールするのは有効です。 この場合では、1つのエレメントを持ったタプルが返されます。 詳細は、hou.Vertex.floatAttribValueを参照してください。
setAttribValue(name_or_attrib, attrib_value)
この頂点にアトリビュート値を記録します。このアトリビュートはnameまたはhou.Attribオブジェクトで指定することができ、 ジオメトリ内の既存の頂点アトリビュートでなければなりません。通常ではPython定義のSOPのコードからこのメソッドをコールします。
この名前のアトリビュートが存在しなかったり、アトリビュートのデータタイプが指定した値に一致しなかった場合は、hou.OperationFailedを引き起こします。 アトリビュートのサイズが2以上であれば、このアトリビュート値は整数/浮動小数点シーケンスである必要があり、そのシーケンスのサイズがアトリビュートのサイズに 一致しなければなりません。
このジオメトリが修正不可なら、hou.GeometryPermissionErrorを引き起こします。
attribType()
→ hou.attribType列挙値
列挙値hou.attribType.Vertexを返します。 ポイント、プリミティブ、頂点、ジオメトリは、アトリビュートを照会するのに同じメソッドをサポートしています。 このメソッドは、その中の1つです。
以下も参照:
point()
→ hou.Point
この頂点が参照しているhou.Pointオブジェクトを返します。各頂点は1個のポイントだけを参照します。
prim()
→ hou.Prim
この頂点を含んだhou.Primオブジェクトを返します。
プリミティブがフェースなら、hou.Prim.verticesを使用することで、そのプリミティブ内の他の頂点にアクセスすることができます。 プリミティブがサーフェスなら、hou.Surface.vertex, hou.Surface.numRows, hou.Surface.numColsを使用してください。
number()
→ int
プリミティブ内でのこの頂点の番号を返します。同じプリミティブ内の頂点は、0から連番で番号が振られ、 hou.Prim.verticesで返される頂点は、その番号の順番になっています。
linearNumber()
→ int
Detail全体でのこの頂点の番号を返します。 このDetail内の頂点は、プリミティブの時と同じ順番になっていることがありますが、必ずしも 同じとは限りません 。 Detail内の線形頂点番号は、0から連番で番号が振られ、そのDetail内の頂点の総数から1を引いた番号で終わります。 この線形頂点番号は、Point/Vertex/Primitive/Detailアトリビュートに適用可能な関数に対して、普通に頂点を扱う時に必要となる2つの番号を渡す必要がなくなるので便利です。