QAbstractRayCaster Class

class Qt3DRender::QAbstractRayCaster

Eine abstrakte Basisklasse für Ray Casting in 3D-Szenen. Mehr...

Kopfzeile: #include <QAbstractRayCaster>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
In QML: AbstractRayCaster
Vererbt: Qt3DCore::QComponent
Geerbt von:

Qt3DRender::QRayCaster und Qt3DRender::QScreenRayCaster

Status: Veraltet

Öffentliche Typen

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

Eigenschaften

  • filterMode : Qt3DRender::QAbstractRayCaster::FilterMode
  • hits : const 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)

Detaillierte Beschreibung

Qt3DRender::QAbstractRayCaster QAbstractRayCaster ist eine abstrakte Basisklasse für das Casting 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 z.B. Run-Mode und Layer-Handling, während die eigentlichen Details des Ray-Castings den Unterklassen überlassen werden.

Ray Casting unterscheidet sich vom Picking (mit Qt3DRender::QObjectPicker) dadurch, dass es keine Mausereignisse zum Auslösen benötigt.

In der Voreinstellung sind die Instanzen von Qt3DRender::QAbstractRayCaster deaktiviert. Wenn sie aktiviert sind, wird der angegebene Strahl bei jedem Frame auf sich schneidende Objekte getestet. Die Eigenschaft QAbstractRayCaster::hits wird mit den Ergebnissen des Strahlenwurfs aktualisiert, auch wenn keine Objekte gefunden werden.

Mit Qt3DRender::QPickingSettings kann das Ray-Casting gesteuert werden, z. B. welche Primitive getestet werden und wie die Ergebnisse zurückgegeben werden.

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

Hinweis: Von QAbstractRayCaster abgeleitete Komponenten sollten nicht von mehreren Entitäten gemeinsam genutzt werden.

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

Dokumentation der Mitgliedstypen

enum QAbstractRayCaster::FilterMode

Legt die Regeln für die Auswahl von Objekten fest, die auf Raycasting getestet werden sollen.

KonstanteWertBeschreibung
Qt3DRender::QAbstractRayCaster::AcceptAnyMatchingLayers0Akzeptiert Entitäten, die auf ein oder mehrere QLayer Objekte verweisen, die zu diesem QAbstractRayCaster hinzugefügt wurden. Dies ist der Standardwert
Qt3DRender::QAbstractRayCaster::AcceptAllMatchingLayers1Akzeptiere Entitäten, die auf alle QLayer Objekte verweisen, die zu dieser Seite hinzugefügt wurden. QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAnyMatchingLayers2Entitäten verwerfen, die auf ein oder mehrere QLayer Objekte verweisen, die zu dieser Seite hinzugefügt wurden QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAllMatchingLayers3Verwirft Entitäten, die auf alle QLayer Objekte verweisen, die zu dieser Seite hinzugefügt wurden. QAbstractRayCaster

enum QAbstractRayCaster::RunMode

Diese Aufzählung gibt an, wie oft der Strahlenwurf durchgeführt wird

KonstanteWertBeschreibung
Qt3DRender::QAbstractRayCaster::Continuous0Das Ray-Casting wird bei jedem Frame durchgeführt, solange die Komponente aktiviert ist.
Qt3DRender::QAbstractRayCaster::SingleShot1Das Ray-Casting wird einmal durchgeführt, dann deaktiviert sich die Komponente selbst. Dies ist die Standardeinstellung

Dokumentation der Eigenschaft

filterMode : Qt3DRender::QAbstractRayCaster::FilterMode

Enthält den Filtermodus, der angibt, welche Objekte für die Raycasting-Tests ausgewählt werden sollen.

Der Standardwert ist AcceptMatchingLayers.

Zugriffsfunktionen:

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

Melder-Signal:

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

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

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

Beachten Sie, dass selbst wenn aufeinanderfolgende Tests genau die gleichen Ergebnisse (oder leere Ergebnisse) liefern, bei jedem Test eine Änderungsmeldung ausgegeben wird.

Zugriffsfunktionen:

Qt3DRender::QAbstractRayCaster::Hits hits() const

Notifier Signal:

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

runMode : Qt3DRender::QAbstractRayCaster::RunMode

Enthält den Ausführungsmodus, der bestimmt, wie oft Ray-Casting-Tests durchgeführt werden.

Bei der Einstellung SingleShot (Standard) wird bei Aktivierung der Komponente ein einziger Ray-Casting-Test durchgeführt und die Komponente deaktiviert sich automatisch.

Bei der Einstellung Kontinuierlich werden bei jedem Bild Strahlenwurf-Tests 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)

Member Function Dokumentation

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

layer zur aktuellen Liste der Ebenen hinzufügen

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

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