QAbstractRayCaster Class

class Qt3DRender::QAbstractRayCaster

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

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:

Qt3DRender::QRayCaster and Qt3DRender::QScreenRayCaster

Status: Deprecated

パブリックタイプ

enum FilterMode { AcceptAnyMatchingLayers, AcceptAllMatchingLayers, DiscardAnyMatchingLayers, DiscardAllMatchingLayers }
enum RunMode { Continuous, SingleShot }

プロパティ

パブリック関数

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 : 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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。