QBoundingVolume 类
class Qt3DCore::QBoundingVolume可用于重写实体的边界体积。更多...
头文件 | #include <Qt3DCore/QBoundingVolume> |
CMake | find_package(Qt6 REQUIRED COMPONENTS 3DCore) target_link_libraries(mytarget PRIVATE Qt6::3DCore) |
qmake | QT += 3dcore |
自 | Qt 6.0 |
由实例化 | BoundingVolume |
继承自 | Qt3DCore::QComponent |
由下列类继承 |
属性
|
公共函数
QBoundingVolume(Qt3DCore::QNode *parent = nullptr) | |
bool | areImplicitPointsValid() const |
QVector3D | implicitMaxPoint() const |
QVector3D | implicitMinPoint() const |
QVector3D | maxPoint() const |
QVector3D | minPoint() const |
Qt3DCore::QGeometryView * | view() const |
公共槽
void | setMaxPoint(const QVector3D &maxPoint) |
void | setMinPoint(const QVector3D &minPoint) |
void | setView(Qt3DCore::QGeometryView *view) |
bool | updateImplicitBounds() |
信号
void | implicitMaxPointChanged(const QVector3D &implicitMaxPoint) |
void | implicitMinPointChanged(const QVector3D &implicitMinPoint) |
void | implicitPointsValidChanged(bool implicitPointsValid) |
void | maxPointChanged(QVector3D maxPoint) |
void | minPointChanged(QVector3D minPoint) |
void | viewChanged(Qt3DCore::QGeometryView *view) |
详细描述
实体的边界体积用于许多操作,如选择或视图视锥剔除。它通常通过遍历渲染几何体来计算。
当应用已知几何体的范围时,可以使用QBoundingVolume,这样Qt 3D就不需要计算它。
边界体积可以作为最小和最大范围坐标提供,或提供单独的、通常更简单的几何体,该几何体近似于渲染网格。
当使用最小和最大范围时,它们被认为是轴对齐边界框的对角顶点,在几何体的局部坐标系中。
QBoundingVolume还可以用于查询GeometryView的计算边界体积。如果几何体发生变化,则implicitMinPoint
和implicitMaxPoint
属性将更新。请注意,这是一次在后台线程上异步执行的,因此在读取之前应检查implicitPointsValid的值。
您可以通过调用updateImplicitBounds来强制隐式范围更新。这将阻塞调用线程,直到结果可用。
注意:GeometryRenderer继承自BoundingVolume,因此支持读取隐式边界或设置显式边界。
属性文档
[只读]
implicitMaxPoint : const QVector3D
** 包含从指定视图计算出的边界体积的最大范围。
访问函数
QVector3D | implicitMaxPoint() const |
通知信号
void | implicitMaxPointChanged(const QVector3D &implicitMaxPoint) |
[只读]
implicitMinPoint : const QVector3D
** 包含从指定视图计算出的边界体积的最小范围。
访问函数
QVector3D | implicitMinPoint() const |
通知信号
void | implicitMinPointChanged(const QVector3D &implicitMinPoint) |
[只读]
implicitPointsValid : const bool
** 如果已分配视图且隐式范围属性是最新的,则为true。
访问函数
bool | areImplicitPointsValid() const |
通知信号
void | implicitPointsValidChanged(bool implicitPointsValid) |
另请参阅updateImplicitBounds。
maxPoint : QVector3D
** 用户指定的边界体积最大范围。当设置(与最小范围一起)时,将内部使用以避免从几何体中计算体积。
访问函数
QVector3D | maxPoint() const |
void | setMaxPoint(const QVector3D &maxPoint) |
通知信号
void | maxPointChanged(QVector3D maxPoint) |
minPoint : QVector3D
** 用户指定的边界体积最小范围。当设置(与最大范围一起)时,将内部使用以避免从几何体中计算体积。
访问函数
QVector3D | minPoint() const |
void | setMinPoint(const QVector3D &minPoint) |
通知信号
void | minPointChanged(QVector3D minPoint) |
view : QGeometryView*
存储指向一个用于计算边界体积的QGeometryView实例的指针。
访问函数
Qt3DCore::QGeometryView * | view() const |
void | setView(Qt3DCore::QGeometryView *view) |
通知信号
void | viewChanged(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.及其全球的商标,在其他国家和地区也有商标。所有其他商标均为其各自所有者的财产。