Inheritance |
|
hou.ViewerEvent
オブジェクトはPythonステートで使用します。
Houdiniは、色々と役立つデータを含んだ辞書を使ってイベントハンドラーをコールします。例えば、この辞書にはViewerEvent
オブジェクトを持ったui_event
キーが含まれています。
あなた自身でこのタイプのオブジェクトをインスタンス化しないでください。
詳細は、Pythonステートを参照してください。
hou.ViewerEvent
は、ビューア内の光線の座標にアクセスしたい時に使用可能な特別なhou.UIEventクラスです。
メソッド ¶
ray()
→ (origin_point, direction)
大元のスクリーン空間におけるhou.UIEventDeviceのマウス座標に相当する3Dワールド空間での“ポインティング光線”の原点と方向ベクトルを表現した2個のhou.Vector3オブジェクトのタプルを返します。
この結果の光線をシーン内に飛ばすことで、マウス下にある内容を取得することができます。 このメソッドは、ニア平面上のマウスのスクリーン座標上に光線原点を配置してから、そのカメラ空間位置をワールド空間にマッピングします。 Perspective投影に関しては、フラスタムのニア平面は通常だとワールド空間では小さいので、その原点位置はカメラ位置に非常に近くなります。
snappingRay()
→ dict
hou.ViewerEvent.rayと同様ですが、返される原点ポイントがシーンジオメトリ、Houdiniコンストラクション平面、参照平面に基づいてスナップされます。 ビューポートの左側で利用可能なSnapping Optionsウィンドウの設定を使ってスナップを実行します。 この辞書には、以下のキー/値のペアが含まれています:
キー |
タイプ |
説明 |
---|---|---|
|
Bool |
ユーザがビューポート内のシーンジオメトリ、Houdiniコンストラクション平面、参照平面にスナップさせた場合はTrue。 |
|
スクリーン空間におけるマウス座標に相当する3Dワールド空間での“ポインティング光線”の原点。
|
|
|
スクリーン空間におけるマウス座標に相当する3Dワールド空間での“ポインティング光線”の方向ベクトル。
これは、 |
|
|
スナップ先のジオメトリのタイプ。
このキーは、 |
|
|
int |
スナップ先のジオメトリのノードのセッションノードID。 hou.nodebySessionId()をコールすることで、このノード自体を取得することができます。 |
|
int |
スナップ先のジオメトリに相当するプリミティブ番号。
これは、 |
|
int |
スナップ先のジオメトリに相当するポイント番号。
これは、 |
|
int |
スナップ先のエッジの1番目の端点。
これは、 |
|
int |
スナップ先のエッジの2番目の端点。
これは、 |
|
int |
スナップ先のブレークポイントの1番目の座標。
これは、 |
|
int |
スナップ先のブレークポイントの2番目の座標。
これは、 |
|
int |
スナップ先のジオメトリに相当するガイドのインデックス。
これは、 |
|
スナップ先のジオメトリのグリッド上の位置。
これは、 |
|
|
スナップ先のエッジの1番目の端点のグリッド上の位置。
これは、 |
|
|
スナップ先のエッジの2番目の端点のグリッド上の位置。
これは、 |
Note
ビューポート内でスナップが無効になっていれば、snapped
は常にFalseになります。
現行スナップモードを変更するには、hou.SceneViewer.setSnappingModeを参照してください。
screenToRay(scrx, scry)
→ (origin_point, direction)
スクリーン空間におけるマウス座標に相当する3Dワールド空間での“ポインティング光線”の原点と方向ベクトルを表現した2つのhou.Vector3オブジェクトのタプルを返します。
curViewport()
→ hou.GeometryViewport
このイベントが発生したビューポートを返します。
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
ステートに関連したイベントが変わると、そのイベントをトリガーしたステート変更のタイプを表現した列挙値を返します。
See also |