Sur cette page

Qt3DRender::QRayCaster Class

class Qt3DRender::QRayCaster

Qt3DRender::QRayCaster sert à effectuer des tests de ray casting dans un système de coordonnées 3D. En savoir plus...

En-tête : #include <qraycaster.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake : QT += 3drender
En QML : RayCaster
Hérite de : Qt3DRender::QAbstractRayCaster
Statut : Obsolète

Cette classe est obsolète. Nous déconseillons fortement de l'utiliser dans du nouveau code.

Propriétés

Fonctions publiques

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

Emplacements publics

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)

Signaux

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

Description détaillée

Le rayon 3D est défini par son origine, sa direction et sa longueur. Il sera affecté par les transformations appliquées à l'entité à laquelle il appartient.

Des tests de ray casting seront effectués à chaque image tant que le composant est activé. La propriété « hits » sera mise à jour avec la liste des intersections.

Voir également QAbstractRayCaster, QScreenRayCaster et QNoPicking.

Documentation sur les propriétés

direction : QVector3D

Contient la direction du rayon 3D. Il doit s'agir d'un vecteur unitaire.

Fonctions d'accès :

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

Signal de notification :

void directionChanged(const QVector3D &direction)

length : float

Contient la longueur du rayon 3D.

Fonctions d'accès :

float length() const
void setLength(float length)

Signal de notification :

void lengthChanged(float length)

origin : QVector3D

Contient l'origine du rayon 3D en coordonnées locales.

Fonctions d'accès :

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

Signal de notification :

void originChanged(const QVector3D &origin)

Documentation des fonctions membres

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

Définit la longueur du rayon à length.

Si la valeur est inférieure ou égale à zéro, le rayon est considéré comme infini.

Remarque : fonctionde définition de la propriété length.

Voir aussi ` length()`.

[slot] void QRayCaster::trigger()

Méthode pratique permettant d'activer le composant et de déclencher des tests à l'aide du rayon actuel.

Remarque : cet emplacement est surchargé. Pour vous connecter à cet emplacement :

// 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(); });
Pour plus d’exemples et d’approches, consultez la section « Connexion à des emplacements surchargés ».

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

Méthode pratique pour définir les détails des rayons origin, direction et length, et permettre au composant de déclencher des tests.

Remarque : ce slot est surchargé. Pour vous connecter à ce slot :

// 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); });
Pour plus d'exemples et d'approches, consultez la section « Connexion à des slots surchargés ».

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