どのジオメトリアトリビュートにも、変更される度に(最低でも1)増分されるデータIDが含まれています。 アトリビュートが変更されたかどうかに応じて最適化を実行したい場合、これらのデータIDをキャッシュ化することで、それ以降のある時点でのデータIDと比較して一致するかどうかを確認することができます。 データIDが一致しなかった場合、アトリビュートの内容が以前と同じではなくなっていると考えることができます。
2つのアトリビュートのデータID値が一致した場合、それらの内容が同じであると考えることができます。
ジオメトリコピー間でデータID値を維持するには、そのようなメソッドのclone_data_ids
パラメータをTrue
に設定します。
通常では、これは、hou.SopNode.setManagesAttribDataIdsをTrueに設定すると共にPython SOPでオペレーションを最適化する際に使用します。
Note
データIDの値は、同じセッション内でのみ有効です。 これらの値はセッション間または別の起動中のHoudiniプロセス間で比較することができません。
メソッド ¶
__init__()
無効なデータIDを構築します。 これは、存在しないアトリビュートのデータIDのリストのプレースホルダーとして使用することができます。
isValid()
→ bool
これが有効なデータIDであればTrueを返します。
vexAttribDataId()
→ tuple of int
attribdataid VEX関数がこのデータIDに対して返すのと同じ整数のリストを返します。 これは、VEXとの相互作用のために用意されています。
__getstate__()
→ tuple of int
pickleモジュールで使用可能なint
のタプルを返します。
Note
データID値は同じセッション内でのみ有効です。
__setstate__(state)
以前に__getstate__
で取得された状態を復元します。