QAbstractRayCaster Class

class Qt3DRender::QAbstractRayCaster

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

ヘッダー #include <QAbstractRayCaster>
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 : const 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 シーンに光線をキャストするための抽象ベースクラスです。 は直接インスタンス化することはできず、サブクラスを通してインスタンス化します。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::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レイキャストは一度実行されると、コンポーネントはそれ自体を無効にします。これはデフォルトの

プロパティの説明

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 : const 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)

Notifier シグナル:

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 を削除する

© 2025 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.