| On this page | |
| Inheritance |
|
概要 ¶
hou.GeometryDrawableGroupは、複数の子hou.GeometryDrawableを格納可能な通常のhou.GeometryDrawableオブジェクトとして作用します。
hou.GeometryDrawableGroupは、追加された順番でその子hou.GeometryDrawableに対してオペレーションを実行します。
他にも、hou.GeometryDrawableGroupから特定の子を照会することで、個々にパラメータを設定することもできます。
以下のコードは、2つのhou.GeometryDrawableオブジェクトで構成されたグループを作成する例です。
import hou import viewerstate.utils as su class State(object): def __init__(self, state_name, scene_viewer): self.state_name = state_name self.scene_viewer = scene_viewer # ジオメトリを作成します。 sops = hou.sopNodeTypeCategory() verb = sops.nodeVerb('tube') verb.setParms({ "rad": (0.2, 0.4), "rows": 3, "cols": 6, 'height': 1.0, "cap":True }) geo = hou.Geometry() verb.execute(geo, []) # Drawableグループを作成します。 self.cursor = hou.GeometryDrawableGroup("cursor") # Drawableを追加します。 self.cursor.addDrawable( hou.GeometryDrawable( self.scene_viewer, hou.drawableGeometryType.Face, "face", params = {'color1' : (0.0,1.0,0.0,1.0)} )) self.cursor.addDrawable( hou.GeometryDrawable(self.scene_viewer, hou.drawableGeometryType.Line, "line", params = {'color1' : (0,0,0,1.0)} )) # すべての子Drawableのジオメトリを設定します。 self.cursor.setGeometry(geo) self.cursor.show(False) self.cursor_pos = hou.Vector3() def onMouseEvent(self, kwargs): ui_event = kwargs["ui_event"] (origin, dir) = ui_event.ray() gi = su.GeometryIntersector(kwargs["node"].geometry()) gi.intersect(origin, dir) if gi.intersected: self.cursor_pos = gi.position self.cursor.show(True) else: self.cursor.show(False) def onDraw(self, kwargs): handle = kwargs['draw_handle'] params = { 'translate' : (self.cursor_pos[0], self.cursor_pos[1], self.cursor_pos[2]), 'line_width' : 0.25 } self.cursor.draw( handle, params )
メソッド ¶
__init__(name, label=None)
新しいジオメトリでDrawableグループオブジェクトを作成します。
この新しいオブジェクトは空っぽなので、役に立つようにhou.GeometryDrawableオブジェクトを入れてください。
name
Drawableグループの名前。
label
Drawableラベルのオプションの文字列。デフォルトは空っぽです。
addDrawable(geometry_drawable)
子の後にhou.GeometryDrawableオブジェクトを追加します。
geometry_drawable
追加するhou.GeometryDrawable。
setGeometry(geometry)
すべての子Drawableに新しいジオメトリを設定します。 この変更は、次回のビューアの再描画で反映されます。
geometry
hou.Geometryオブジェクト。
geometry()
: → hou.Geometry
Drawableのジオメトリオブジェクトを返します。
返されるジオメトリは読み込み専用です。
useClipPlane(value)
このグループ内のすべてのDrawableのクリップ平面を有効または無効にします。 デフォルトでは、すべてのDrawableのクリップ平面は無効になっています。
value
TrueならすべてのDrawableのクリップ平面が有効になり、Falseなら無効になります。
Methods from hou.Drawable ¶
name()
このDrawableの名前。
label()
このDrawableのラベル。
setLabel(label)
このDrawableのラベルを設定します。
show(value)
このDrawableに取り付けられたエレメントをビューポート内に表示または非表示にします。 このエレメントは、次回のビューアの再描画で表示されます。
value
エレメントを表示するにはTrue、非表示にするにはFalseを設定します。
visible()
→ bool
Drawableが可視ならTrueを返します。
setTransform(xform)
このDrawableに取り付けられたエレメントのトランスフォーム行列を設定します。 この変更は、次回のビューアの再描画で反映されます。
xform
エレメントの移動、回転、スケールを設定するhou.Matrix4トランスフォーム行列。
transform()
: → hou.Matrix4
Drawableに取り付けられたエレメントのトランスフォーム行列を返します。
setIsControl(value)
Flags the drawable as control geometry. Simple Drawables are not affected by certain shading modes nor will they have decorations or visualizers drawn for it. They will be hidden when the Node Guides display option is off.
Note
This method does not apply to hou.Drawable2D objects.
isControl()
: → bool
Query if a drawable has been flaged as control geometry.
Methods from hou.AdvancedDrawable ¶
setParams(params)
Drawableのパラメータを設定します。 この設定は、次回にhou.AdvancedDrawable.drawがコールされた時にビューポートに反映されます。
params
Drawableオプションを設定するためのパラメータの辞書。 各Drawableタイプは、特定のパラメータセットを使用します。 詳細な情報は、GeometryDrawableやTextDrawableなどのDrawable派生クラスパラメータのドキュメントを参照してください。
以下のパラメータは、すべてのhou.AdvancedDrawableタイプで共通です:
|
Drawableのメインカラーとして使用される hou.TextDrawableに関しては、 |
|
|
Drawableで生成したマット周辺のグローカラーを設定するための 例えば、フェースまたはポイントのDrawableから生成したマット周辺にグローを描画する際に |
|
|
double |
デプスバッファによって決定された既存ジオメトリで遮られた領域でのオーバーレイのオクルージョン係数として使用される値。
1.0の |
|
int |
グロー幅の値を設定します。 例えば、これは線分またはテキストのグロー幅を変更します。 デフォルトは0です。 |
|
Drawalbeで生成したマットをハイライトするモードを設定します。 デフォルトはhou.drawableHighlightMode.Matteです。 |
|
|
hou.Vector3、または、3つのdoubleのシーケンス |
ジオメトリの3D空間の位置。 hou.TextDrawableに関しては、これはビューポート座標で表示するテキストの位置です。 デフォルトはhou.Vector3(0, 0, 0)です。 |
|
hou.Vector3、または、3つのdoubleのシーケンス |
回転ベクトル(単位は度)。 デフォルトはhou.Vector3(0, 0, 0)です。 |
|
hou.Vector3、または、3つのdoubleのシーケンス |
スケールベクトル。 デフォルトはhou.Vector3(1, 1, 1)です。 |
|
doubleまたはintのシーケンス |
ジオメトリを描画するために、ビューポート座標で2Dウィンドウをビューポートに割り当てます。 このシーケンスでは、そのウィンドウの位置とサイズを定義し、以下の値を格納する必要があります:
|
|
Bool |
Drawableが取り付けジオメトリの |
|
Bool |
Drawableが取り付けジオメトリの |
draw(handle, params=None)
ビューポート内でエレメントの描画に対応するためにLeafクラス(末端クラス)で実装されたメソッド。 通常では、このメソッドは、PythonステートのonDrawイベントまたはonDrawInterruptイベントからコールして、現行ビューポートでDrawableをレンダリングします。
handle
これは、HoudiniがDrawableをレンダリングする際に生成する不透明値です。
このhandle値は、HoudiniによってPythonステートのonDrawコールバックに渡され、Drawableオブジェクトのdrawメソッドに直接渡されます。
params
Drawableパラメータを設定するためのパラメータのオプションの辞書。 これらのパラメータは、hou.AdvancedDrawable.setParamsで使用しているパラメータと同じです。
| See also |