Sur cette page

Qt3DRender::QAbstractRayCaster Class

class Qt3DRender::QAbstractRayCaster

Une classe de base abstraite pour la projection de rayons dans les scènes 3D. Plus d'informations...

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

Qt3DRender::QRayCaster et Qt3DRender::QScreenRayCaster

Statut : Déclassé

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 QAbstractRayCaster est une classe de base abstraite permettant de lancer des rayons dans une scène 3D. Qt3DRender::QAbstractRayCaster ne peut pas être instancié directement, mais plutôt par l'intermédiaire de ses sous-classes. QAbstractRayCaster spécifie les propriétés communes à tous les lanceurs de rayons, telles que le mode d'exécution et la gestion des couches, tout en laissant les détails du lancer de rayons aux sous-classes.

La projection de rayons diffère de la sélection (à l'aide de Qt3DRender::QObjectPicker) en ce sens qu'elle ne nécessite pas d'événements souris pour se déclencher.

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 vérifier s'il croise des objets. La propriété QAbstractRayCaster::hits sera mise à jour avec les résultats de la projection du rayon, même si aucun objet n'est trouvé.

La propriété Qt3DRender::QPickingSettings peut être utilisée pour contrôler le lancer de rayon, notamment les primitives testées et la manière dont les résultats sont renvoyés.

En outre, les composants 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 lancer de rayons.

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

Voir aussi Qt3DRender::QRayCaster, Qt3DRender::QScreenRayCaster, Qt3DRender::QObjectPicker, Qt3DRender::QPickingSettings, et Qt3DRender::QNoPicking.

Documentation sur les types de membres

enum QAbstractRayCaster::FilterMode

Spécifie les règles de sélection des entités à tester pour la diffusion de rayons.

ConstanteValeurDescription
Qt3DRender::QAbstractRayCaster::AcceptAnyMatchingLayers0Accepte les entités qui font référence à un ou plusieurs objets QLayer ajoutés à ce site QAbstractRayCaster. Il s'agit de la valeur par défaut
Qt3DRender::QAbstractRayCaster::AcceptAllMatchingLayers1Accepter les entités qui font référence à tous les objets QLayer ajoutés à cette page. QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAnyMatchingLayers2Rejeter les entités qui font référence à un ou plusieurs objets QLayer ajoutés à cette page. QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAllMatchingLayers3Rejeter les entités qui font référence à tous les objets QLayer ajoutés à cette page. QAbstractRayCaster

enum QAbstractRayCaster::RunMode

Cette énumération spécifie la fréquence à laquelle le lancer de rayon est effectué

ConstanteValeurDescription
Qt3DRender::QAbstractRayCaster::Continuous0Le lancer de rayon est effectué à chaque image tant que le composant est activé.
Qt3DRender::QAbstractRayCaster::SingleShot1Le lancer de rayon est effectué une 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

Indique le mode de filtrage spécifiant les entités à sélectionner pour les tests de moulage de rayons.

La valeur par défaut est AcceptMatchingLayers.

Fonctions d'accès :

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

Signal du notificateur :

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

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

Contient les résultats du dernier test de lancer de rayon sous la forme d'un vecteur d'instances 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 changement sera émise à chaque test.

Fonctions d'accès :

Qt3DRender::QAbstractRayCaster::Hits hits() const

Notifier signal :

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

runMode : Qt3DRender::QAbstractRayCaster::RunMode

Détient le mode d'exécution contrôlant la fréquence des tests de lancer de rayons.

S'il est défini sur SingleShot (valeur par défaut), lorsque le composant est activé, un seul test de lancer de rayons est effectué et le composant se désactive automatiquement.

S'il est défini sur Continu, les tests de lancer de rayons 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 Notificateur :

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

Member Function Documentation

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

Ajouter layer à la liste actuelle des couches

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

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