Qt3DRender::QAbstractRayCaster Class
class Qt3DRender::QAbstractRayCaster3Dシーンにおけるレイキャスティングのための抽象基底クラス。詳細...
| ヘッダー: | #include <qabstractraycaster.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| QML内: | AbstractRayCaster |
| 継承元: | Qt3DCore::QComponent |
| 継承元: | |
| ステータス: | 非推奨 |
このクラスは非推奨です。新しいコードでの使用は強く推奨しません。
パブリック型
| enum | FilterMode { AcceptAnyMatchingLayers, AcceptAllMatchingLayers, DiscardAnyMatchingLayers, DiscardAllMatchingLayers } |
| enum | RunMode { Continuous, SingleShot } |
プロパティ
- filterMode : Qt3DRender::QAbstractRayCaster::FilterMode
- hits : Qt3DRender::QAbstractRayCaster::Hits
- runMode : Qt3DRender::QAbstractRayCaster::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シーンにレイをキャストするための抽象基底クラスです。Qt3DRender::QAbstractRayCaster は直接インスタンス化することはできず、そのサブクラスを通じてインスタンス化する必要があります。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 | レイキャスティングは 1 回実行された後、コンポーネントは自動的に無効化されます。これがデフォルトの設定です。 |
プロパティのドキュメント
filterMode : Qt3DRender::QAbstractRayCaster::FilterMode
レイキャスティングテストで選択するエンティティを指定するフィルタモードを保持します。
デフォルト値は AcceptMatchingLayers です。
アクセス関数:
| Qt3DRender::QAbstractRayCaster::FilterMode | filterMode() const |
| void | setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
通知シグナル:
| void | filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode filterMode) |
[read-only] hits : Qt3DRender::QAbstractRayCaster::Hits
前回のレイキャスティングテストの結果を、Qt3DRender::QRayCasterHit インスタンスのベクトルとして保持します。
なお、連続するテストでまったく同じ結果(または空の結果)が返された場合でも、テストが行われるたびに変更通知が発行されます。
アクセス関数:
| Qt3DRender::QAbstractRayCaster::Hits | hits() const |
通知シグナル:
| void | hitsChanged(const Qt3DRender::QAbstractRayCaster::Hits &hits) |
runMode : Qt3DRender::QAbstractRayCaster::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 」を削除する
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.