QCustom3DItem Class
La clase QCustom3DItem añade un elemento personalizado a un gráfico. Más...
| Cabecera: | #include <QCustom3DItem> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS DataVisualization)target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
| qmake: | QT += datavisualization |
| Desde: | QtDataVisualization 1.1 |
| En QML: | Custom3DItem |
| Hereda de: | QObject |
| Heredado de: |
Propiedades
|
|
Funciones públicas
| 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() |
| bool | isPositionAbsolute() const |
| bool | isScalingAbsolute() const |
| bool | isShadowCasting() const |
| bool | isVisible() const |
| QString | meshFile() const |
| QVector3D | position() const |
| QQuaternion | rotation() |
| QVector3D | scaling() const |
| void | setMeshFile(const QString &meshFile) |
| void | setPosition(const QVector3D &position) |
| void | setPositionAbsolute(bool positionAbsolute) |
| void | setRotation(const QQuaternion &rotation) |
| void | setRotationAxisAndAngle(const QVector3D &axis, float angle) |
| void | setScaling(const QVector3D &scaling) |
| void | setScalingAbsolute(bool scalingAbsolute) |
| void | setShadowCasting(bool enabled) |
| void | setTextureFile(const QString &textureFile) |
| void | setTextureImage(const QImage &textureImage) |
| void | setVisible(bool visible) |
| QString | textureFile() const |
Señales
| void | meshFileChanged(const QString &meshFile) |
| void | positionAbsoluteChanged(bool positionAbsolute) |
| void | positionChanged(const QVector3D &position) |
| void | rotationChanged(const QQuaternion &rotation) |
| void | scalingAbsoluteChanged(bool scalingAbsolute) |
| void | scalingChanged(const QVector3D &scaling) |
| void | shadowCastingChanged(bool shadowCasting) |
| void | textureFileChanged(const QString &textureFile) |
| void | visibleChanged(bool visible) |
Descripción detallada
Un elemento personalizado tiene una malla personalizada, posición, escalado, rotación y una textura opcional.
Véase también QAbstract3DGraph::addCustomItem().
Documentación de propiedades
meshFile : QString
Esta propiedad contiene el nombre del archivo de malla del elemento.
El elemento en el archivo debe estar en formato Wavefront OBJ e incluir vértices, normales y UVs. También debe estar en triángulos. Si al archivo le faltan normales o UVs, la carga fallará con un mensaje de error en la salida de la consola y el ítem no será renderizado.
Funciones de acceso:
| QString | meshFile() const |
| void | setMeshFile(const QString &meshFile) |
Notificador de señal:
| void | meshFileChanged(const QString &meshFile) |
position : QVector3D
Esta propiedad contiene la posición del elemento como QVector3D.
Por defecto es QVector3D(0.0, 0.0, 0.0).
La posición del elemento se especifica en coordenadas de datos o en coordenadas absolutas, dependiendo de la propiedad positionAbsolute. Cuando se utilizan coordenadas absolutas, los valores entre -1.0...1.0 están dentro de los rangos de los ejes.
Nota: Los elementos posicionados fuera de cualquier rango de ejes no se renderizan si positionAbsolute es false, a menos que el elemento sea un QCustom3DVolume que sería parcialmente visible y scalingAbsolute sea también false. En ese caso, se representará la parte visible del volumen.
Funciones de acceso:
| QVector3D | position() const |
| void | setPosition(const QVector3D &position) |
Señal del notificador:
| void | positionChanged(const QVector3D &position) |
Véase también positionAbsolute.
positionAbsolute : bool
Esta propiedad indica si la posición del elemento debe ser manejada en coordenadas de datos o en coordenadas absolutas.
Por defecto es false. Los ítems con coordenadas absolutas siempre se renderizarán, mientras que los ítems con coordenadas de datos sólo se renderizarán si están dentro de los rangos de los ejes.
Funciones de acceso:
| bool | isPositionAbsolute() const |
| void | setPositionAbsolute(bool positionAbsolute) |
Señal del notificador:
| void | positionAbsoluteChanged(bool positionAbsolute) |
Véase también position.
rotation : QQuaternion
Esta propiedad contiene la rotación del elemento como QQuaternion.
Por defecto es QQuaternion(0.0, 0.0, 0.0, 0.0).
Funciones de acceso:
| QQuaternion | rotation() |
| void | setRotation(const QQuaternion &rotation) |
Señal del notificador:
| void | rotationChanged(const QQuaternion &rotation) |
scaling : QVector3D
Esta propiedad contiene la escala del elemento como QVector3D.
Por defecto es QVector3D(0.1, 0.1, 0.1).
El escalado del elemento se realiza en valores de datos o en valores absolutos, dependiendo de la propiedad scalingAbsolute. El vector por defecto interpretado como valores absolutos establece el elemento al 10% de la altura del gráfico, siempre que la malla del elemento esté normalizada y las relaciones de aspecto del gráfico no se hayan modificado respecto a los valores por defecto.
Funciones de acceso:
| QVector3D | scaling() const |
| void | setScaling(const QVector3D &scaling) |
Señal del notificador:
| void | scalingChanged(const QVector3D &scaling) |
Véase también scalingAbsolute.
[since QtDataVisualization 1.2] scalingAbsolute : bool
Esta propiedad indica si la escala de los elementos debe manejarse en valores de datos o en valores absolutos.
Por defecto es true.
Los elementos con escalado absoluto se mostrarán con el mismo tamaño, independientemente de los rangos de los ejes. Los elementos con escalado de datos cambiarán su tamaño aparente según los rangos de los ejes. Si positionAbsolute es true, esta propiedad se ignora y la escala se interpreta como un valor absoluto. Si el elemento tiene rotación, el escalado de datos se calcula sobre el elemento no rotado. Del mismo modo, para los elementos QCustom3DVolume, el recorte de rango se calcula sobre el elemento no rotado.
Nota: Sólo se admite el escalado absoluto para los elementos QCustom3DLabel o para los elementos personalizados utilizados en los gráficos polar.
Nota: La malla del elemento personalizado debe estar normalizada al rango [-1 ,1], o el escalado de datos no será preciso.
Esta propiedad se introdujo en QtDataVisualization 1.2.
Funciones de acceso:
| bool | isScalingAbsolute() const |
| void | setScalingAbsolute(bool scalingAbsolute) |
Señal de notificador:
| void | scalingAbsoluteChanged(bool scalingAbsolute) |
Véase también scaling y positionAbsolute.
shadowCasting : bool
Esta propiedad indica si el elemento está habilitado para proyectar sombras.
Por defecto es true. Si false, el elemento no proyecta sombras independientemente de QAbstract3DGraph::ShadowQuality.
Funciones de acceso:
| bool | isShadowCasting() const |
| void | setShadowCasting(bool enabled) |
Señal del notificador:
| void | shadowCastingChanged(bool shadowCasting) |
textureFile : QString
Esta propiedad contiene el nombre del archivo de textura del elemento.
Si tanto esta propiedad como la imagen de la textura están desactivadas, se utilizará una textura gris sólida.
Nota: Para ahorrar memoria, la dirección QImage cargada desde el archivo se borra después de crear una textura.
Funciones de acceso:
| QString | textureFile() const |
| void | setTextureFile(const QString &textureFile) |
Señal del notificador:
| void | textureFileChanged(const QString &textureFile) |
visible : bool
Esta propiedad contiene la visibilidad del elemento.
Por defecto es true.
Funciones de acceso:
| bool | isVisible() const |
| void | setVisible(bool visible) |
Señal del notificador:
| void | visibleChanged(bool visible) |
Documentación de la función miembro
[explicit] QCustom3DItem::QCustom3DItem(QObject *parent = nullptr)
Construye un elemento 3D personalizado con la dirección parent especificada.
[explicit] QCustom3DItem::QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)
Construye un elemento 3D personalizado con la imagen especificada meshFile, position, scaling, rotation, texture y parent opcional.
[virtual noexcept] QCustom3DItem::~QCustom3DItem()
Elimina el elemento 3D personalizado.
[invokable] void QCustom3DItem::setRotationAxisAndAngle(const QVector3D &axis, float angle)
Una función de conveniencia para construir el cuaternión de rotación a partir de axis y angle.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
Véase también rotation.
void QCustom3DItem::setTextureImage(const QImage &textureImage)
Establece el valor de textureImage como QImage para el elemento. La textura por defecto es gris sólido.
Nota: Para conservar memoria, el QImage dado se borra después de crear una textura.
© 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.