Inheritence |
|
hou.ViewerEvent
オブジェクトはPythonステートで使用します。
Houdiniは、色々と役立つデータを含んだ辞書を使ってイベントハンドラーをコールします。例えば、この辞書にはViewerEvent
オブジェクトを持ったui_event
キーが含まれています。
あなた自身でこのタイプのオブジェクトをインスタンス化しないでください。
詳細は、Pythonステートを参照してください。
hou.ViewerEvent
は、ビューア内の光線の座標にアクセスしたい時に使用可能な特別なhou.UIEventクラスです。
メソッド
ray()
→ (origin_point, direction)
大元のスクリーン空間におけるhou.UIEventDeviceのマウス座標に相当する3Dワールド空間での"ポインティング光線"の原点と方向ベクトルを表現した2個のhou.Vector3オブジェクトのタプルを返します。
この結果の光線をシーン内に飛ばすことで、マウス下にある内容を取得することができます。 このメソッドは、ニア平面上のマウスのスクリーン座標上に光線原点を配置してから、そのカメラ空間位置をワールド空間にマッピングします。 Perspective投影に関しては、フラスタムのニア平面は通常だとワールド空間では小さいので、その原点位置はカメラ位置に非常に近くなります。
snappingRay()
→ (origin_point, direction, snapped)
hou.ViewerEvent.ray()と同様ですが、返される原点ポイントがHoudiniのスナップコントロールに基づいてスナップされます。
返されるタプルは、原点ポイント、方向ベクトル、スナップ結果を表現したブール
値(snapped
)を含んだ3個のhou.Vector3オブジェクトです。
snapped
がTrue
の場合、その原点ポイントは3Dワールド空間内のスナップした座標に相当します。False
の場合、その原点ポイントは通常の"ポインティング光線"です。
Note
スナップが無効、または、原点ポイントがスナップしたポイントに一致しなかった場合、snapped
がFalse
になります。
Methods from hou.UIEvent
device()
→ hou.UIEventDevice
入力デバイス特有のイベントデータを含んだオブジェクトを返します。
例えば、これがマウスクリックイベントの場合、event.device().mouseX()
を使用することでスクリーン空間内のX座標を取得することができ、
event.device().isLeftButton()
を使用することで左マウスボタンが押されたかどうかをチェックすることができます。
if ui_event.device().isLeftButton(): ...
hasQueuedEvents()
→ bool
このイベントにキュー待ちのデバイスイベントが含まれていればTrueを返します。
queuedEvents()
→ list
of hou.UIEventDevice
hou.UIEvent.hasQueuedEvents()がTrueを返す場合、このメソッドは、キュー待ちの入力デバイスイベントのリストを返します。
value()
→ obj
このイベントの値
のペイロード(ヘッダを除いだデータ)を返します。
hou.UIEvent.valueType()をコールすることで、この値のタイプを取得することができます。
valueType()
→ hou.uiEventValueType
このイベント値のタイプに呼応した列挙値を返します。
このイベントに何も単一スカラー値が含まれていなければhou.uiEventValueType.NoType
を返します。
reason()
→ hou.uiEventReason
ステートに関連したイベントが変わると、そのイベントをトリガーしたステート変更のタイプを表現した列挙値を返します。