Sur cette page

Qt3DRender::QAbstractRayCaster Class

class Qt3DRender::QAbstractRayCaster

Une classe de base abstraite pour le ray casting dans les scènes 3D. En savoir plus...

En-tête : #include <qabstractraycaster.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender)
qmake : QT += 3drender
En QML : AbstractRayCaster
Hérite de : Qt3DCore::QComponent
Hérité par :

Qt3DRender::QRayCaster et Qt3DRender::QScreenRayCaster

Statut : Obsolète

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

Types publics

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

Propriétés

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

Fonctions publiques

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

Emplacements publics

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

Signaux

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

Description détaillée

Qt3DRender::QAbstractRayCaster est une classe de base abstraite permettant de projeter des rayons dans une scène 3D. Qt3DRender::QAbstractRayCaster ne peut pas être instanciée directement, mais uniquement via ses sous-classes. QAbstractRayCaster définit les propriétés communes à tous les projecteurs de rayons, telles que le mode d’exécution et la gestion des calques, tout en laissant aux sous-classes le soin de gérer les détails concrets de la projection des rayons.

Le lancer de rayons diffère du « picking » (à l’aide de ` Qt3DRender::QObjectPicker`) en ce qu’il ne nécessite pas d’événements de souris pour être déclenché.

Par défaut, les instances de ` Qt3DRender::QAbstractRayCaster ` sont désactivées. Lorsqu’elles sont activées, le rayon spécifié est testé à chaque image pour détecter les objets avec lesquels il pourrait entrer en intersection. La propriété ` QAbstractRayCaster::hits ` est mise à jour avec les résultats du ray casting, même si aucun objet n’est trouvé.

L’ Qt3DRender::QPickingSettings permet de contrôler le lancer de rayons, notamment en déterminant quelles primitives sont testées et comment les résultats sont renvoyés.

De plus, les composants de l’ Qt3DRender::QLayer peuvent être utilisés pour contrôler la manière dont les entités, ou les sous-graphes d’entités, réagissent au ray casting.

Remarque : les composants dérivés de `QAbstractRayCaster` ne doivent pas être partagés entre plusieurs entités.

Voir également Qt3DRender::QRayCaster, Qt3DRender::QScreenRayCaster, Qt3DRender::QObjectPicker, Qt3DRender::QPickingSettings et Qt3DRender::QNoPicking.

Documentation sur les types de membres

enum QAbstractRayCaster::FilterMode

Définit les règles de sélection des entités à tester dans le cadre du raycasting.

ConstanteValeurDescription
Qt3DRender::QAbstractRayCaster::AcceptAnyMatchingLayers0Accepte les entités qui font référence à un ou plusieurs objets « QLayer » ajoutés à ce « QAbstractRayCaster ». Il s’agit de la valeur par défaut
Qt3DRender::QAbstractRayCaster::AcceptAllMatchingLayers1Accepte les entités qui font référence à tous les objets « QLayer » ajoutés à ce QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAnyMatchingLayers2Rejeter les entités qui font référence à un ou plusieurs objets QLayer ajoutés à cette QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAllMatchingLayers3Écarter les entités qui font référence à tous les objets QLayer ajoutés à cette QAbstractRayCaster

enum QAbstractRayCaster::RunMode

Cette énumération spécifie la fréquence à laquelle le ray casting est effectué

ConstanteValeurDescription
Qt3DRender::QAbstractRayCaster::Continuous0Le ray casting est effectué à chaque image tant que le composant est activé.
Qt3DRender::QAbstractRayCaster::SingleShot1Le ray casting est effectué une seule fois, puis le composant se désactive. Il s'agit de la valeur par défaut.

Documentation de la propriété

filterMode : Qt3DRender::QAbstractRayCaster::FilterMode

Contient le mode de filtrage qui spécifie les entités à sélectionner pour les tests de ray casting.

La valeur par défaut est AcceptMatchingLayers.

Fonctions d'accès :

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

Signal de notification :

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

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

Contient les résultats du dernier test de ray casting sous la forme d'un vecteur d'instances de type Qt3DRender::QRayCasterHit.

Notez que même si des tests successifs renvoient exactement les mêmes résultats (ou des résultats vides), une notification de modification sera émise à chaque test.

Fonctions d'accès :

Qt3DRender::QAbstractRayCaster::Hits hits() const

Signal de notification :

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

runMode : Qt3DRender::QAbstractRayCaster::RunMode

Définit le mode d'exécution qui détermine la fréquence à laquelle les tests de ray casting sont effectués.

S'il est défini sur « SingleShot » (valeur par défaut), lorsque le composant est activé, un seul test de ray casting sera effectué et le composant se désactivera automatiquement.

S'il est défini sur « Continu » (Continuous), les tests de ray casting seront effectués à chaque image tant que le composant est activé.

Fonctions d'accès :

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

Signal de notification :

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

Documentation des fonctions membres

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

Ajouter « layer » à la liste actuelle des couches

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

Renvoie la liste actuelle des couches

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

Supprimer « layer » de la liste actuelle des couches

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