Auf dieser Seite

Qt3DRender::QRayCaster Class

class Qt3DRender::QRayCaster

Qt3DRender::QRayCaster wird verwendet, um Ray-Casting-Tests in 3D-Weltkoordinaten durchzuführen. Mehr...

Überschrift: #include <qraycaster.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake: QT += 3drender
In QML: RayCaster
Erbt von: Qt3DRender::QAbstractRayCaster
Status: Veraltet

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

Eigenschaften

Öffentliche Funktionen

QVector3D direction() const
float length() const
QVector3D origin() const

Öffentliche Slots

void setDirection(const QVector3D &direction)
void setLength(float length)
void setOrigin(const QVector3D &origin)
void trigger()
void trigger(const QVector3D &origin, const QVector3D &direction, float length)

Signale

void directionChanged(const QVector3D &direction)
void lengthChanged(float length)
void originChanged(const QVector3D &origin)

Detaillierte Beschreibung

Der 3D-Strahl wird durch seinen Ursprung, seine Richtung und seine Länge definiert. Er wird von den Transformationen beeinflusst, die auf die Entität angewendet werden, zu der er gehört.

Ray-Casting-Tests werden in jedem Frame durchgeführt, solange die Komponente aktiviert ist. Die Eigenschaft „hits“ wird mit der Liste der Schnittpunkte aktualisiert.

Siehe auch QAbstractRayCaster, QScreenRayCaster und QNoPicking.

Dokumentation der Eigenschaft

direction : QVector3D

Enthält die Richtung des 3D-Strahls. Dies sollte ein Einheitsvektor sein.

Zugriffsfunktionen:

QVector3D direction() const
void setDirection(const QVector3D &direction)

Benachrichtigungssignal:

void directionChanged(const QVector3D &direction)

length : float

Enthält die Länge des 3D-Strahls.

Zugriffsfunktionen:

float length() const
void setLength(float length)

Benachrichtigungssignal:

void lengthChanged(float length)

origin : QVector3D

Enthält den Ursprung des 3D-Strahls in lokalen Koordinaten.

Zugriffsfunktionen:

QVector3D origin() const
void setOrigin(const QVector3D &origin)

Benachrichtigungssignal:

void originChanged(const QVector3D &origin)

Dokumentation der Mitgliedsfunktionen

[slot] void QRayCaster::setLength(float length)

Legt die Länge des Strahls auf „ length “ fest.

Ist der Wert kleiner oder gleich Null, wird der Strahl als unendlich betrachtet.

Hinweis: Setter -Funktion für die Eigenschaft ` length`.

Siehe auch ` length()`.

[slot] void QRayCaster::trigger()

Eine praktische Methode, um die Komponente zu aktivieren und Tests unter Verwendung des aktuellen Strahls auszulösen.

Hinweis: Dieser Slot ist überladen. So stellen Sie eine Verbindung zu diesem Slot her:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        rayCaster, qOverload<>(&QRayCaster::trigger));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        rayCaster, [receiver = rayCaster]() { receiver->trigger(); });
Weitere Beispiele und Vorgehensweisen finden Sie unter „Anbindung an überladene Slots“.

[slot] void QRayCaster::trigger(const QVector3D &origin, const QVector3D &direction, float length)

Praktische Methode zum Festlegen der Strahldetails origin, direction und length sowie zum Aktivieren der Komponente, um Tests auszulösen.

Hinweis: Dieser Slot ist überladen. So stellen Sie eine Verbindung zu diesem Slot her:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        rayCaster, qOverload(&QRayCaster::trigger));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        rayCaster, [receiver = rayCaster](const QVector3D &origin, const QVector3D &direction, float length) { receiver->trigger(origin, direction, length); });
Weitere Beispiele und Vorgehensweisen finden Sie unter „Verbindung zu überladenen Slots herstellen“.

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