QAbstractRayCaster 類

class Qt3DRender ::QAbstractRayCaster

用於在 3D 場景中,投射光綫的抽象基類。 更多...

頭: #include <QAbstractRayCaster>
qmake: QT += 3drender
Since: Qt 5.11
實例化: AbstractRayCaster
繼承: Qt3DCore::QComponent
繼承者:

Qt3DRender::QRayCaster and Qt3DRender::QScreenRayCaster

該類在 Qt 5.11 引入。

公共類型

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

特性

公共函數

void addLayer (Qt3DRender::QLayer * layer )
Qt3DRender::QAbstractRayCaster::FilterMode filterMode () const
Qt3DRender::QAbstractRayCaster::Hits hits () const
QVector<Qt3DRender::QLayer *> layers () const
void removeLayer (Qt3DRender::QLayer * layer )
Qt3DRender::QAbstractRayCaster::RunMode runMode () const

公共槽

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

信號

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

詳細描述

Qt3DRender::QAbstractRayCaster is an abstract base class for casting rays into a 3d scene. Qt3DRender::QAbstractRayCaster can not be directly instantiated, but rather through its subclasses. QAbstractRayCaster specifies common properties for all ray casters, such as run mode and layer handling, while leaving the actual ray casting details to the subclasses.

Ray castings differs from picking (using Qt3DRender::QObjectPicker ) in that it does not require mouse events to trigger.

By default, the instances of Qt3DRender::QAbstractRayCaster are disabled. When enabled, the specified ray will be tested for intersecting objects at every frame. The QAbstractRayCaster::hits property will be updated with the results of the ray casting, even if no objects are found.

The Qt3DRender::QPickingSettings can be used to control the ray casting, such as which primitives are tested and how the results are returned.

Furthermore, Qt3DRender::QLayer components can be used to control how entities, or entity sub-graphs, react to ray casting.

注意: Components derived from QAbstractRayCaster should not be shared amount multiple entities.

另請參閱 Qt3DRender::QRayCaster , Qt3DRender::QScreenRayCaster , Qt3DRender::QObjectPicker , Qt3DRender::QPickingSettings ,和 Qt3DRender::QNoPicking .

成員類型文檔編製

enum QAbstractRayCaster:: FilterMode

Specifies the rules for selecting entities to test for raycasting.

常量 描述
Qt3DRender::QAbstractRayCaster::AcceptAnyMatchingLayers 0 Accept entities that reference one or more QLayer objects added to this QAbstractRayCaster . This is the default
Qt3DRender::QAbstractRayCaster::AcceptAllMatchingLayers 1 Accept entities that reference all the QLayer objects added to this QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAnyMatchingLayers 2 Discard entities that reference one or more QLayer objects added to this QAbstractRayCaster
Qt3DRender::QAbstractRayCaster::DiscardAllMatchingLayers 3 Discard entities that reference all QLayer objects added to this QAbstractRayCaster

enum QAbstractRayCaster:: RunMode

This enumeration specifies how often ray casting is performed

常量 描述
Qt3DRender::QAbstractRayCaster::Continuous 0 Ray casting is performed at every frame as long as the component is enabled.
Qt3DRender::QAbstractRayCaster::SingleShot 1 Ray casting is done once then the component disables itself. This is the default

特性文檔編製

filterMode : FilterMode

Holds the filter mode specifying the entities to select for ray casting tests.

The default value is AcceptMatchingLayers.

訪問函數:

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

通知程序信號:

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

hits : const Hits

Holds the results of last ray casting test as a vector of Qt3DRender::QRayCasterHit 實例。

Note that even if successive tests return the exact same results (or empty results), a change notification will be emitted at every test.

訪問函數:

Qt3DRender::QAbstractRayCaster::Hits hits () const

通知程序信號:

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

runMode : RunMode

Holds the run mode controlling how often ray casting tests are performed.

若設為 SingleShot (the default), when the component is enabled, a single ray casting test will be performed and the component will automatically disable itself.

If set to Continuous, ray casting tests will be performed at every frame as long as the component is enabled.

訪問函數:

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

通知程序信號:

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

成員函數文檔編製

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

添加 layer to the current list of layers

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

Returns the current list of layers

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

移除 layer from the current list of layers