On this page | |
Inheritance |
|
概要 ¶
テキストDrawableは、カスタムPythonステート用に設計されていて、ビューポート座標でビューポート内にテキストエレメントを描画する際に使用します。 例えば、テキストDrawableを使用することで、ユーザーガイドの指示を表示したり、技術的情報を表示することができます。
hou.TextDrawable
は、ビューポート座標の2D空間でテキストを移動、回転、スケールさせることができます。
ビューポートの左下コーナーが基点座標(0,0)です。
以下のコードは、ビューポートの左上コーナーにテキストを表示する例です。
import hou class State(object): def __init__(self, state_name, scene_viewer): self.state_name = state_name self.scene_viewer = scene_viewer # 空っぽのテキストDrawableを作成します。 self.text_drawable = hou.TextDrawable(self.scene_viewer, 'text_drawable_name') # 次回のビューポートの再描画時にテキストを表示します。 self.text_drawable.show(True) def onDraw( self, kwargs ): # ビューポートの左上にテキストを描画します。 handle = kwargs['draw_handle'] (x,y,width,height) = self.scene_viewer.curViewport().size() margin = 10 params = { 'text': 'First line<br>Second line<br>Third line', 'multi_line' : True, 'color1' : hou.Color(1.0,0.0,0.0), 'translate' : hou.Vector3(0, height, 0), 'origin' : hou.drawableTextOrigin.UpperLeft, 'margins': hou.Vector2(margin, -margin) } self.text_drawable.draw( handle, params )
カーソル位置にテキストを表示する例。
import hou class State(object): def __init__(self, state_name, scene_viewer): self.state_name = state_name self.scene_viewer = scene_viewer # テキストDrawableを作成します。 self.text_cursor = hou.TextDrawable(self.scene_viewer, 'text_cursor') # 次回のビューポートの再描画時にテキストを表示します。 self.text_cursor.show(True) def onMouseEvent(self, kwargs): # スクリーン座標でマウス位置を計算します。 ui_event = kwargs["ui_event"] (origin, dir) = ui_event.ray() self.mouse_screen = self.scene_viewer.curViewport().mapToScreen(origin) def onDraw( self, kwargs ): # ビューポートの左上にテキストを描画します。 handle = kwargs['draw_handle'] params = { 'text': '<font color="yellow">x=%.2f, y=%.2f</font>' % (self.mouse_screen[0], self.mouse_screen[1]), 'translate' : hou.Vector3(self.mouse_screen[0],self.mouse_screen[1], 0.0) } self.text_cursor.draw( handle, params )
メソッド ¶
__init__(scene_viewer, name, label=None, params=None)
テキストDrawableオブジェクトを作成します。 この新しいDrawableはデフォルトでは非表示になります。
scene_viewer
テキストが表示されるビューアのhou.SceneViewer参照。
name
このDrawableオブジェクトを識別するための文字列。
label
Drawableラベルのオプションの文字列。デフォルトは空っぽです。
params
Drawableパラメータを設定するためのオプションのパラメータ辞書。 これらのパラメータは、hou.AdvancedDrawable.drawやhou.AdvancedDrawable.setParamsでも使用します。
他のDrawableの共通パラメータは、ここに載っています。
パラメータ |
タイプ |
説明 |
---|---|---|
|
テキストを描画する時のデフォルトの前景カラー。
この値は、 |
|
|
Bool |
|
|
境界ボックス内にテキストを配置するための原点。 デフォルトはhou.drawableTextOrigin.BottomLeftです。 |
|
|
String |
描画するテキスト。 テキストの書式化には、少しのHTML 4.0トークンのサブセットが利用可能です:
|
|
hou.Vector2、または、2つのdoubleのシーケンス |
テキストの2D境界ボックスのXとYの余裕代をビューポート座標で指定します。 デフォルトは0.0です。 |
size(text)
→ tuple of
double
Drawableフォントのtext
文字列の幅と高さを計算して、それらの値をタプルで返します:
-
Width
(ピクセル寸法) -
Height
(ピクセル寸法)
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に取り付けられたエレメントのトランスフォーム行列を返します。
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 |