Auf dieser Seite

AbstractRayCaster QML Type

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

Import Statement: import Qt3D.Render 2.12
In C++: QAbstractRayCaster
Status: Deprecated

Dieser Typ ist veraltet. Wir raten dringend davon ab, ihn in neuem Code zu verwenden.

Eigenschaften

Ausführliche Beschreibung

AbstractRayCaster ist eine abstrakte Basisklasse für das Abwerfen von Strahlen in einer 3D-Szene. AbstractRayCaster kann nicht direkt instanziiert werden, sondern nur über seine Unterklassen. QAbstractRayCaster legt gemeinsame Eigenschaften für alle Raycaster fest, wie z. B. den Ausführungsmodus und die Ebenenbehandlung, während die tatsächlichen Details des Raycastings den Unterklassen überlassen bleiben.

Das Raycasting unterscheidet sich vom Picking (unter Verwendung von ` ObjectPicker`) dadurch, dass es keine Mausereignisse zur Auslösung benötigt.

Standardmäßig sind die Instanzen von `AbstractRayCaster` deaktiviert. Bei Aktivierung wird der angegebene Strahl in jedem Frame auf sich überschneidende Objekte geprüft. Die Eigenschaft `AbstractRayCaster.hits` wird mit den Ergebnissen der Strahlverfolgung aktualisiert, auch wenn keine Objekte gefunden werden.

Mit Qt3D.Render::PickingSettings lässt sich der Raycasting-Vorgang steuern, z. B. welche Primitive geprüft werden und wie die Ergebnisse zurückgegeben werden.

Darüber hinaus können Qt3D.Render::Layer-Komponenten verwendet werden, um zu steuern, wie Entitäten oder Entitäts-Teilgraphen auf das Raycasting reagieren.

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

Siehe auch Qt3D.Render::RayCaster, Qt3D.Render::ScreenRayCaster, Qt3D.Render::ObjectPicker, Qt3D.Render::PickingSettings und Qt3D.Render::NoPicking.

Dokumentation der Eigenschaften

filterMode : enumeration

Enthält den Filtermodus, der festlegt, welche Entitäten für Ray-Casting-Tests ausgewählt werden sollen.

Der Standardwert ist „ AbstractRayCaster.AcceptMatchingLayers “.

KonstanteBeschreibung
AcceptAnyMatchingLayersAkzeptiert Entitäten, die auf ein oder mehrere „ Layer “-Objekte verweisen, die diesem „ AbstractRayCaster “ hinzugefügt wurden. Dies ist die Standardeinstellung
AcceptAllMatchingLayersEntitäten akzeptieren, die auf alle „ Layer “-Objekte verweisen, die diesem hinzugefügt wurden AbstractRayCaster
DiscardAnyMatchingLayersEntitäten verwerfen, die auf ein oder mehrere „ Layer “-Objekte verweisen, die zu diesem hinzugefügt wurden AbstractRayCaster
DiscardAllMatchingLayersEntitäten verwerfen, die auf alle zu diesem hinzugefügten „ Layer “-Objekte verweisen AbstractRayCaster

hits : array [read-only]

Speichert die Ergebnisse des letzten Ray-Casting-Tests als Array von JavaScript-Objekten. Die in den Objekten definierten Felder sind im Folgenden beschrieben.

{
    type // enum value of RayCasterHit.HitType
    entity // entity that was intersected
    distance // distance from ray origin to intersection
    localIntersection.x: // coordinate of intersection in the entity's coordinate system
    localIntersection.y
    localIntersection.z
    worldIntersection.x // coordinate of intersection in the model's coordinate system
    worldIntersection.y
    worldIntersection.z
    primitiveIndex // index of the primitive (triangle, line, point) that was intersected;
                   // (undefined if the picking mode is set to bounding volume)
    vertex1Index // index of the first point of the triangle or line that was intersected
                 // (undefined if the picking mode is set to bounding volume or points)
    vertex2Index // index of the second point of the triangle or line that was intersected
                 // (undefined if the picking mode is set to bounding volume or points)
    vertex3Index // index of the second point of the triangle that was intersected
                 // (undefined if the picking mode is set to bounding volume, points or lines)
}

Beachten Sie, dass auch dann, wenn aufeinanderfolgende Tests genau dieselben Ergebnisse (oder leere Ergebnisse) zurückgeben, bei jedem Test eine Änderungsbenachrichtigung ausgegeben wird.

runMode : enumeration

Legt den Ausführungsmodus fest, der bestimmt, wie oft Ray-Casting-Tests durchgeführt werden.

KonstanteBeschreibung
ContinuousRay Casting wird bei jedem Frame durchgeführt, solange die Komponente aktiviert ist.
SingleShotRay Casting wird einmal ausgeführt, danach deaktiviert sich die Komponente. Dies ist die Standardeinstellung.

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