AbstractRayCaster QML Type
3Dシーンにおけるレイキャスティングのための抽象基底クラス。詳細...
Import Statement: | import Qt3D.Render 2.8 |
In C++: | QAbstractRayCaster |
Status: | Deprecated |
プロパティ
- filterMode : enumeration
- hits : array
- runMode : enumeration
詳細な説明
AbstractRayCaster は、3d シーンに光線をキャストするための抽象ベースクラスです。AbstractRayCasterは、直接インスタンス化することはできません。QAbstractRayCaster は、実行モードやレイヤーの処理など、すべてのレイキャスターに共通のプロパティを指定しますが、実際のレイキャストの詳細はサブクラスに任せます。
レイキャスティングは、ピッキング(ObjectPicker を使用)とは異なり、トリガーにマウスイベントを必要としません。
デフォルトでは、AbstractRayCaster のインスタンスは無効になっています。有効にすると、指定されたレイはフレームごとにオブジェクトと交差しているかどうかテストされます。オブジェクトが見つからない場合でも、AbstractRayCaster.hits プロパティはレイキャストの結果で更新されます。
Qt3D.Render::PickingSettings を使用して、どのプリミティブをテストするか、結果をどのように返すかなど、レイキャストを制御することができます。
さらに、Qt3D.Render::Layerコンポーネントを使用して、エンティティやエンティティサブグラフがレイキャストにどのように反応するかを制御することができます。
注意:AbstractRayCasterから派生したコンポーネントは、複数のエンティティの量を共有するべきではありません。
Qt3D.Render::RayCaster,Qt3D.Render::ScreenRayCaster,Qt3D.Render::ObjectPicker,Qt3D.Render::PickingSettings,Qt3D.Render::NoPickingも参照してください 。
プロパティ ドキュメント
filterMode : enumeration |
レイキャストテストのために選択するエンティティを指定するフィルタモードを保持します。
デフォルト値はAbstractRayCaster.AcceptMatchingLayers
です。
定数 | 説明 |
---|---|
AcceptAnyMatchingLayers | このAbstractRayCaster に追加された 1 つ以上のLayer オブジェクトを参照するエンティティを受け入れる。これはデフォルトです。 |
AcceptAllMatchingLayers | このオブジェクトに追加されたすべてのLayer オブジェクトを参照するエンティティを受け入れる。AbstractRayCaster |
DiscardAnyMatchingLayers | このオブジェクトに追加された1つ以上のLayer オブジェクトを参照するエンティティを破棄する。AbstractRayCaster |
DiscardAllMatchingLayers | これに追加されたすべてのLayer オブジェクトを参照するエンティティを破棄する。AbstractRayCaster |
hits : array |
最後のレイキャストテストの結果を、javascript オブジェクトの配列として保持します。オブジェクトに定義されているフィールドは、以下に定義されています。
{ type // enum value of RayCasterHit.HitType entity // entity that was intersected distance // distance from ray origin to intersection localIntersection.x: // coordinate of intersection in the entity's coordinate system localIntersection.y localIntersection.z worldIntersection.x // coordinate of intersection in the model's coordinate system worldIntersection.y worldIntersection.z primitiveIndex // index of the primitive (triangle, line, point) that was intersected; // (undefined if the picking mode is set to bounding volume) vertex1Index // index of the first point of the triangle or line that was intersected // (undefined if the picking mode is set to bounding volume or points) vertex2Index // index of the second point of the triangle or line that was intersected // (undefined if the picking mode is set to bounding volume or points) vertex3Index // index of the second point of the triangle that was intersected // (undefined if the picking mode is set to bounding volume, points or lines) }
連続したテストがまったく同じ結果(または空の結果)を返す場合でも、テストのたびに変更通知が発行されることに注意してください。
runMode : enumeration |
レイキャストテストの実行頻度を制御する実行モードを保持します。
定数 | 説明 |
---|---|
Continuous | コンポーネントが有効である限り、レイキャストは毎フレーム実行されます。 |
SingleShot | レイキャストは一度実行されると、コンポーネントはそれ自体を無効にします。これはデフォルトです。 |
©2024 The Qt Company Ltd. 本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。