QBoundingVolume 类

class Qt3DCore::QBoundingVolume

可用于重写实体的边界体积。更多...

头文件 #include <Qt3DCore/QBoundingVolume>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3DCore)
target_link_libraries(mytarget PRIVATE Qt6::3DCore)
qmakeQT += 3dcore
Qt 6.0
由实例化 BoundingVolume
继承自 Qt3DCore::QComponent
由下列类继承

Qt3DRender::QGeometryRendererQt3DRender::QPickingProxy

属性

公共函数

QBoundingVolume(Qt3DCore::QNode *parent = nullptr)
boolareImplicitPointsValid() const
QVector3DimplicitMaxPoint() const
QVector3DimplicitMinPoint() const
QVector3DmaxPoint() const
QVector3DminPoint() const
Qt3DCore::QGeometryView *view() const

公共槽

voidsetMaxPoint(const QVector3D &maxPoint)
voidsetMinPoint(const QVector3D &minPoint)
voidsetView(Qt3DCore::QGeometryView *view)
boolupdateImplicitBounds()

信号

voidimplicitMaxPointChanged(const QVector3D &implicitMaxPoint)
voidimplicitMinPointChanged(const QVector3D &implicitMinPoint)
voidimplicitPointsValidChanged(bool implicitPointsValid)
voidmaxPointChanged(QVector3D maxPoint)
voidminPointChanged(QVector3D minPoint)
voidviewChanged(Qt3DCore::QGeometryView *view)

详细描述

实体的边界体积用于许多操作,如选择或视图视锥剔除。它通常通过遍历渲染几何体来计算。

当应用已知几何体的范围时,可以使用QBoundingVolume,这样Qt 3D就不需要计算它。

边界体积可以作为最小和最大范围坐标提供,或提供单独的、通常更简单的几何体,该几何体近似于渲染网格。

当使用最小和最大范围时,它们被认为是轴对齐边界框的对角顶点,在几何体的局部坐标系中。

QBoundingVolume还可以用于查询GeometryView的计算边界体积。如果几何体发生变化,则implicitMinPointimplicitMaxPoint属性将更新。请注意,这是一次在后台线程上异步执行的,因此在读取之前应检查implicitPointsValid的值。

您可以通过调用updateImplicitBounds来强制隐式范围更新。这将阻塞调用线程,直到结果可用。

注意:GeometryRenderer继承自BoundingVolume,因此支持读取隐式边界或设置显式边界。

属性文档

[只读] implicitMaxPoint : const QVector3D

** 包含从指定视图计算出的边界体积的最大范围。

访问函数

QVector3DimplicitMaxPoint() const

通知信号

voidimplicitMaxPointChanged(const QVector3D &implicitMaxPoint)

[只读] implicitMinPoint : const QVector3D

** 包含从指定视图计算出的边界体积的最小范围。

访问函数

QVector3DimplicitMinPoint() const

通知信号

voidimplicitMinPointChanged(const QVector3D &implicitMinPoint)

[只读] implicitPointsValid : const bool

** 如果已分配视图且隐式范围属性是最新的,则为true。

访问函数

boolareImplicitPointsValid() const

通知信号

voidimplicitPointsValidChanged(bool implicitPointsValid)

另请参阅updateImplicitBounds

maxPoint : QVector3D

** 用户指定的边界体积最大范围。当设置(与最小范围一起)时,将内部使用以避免从几何体中计算体积。

访问函数

QVector3DmaxPoint() const
voidsetMaxPoint(const QVector3D &maxPoint)

通知信号

voidmaxPointChanged(QVector3D maxPoint)

minPoint : QVector3D

** 用户指定的边界体积最小范围。当设置(与最大范围一起)时,将内部使用以避免从几何体中计算体积。

访问函数

QVector3DminPoint() const
voidsetMinPoint(const QVector3D &minPoint)

通知信号

voidminPointChanged(QVector3D minPoint)

view : QGeometryView*

存储指向一个用于计算边界体积的QGeometryView实例的指针。

访问函数

Qt3DCore::QGeometryView *view() const
voidsetView(Qt3DCore::QGeometryView *view)

通知信号

voidviewChanged(Qt3DCore::QGeometryView *view)

成员函数文档

[显式] QBoundingVolume::QBoundingVolume(Qt3DCore::QNode *parent = nullptr)

使用指定的parent构造一个新的QBoundingVolume。

[槽函数] bool QBoundingVolume::updateImplicitBounds()

更新指定视图的隐含边界。如果计算成功返回true,否则返回false。

注意:计算在调用线程中完成,对于大型网格这可能需要很长时间。

© 2024 The Qt Company Ltd. 本文档中包含的文档贡献为其各自所有者的版权。本文档依据由自由软件基金会发布的GNU自由文档许可协议版本1.3的条款提供。Qt及其相关商标是芬兰的The Qt Company Ltd.及其全球的商标,在其他国家和地区也有商标。所有其他商标均为其各自所有者的财产。