Auf dieser Seite

Qt3DRender::QAbstractRayCaster Class

class Qt3DRender::QAbstractRayCaster

Eine abstrakte Basisklasse für das Raycasting in 3D-Szenen. Mehr...

Header: #include <qabstractraycaster.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
In QML: AbstractRayCaster
Erbt von: Qt3DCore::QComponent
Vererbt an:

Qt3DRender::QRayCaster und Qt3DRender::QScreenRayCaster

Status: Veraltet

Diese Klasse ist veraltet. Wir raten dringend davon ab, sie in neuem Code zu verwenden.

Öffentliche Typen

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

Eigenschaften

  • filterMode : Qt3DRender::QAbstractRayCaster::FilterMode
  • hits : Qt3DRender::QAbstractRayCaster::Hits
  • runMode : Qt3DRender::QAbstractRayCaster::RunMode

Öffentliche Funktionen

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

Öffentliche Slots

void setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode)
void setRunMode(Qt3DRender::QAbstractRayCaster::RunMode runMode)

Signale

void filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode filterMode)
void hitsChanged(const Qt3DRender::QAbstractRayCaster::Hits &hits)
void runModeChanged(Qt3DRender::QAbstractRayCaster::RunMode runMode)

Ausführliche Beschreibung

Qt3DRender::QAbstractRayCaster ist eine abstrakte Basisklasse zum Casten von Strahlen in eine 3D-Szene. „ Qt3DRender::QAbstractRayCaster “ kann nicht direkt instanziiert werden, sondern nur über seine Unterklassen. „QAbstractRayCaster“ legt gemeinsame Eigenschaften für alle Ray-Caster fest, wie beispielsweise den Ausführungsmodus und die Ebenenverwaltung, während die tatsächlichen Details des Ray-Castings den Unterklassen überlassen bleiben.

Das Raycasting unterscheidet sich vom Picking (unter Verwendung von ` Qt3DRender::QObjectPicker`) dadurch, dass es keine Mausereignisse zur Auslösung benötigt.

Standardmäßig sind die Instanzen von „ Qt3DRender::QAbstractRayCaster “ deaktiviert. Bei Aktivierung wird der angegebene Strahl in jedem Frame auf sich überschneidende Objekte geprüft. Die Eigenschaft „ QAbstractRayCaster::hits “ wird mit den Ergebnissen des Ray Castings aktualisiert, auch wenn keine Objekte gefunden werden.

Mit dem „ Qt3DRender::QPickingSettings “ lässt sich der Raycasting-Vorgang steuern, beispielsweise welche Primitive geprüft werden und wie die Ergebnisse zurückgegeben werden.

Darüber hinaus können „ Qt3DRender::QLayer “-Komponenten verwendet werden, um zu steuern, wie Entitäten oder Entitäts-Teilgraphen auf das Ray Casting reagieren.

Hinweis: Von `QAbstractRayCaster` abgeleiteteKomponenten sollten nicht von mehreren Entitäten gemeinsam genutzt werden.

Siehe auch „ Qt3DRender::QRayCaster“ , „ Qt3DRender::QScreenRayCaster “, „ Qt3DRender::QObjectPicker “, „ Qt3DRender::QPickingSettings “ und „ Qt3DRender::QNoPicking “.

Dokumentation zum Mitgliedstyp

enum QAbstractRayCaster::FilterMode

Legt die Regeln für die Auswahl der zu prüfenden Entitäten beim Raycasting fest.

KonstanteWertBeschreibung
Qt3DRender::QAbstractRayCaster::AcceptAnyMatchingLayers0Entitäten akzeptieren, die auf ein oder mehrere „ QLayer “-Objekte verweisen, die diesem „ QAbstractRayCaster “ hinzugefügt wurden. Dies ist die Standardeinstellung
Qt3DRender::QAbstractRayCaster::AcceptAllMatchingLayers1Akzeptiert Entitäten, die auf alle „ QLayer “-Objekte verweisen, die diesem hinzugefügt wurden QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAnyMatchingLayers2Entitäten verwerfen, die auf ein oder mehrere „ QLayer “-Objekte verweisen, die zu diesem hinzugefügt wurden QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAllMatchingLayers3Entitäten verwerfen, die auf alle QLayer -Objekte verweisen, die zu diesem hinzugefügt wurden QAbstractRayCaster

enum QAbstractRayCaster::RunMode

Diese Aufzählung gibt an, wie oft das Ray-Casting durchgeführt wird

KonstanteWertBeschreibung
Qt3DRender::QAbstractRayCaster::Continuous0Ray Casting wird bei jedem Frame durchgeführt, solange die Komponente aktiviert ist.
Qt3DRender::QAbstractRayCaster::SingleShot1Ray Casting wird einmalig ausgeführt, danach deaktiviert sich die Komponente. Dies ist die Standardeinstellung.

Eigenschaftsdokumentation

filterMode : Qt3DRender::QAbstractRayCaster::FilterMode

Enthält den Filtermodus, der festlegt, welche Entitäten für Ray-Casting-Tests ausgewählt werden sollen.

Der Standardwert ist „AcceptMatchingLayers“.

Zugriffsfunktionen:

Qt3DRender::QAbstractRayCaster::FilterMode filterMode() const
void setFilterMode(Qt3DRender::QAbstractRayCaster::FilterMode filterMode)

Notifier-Signal:

void filterModeChanged(Qt3DRender::QAbstractRayCaster::FilterMode filterMode)

[read-only] hits : Qt3DRender::QAbstractRayCaster::Hits

Enthält die Ergebnisse des letzten Ray-Casting-Tests als Vektor von Qt3DRender::QRayCasterHit-Instanzen.

Beachten Sie, dass selbst wenn aufeinanderfolgende Tests genau dieselben Ergebnisse (oder leere Ergebnisse) zurückgeben, bei jedem Test eine Änderungsbenachrichtigung ausgegeben wird.

Zugriffsfunktionen:

Qt3DRender::QAbstractRayCaster::Hits hits() const

Notifier-Signal:

void hitsChanged(const Qt3DRender::QAbstractRayCaster::Hits &hits)

runMode : Qt3DRender::QAbstractRayCaster::RunMode

Legt den Ausführungsmodus fest, der bestimmt, wie oft Ray-Casting-Tests durchgeführt werden.

Wenn „ SingleShot “ (Standard) eingestellt ist, wird bei Aktivierung der Komponente ein einzelner Ray-Casting-Test durchgeführt, woraufhin sich die Komponente automatisch deaktiviert.

Bei der Einstellung „Continuous“ werden Ray-Casting-Tests bei jedem Frame durchgeführt, solange die Komponente aktiviert ist.

Zugriffsfunktionen:

Qt3DRender::QAbstractRayCaster::RunMode runMode() const
void setRunMode(Qt3DRender::QAbstractRayCaster::RunMode runMode)

Benachrichtigungssignal:

void runModeChanged(Qt3DRender::QAbstractRayCaster::RunMode runMode)

Dokumentation der Mitgliedsfunktionen

void QAbstractRayCaster::addLayer(Qt3DRender::QLayer *layer)

Füge „ layer “ zur aktuellen Liste der Ebenen hinzu

QList<Qt3DRender::QLayer *> QAbstractRayCaster::layers() const

Gibt die aktuelle Liste der Ebenen zurück

void QAbstractRayCaster::removeLayer(Qt3DRender::QLayer *layer)

„ layer “ aus der aktuellen Liste der Ebenen entfernen

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