QAbstractRayCaster Class
class Qt3DRender::QAbstractRayCaster3Dシーンにおけるレイキャスティングのための抽象基底クラス。さらに...
Header: | #include <QAbstractRayCaster> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
In QML: | AbstractRayCaster |
Inherits: | Qt3DCore::QComponent |
Inherited By: | |
Status: | Deprecated |
パブリックタイプ
enum | FilterMode { AcceptAnyMatchingLayers, AcceptAllMatchingLayers, DiscardAnyMatchingLayers, DiscardAllMatchingLayers } |
enum | RunMode { Continuous, SingleShot } |
プロパティ
- filterMode : FilterMode
- hits : const Hits
- runMode : RunMode
パブリック関数
void | addLayer(Qt3DRender::QLayer *layer) |
Qt3DRender::QAbstractRayCaster::FilterMode | filterMode() const |
Qt3DRender::QAbstractRayCaster::Hits | hits() const |
QList<Qt3DRender::QLayer *> | layers() const |
void | removeLayer(Qt3DRender::QLayer *layer) |
Qt3DRender::QAbstractRayCaster::RunMode | runMode() const |
パブリックスロット
void | setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
void | setRunMode(Qt3DRender::QAbstractRayCaster::RunMode runMode) |
シグナル
void | filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
void | hitsChanged(const Qt3DRender::QAbstractRayCaster::Hits &hits) |
void | runModeChanged(Qt3DRender::QAbstractRayCaster::RunMode runMode) |
詳細説明
Qt3DRender::QAbstractRayCaster は、3D シーンに光線をキャストするための抽象ベースクラスです。 は直接インスタンス化することはできず、サブクラスを通してインスタンス化します。QAbstractRayCaster は、実行モードやレイヤーの処理など、すべてのレイキャスターに共通のプロパティを指定しますが、実際のレイキャストの詳細はサブクラスに任せます。Qt3DRender::QAbstractRayCaster
レイキャスティングは、ピッキング(Qt3DRender::QObjectPicker を使用)とは異なり、トリガーにマウスイベントを必要としません。
デフォルトでは、Qt3DRender::QAbstractRayCaster のインスタンスは無効になっています。有効にすると、指定されたレイはフレームごとにオブジェクトと交差しているかテストされます。オブジェクトが見つからない場合でも、QAbstractRayCaster::hits プロパティはレイキャストの結果で更新されます。
Qt3DRender::QPickingSettings を使用して、どのプリミティブをテストするか、結果をどのように返すかなど、レイ キャストを制御できます。
さらに、Qt3DRender::QLayer コンポーネントを使用して、エンティティまたはエンティティのサブグラフがレイキャストにどのように反応するかを制御できます。
注意: QAbstractRayCaster から派生したコンポーネントは、複数のエンティティで共有しないでください。
Qt3DRender::QRayCaster,Qt3DRender::QScreenRayCaster,Qt3DRender::QObjectPicker,Qt3DRender::QPickingSettings,Qt3DRender::QNoPickingも参照してください 。
メンバ型ドキュメント
enum QAbstractRayCaster::FilterMode
レイキャスティングをテストするエンティティを選択するルールを指定します。
定数 | 値 | 説明 |
---|---|---|
Qt3DRender::QAbstractRayCaster::AcceptAnyMatchingLayers | 0 | このQAbstractRayCaster に追加された1つ以上のQLayer オブジェクトを参照するエンティティを受け入れる。これはデフォルトです。 |
Qt3DRender::QAbstractRayCaster::AcceptAllMatchingLayers | 1 | このオブジェクトに追加されたすべてのQLayer オブジェクトを参照するエンティティを受け入れる。QAbstractRayCaster |
Qt3DRender::QAbstractRayCaster::DiscardAnyMatchingLayers | 2 | これに追加された1つ以上のQLayer オブジェクトを参照するエンティティを破棄する。QAbstractRayCaster |
Qt3DRender::QAbstractRayCaster::DiscardAllMatchingLayers | 3 | このオブジェクトに追加されたすべてのQLayer オブジェクトを参照するエンティティを破棄する。QAbstractRayCaster |
enum QAbstractRayCaster::RunMode
この列挙は、レイキャストの実行頻度を指定する
定数 | 値 | 説明 |
---|---|---|
Qt3DRender::QAbstractRayCaster::Continuous | 0 | コンポーネントが有効である限り、レイキャストは毎フレーム実行されます。 |
Qt3DRender::QAbstractRayCaster::SingleShot | 1 | レイキャストは一度実行されると、コンポーネントはそれ自体を無効にします。これはデフォルトの |
プロパティ ドキュメント
filterMode : FilterMode
レイキャストテストのために選択するエンティティを指定するフィルタモードを保持します。
デフォルト値は AcceptMatchingLayers です。
アクセス関数:
Qt3DRender::QAbstractRayCaster::FilterMode | filterMode() const |
void | setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
Notifier シグナル:
void | filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
[read-only]
hits : const Hits
最後のレイキャストテストの結果をQt3DRender::QRayCasterHit インスタンスのベクトルとして保持します。
連続したテストが全く同じ結果(または空の結果)を返す場合でも、テストごとに変更通知が発行されることに注意してください。
アクセス関数:
Qt3DRender::QAbstractRayCaster::Hits | hits() const |
通知シグナル:
void | hitsChanged(const Qt3DRender::QAbstractRayCaster::Hits &hits) |
runMode : RunMode
レイキャストテストの実行頻度を制御する実行モードを保持します。
SingleShot (デフォルト) に設定すると、コンポーネントが有効になったときに、1回のレイキャストテストが実行され、コンポーネントは自動的に無効になります。
Continuousに設定すると、コンポーネントが有効になっている限り、レイキャストテストは毎フレーム実行されます。
アクセス関数
Qt3DRender::QAbstractRayCaster::RunMode | runMode() const |
void | setRunMode(Qt3DRender::QAbstractRayCaster::RunMode runMode) |
通知シグナル
void | runModeChanged(Qt3DRender::QAbstractRayCaster::RunMode runMode) |
メンバ関数ドキュメント
void QAbstractRayCaster::addLayer(Qt3DRender::QLayer *layer)
layer を現在のレイヤーリストに追加する。
QList<Qt3DRender::QLayer *> QAbstractRayCaster::layers() const
現在のレイヤーリストを返す
void QAbstractRayCaster::removeLayer(Qt3DRender::QLayer *layer)
現在のレイヤーリストからlayer を削除する
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。