QCustom3DItem 类

QCustom3DItem 类向图形中添加自定义项。 更多...

头文件 #include <QCustom3DItem>
CMakefind_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmakeQT += graphs
由以下类实例化 Custom3DItem
继承自 QObject
由以下类继承

QCustom3DLabelQCustom3DVolume

状态技术预览

属性

公共函数

QCustom3DItem(QObject *parent = nullptr)
QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)
virtual~QCustom3DItem() override
boolisPositionAbsolute() const
boolisScalingAbsolute() const
boolisShadowCasting() const
boolisVisible() const
QStringmeshFile() const
QVector3Dposition() const
QQuaternionrotation()
QVector3Dscaling() const
voidsetMeshFile(const QString &meshFile)
voidsetPosition(const QVector3D &position)
voidsetPositionAbsolute(bool positionAbsolute)
voidsetRotation(const QQuaternion &rotation)
voidsetRotationAxisAndAngle(const QVector3D &axis, float angle)
voidsetScaling(const QVector3D &scaling)
voidsetScalingAbsolute(bool scalingAbsolute)
voidsetShadowCasting(bool enabled)
voidsetTextureFile(const QString &textureFile)
voidsetTextureImage(const QImage &textureImage)
voidsetVisible(bool visible)
QStringtextureFile() const

信号

voidmeshFileChanged(const QString &meshFile)
voidpositionAbsoluteChanged(bool positionAbsolute)
voidpositionChanged(const QVector3D &position)
voidrotationChanged(const QQuaternion &rotation)
voidscalingAbsoluteChanged(bool scalingAbsolute)
voidscalingChanged(const QVector3D &scaling)
voidshadowCastingChanged(bool shadowCasting)
voidtextureFileChanged(const QString &textureFile)
voidvisibleChanged(bool visible)

详细信息

自定义项目具有自定义网格、位置、缩放、旋转和可选纹理。

另请参阅QAbstract3DGraph::addCustomItem

属性文档

meshFile : QString

此属性包含项目网格文件名。

文件中的项目必须使用网格格式。其他类型可以通过Balsam资产导入工具进行转换。建议网格文件包含顶点、法和UV。

访问函数

QStringmeshFile() const
voidsetMeshFile(const QString &meshFile)

通知信号

voidmeshFileChanged(const QString &meshFile)

position : QVector3D

此属性以QVector3D的形式保存项目位置。

默认值为QVector3D(0.0, 0.0, 0.0)

项目位置可以是数据坐标或绝对坐标,具体取决于positionAbsolute属性。使用绝对坐标时,-1.0...1.0之间的值位于轴范围之内。

注意:如果positionAbsolutefalse,则位于轴范围之外的项目将不会渲染,除非项目是一个将部分可见的QCustom3DVolume,并且scalingAbsolute也为false。在这种情况下,将渲染可见的体积部分。

访问函数

QVector3Dposition() const
voidsetPosition(const QVector3D &position)

通知信号

voidpositionChanged(const QVector3D &position)

另请参阅positionAbsolute

positionAbsolute : bool

此属性表示是否以数据坐标或绝对坐标处理项目位置。

默认值为false。具有绝对坐标的项目将始终渲染,而使用数据坐标的项目只有在它们位于轴范围内时才渲染。

访问函数

boolisPositionAbsolute() const
voidsetPositionAbsolute(bool positionAbsolute)

通知信号

voidpositionAbsoluteChanged(bool positionAbsolute)

另请参阅position.

rotation : QQuaternion

此属性包含作为QQuaternion的项旋转。

默认为QQuaternion(0.0, 0.0, 0.0, 0.0)

访问函数

QQuaternionrotation()
voidsetRotation(const QQuaternion &rotation)

通知信号

voidrotationChanged(const QQuaternion &rotation)

scaling : QVector3D

此属性包含作为QVector3D的项缩放。

默认为QVector3D(0.1, 0.1, 0.1)

项缩放可能是数据值或绝对值,具体取决于scalingAbsolute属性。默认向量解释为绝对值将项设置为图表高度的10%,前提是项网格已被归一化,且图表纵横比未从默认值更改。

访问函数

QVector3Dscaling() const
voidsetScaling(const QVector3D &scaling)

通知信号

voidscalingChanged(const QVector3D &scaling)

另请参阅scalingAbsolute.

scalingAbsolute : bool

此属性包含项缩放是否处理为数据值或绝对值。

默认为true

具有绝对缩放的项将以相同大小渲染,无论轴范围如何。具有数据缩放的项将根据轴范围更改其可见大小。如果positionAbsolutetrue,则忽略此属性,并将缩放解释为绝对值。如果项具有旋转,则数据缩放将在未旋转的项上进行计算。类似地,对于QCustom3DVolume项,范围裁剪将在未旋转的项上进行计算。

注意:仅支持QCustom3DLabel项或用于polar图表的自定义项的绝对缩放。

注意:自定义项目的网格必须规范化到范围[-1 ,1],否则数据缩放将不准确。

访问函数

boolisScalingAbsolute() const
voidsetScalingAbsolute(bool scalingAbsolute)

通知信号

voidscalingAbsoluteChanged(bool scalingAbsolute)

另请参阅scalingpositionAbsolute.

shadowCasting : bool

此属性包含是否启用项的阴影投射。

默认为true。如果为false,则无论QAbstract3DGraph::ShadowQuality如何,项都不会投射阴影。

访问函数

boolisShadowCasting() const
voidsetShadowCasting(bool enabled)

通知信号

voidshadowCastingChanged(bool shadowCasting)

textureFile : QString

此属性包含项的纹理文件名。

如果此属性和纹理图像都未设置,则将使用纯灰色纹理。

注意:为了节省内存,从文件加载的QImage在创建纹理后将清除。

访问函数

QStringtextureFile() const
voidsetTextureFile(const QString &textureFile)

通知信号

voidtextureFileChanged(const QString &textureFile)

visible : bool

此属性持有项目的可见性。

默认为true

访问函数

boolisVisible() const
voidsetVisible(bool visible)

通知信号

voidvisibleChanged(bool visible)

成员函数文档

[显式] QCustom3DItem::QCustom3DItem(QObject *parent = nullptr)

使用指定的parent构造一个自定义3D项目。

[显式] QCustom3DItem::QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)

使用指定的meshFilepositionscalingrotationtexture图像和可选的parent构造一个自定义3D项目。

[覆盖虚函数 noexcept] QCustom3DItem::~QCustom3DItem()

删除自定义3D项目。

[可调用] void QCustom3DItem::setRotationAxisAndAngle(const QVector3D &axis, float angle)

axisangle构建旋转四元数的方便函数。

注意:此函数可以通过元对象系统从QML调用。请参阅Q_INVOKABLE

另请参阅rotation

void QCustom3DItem::setTextureImage(const QImage &textureImage)

textureImage的值设置为项目的QImage。纹理默认为纯灰色。

注意:为了节省内存,在创建纹理后,给定的QImage将被清除。

© 2024 Qt公司有限。包含在此的文档贡献的版权属于各自的拥有者。本文件内提供的文档受GNU自由文档许可第1.3版的条款约束,由自由软件基金会出版。Qt及其相关标志是芬兰的Qt公司及其在全世界各地的商标。所有其他商标均是其各自所有者的财产。