このページでは

Qt3DRender::QAbstractRayCaster Class

class Qt3DRender::QAbstractRayCaster

3Dシーンにおけるレイキャスティングのための抽象基底クラス。詳細...

ヘッダー: #include <qabstractraycaster.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
QML内: AbstractRayCaster
継承元: Qt3DCore::QComponent
継承元:

Qt3DRender::QRayCaster およびQt3DRender::QScreenRayCaster

ステータス: 非推奨

このクラスは非推奨です。新しいコードでの使用は強く推奨しません。

パブリック型

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::AcceptAnyMatchingLayers0この `QAbstractRayCaster` に追加された 1 つ以上の `QLayer ` オブジェクトを参照するエンティティを受け入れます。これがデフォルトです。
Qt3DRender::QAbstractRayCaster::AcceptAllMatchingLayers1この に追加されたすべてのQLayer オブジェクトを参照するエンティティを受け入れます。QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAnyMatchingLayers2この に追加された1つ以上のQLayer オブジェクトを参照するエンティティを破棄します。QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAllMatchingLayers3この に追加されたすべてのQLayer オブジェクトを参照するエンティティを破棄するQAbstractRayCaster

enum QAbstractRayCaster::RunMode

この列挙型は、レイキャスティングが実行される頻度を指定します

定数値説明
Qt3DRender::QAbstractRayCaster::Continuous0コンポーネントが有効になっている限り、レイキャスティングは毎フレーム実行されます。
Qt3DRender::QAbstractRayCaster::SingleShot1レイキャスティングは 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.