Класс QCustom3DItem
Класс QCustom3DItem добавляет пользовательский элемент в график. Подробнее...
| Заголовок: | #include <QCustom3DItem> |
| С версии: | QtDataVisualization 1.1 |
| Создаётся: | Custom3DItem |
| Наследует: | QObject |
| Наследуется: |
Этот класс был введён в QtDataVisualization 1.1.
Свойства
|
|
Открытые функции
| QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr) | |
| QCustom3DItem(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 |
Сигналы
| 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) |
Подробное описание
Пользовательский элемент имеет пользовательскую сетку, положение, масштабирование, поворот и необязательную текстуру.
См. также QAbstract3DGraph::addCustomItem().
Свойства
meshFile : QString
Это свойство хранит имя файла сетки элемента.
Элемент в файле должен быть в формате Wavefront OBJ и включать вершины, нормали и UV. Он также должен быть в треугольниках.
Функции доступа:
| QString | meshFile() const |
| void | setMeshFile(const QString &meshFile) |
Сигнал уведомления:
| void | meshFileChanged(const QString &meshFile) |
position : QVector3D
Это свойство хранит позицию элемента как QVector3D.
Значение по умолчанию QVector3D(0.0, 0.0, 0.0).
Позиция элемента задается либо в координатах данных, либо в абсолютных координатах, в зависимости от свойства positionAbsolute. При использовании абсолютных координат значения между -1.0...1.0 находятся в пределах диапазонов осей.
Примечание: Элементы, расположенные за пределами любого диапазона осей, не отображаются, если positionAbsolute равно false, за исключением случая, когда элемент является QCustom3DVolume, который частично виден, и scalingAbsolute также равно false. В этом случае будет отображена видимая часть объема.
Функции доступа:
| QVector3D | position() const |
| void | setPosition(const QVector3D &position) |
Сигнал уведомления:
| void | positionChanged(const QVector3D &position) |
См. также positionAbsolute.
positionAbsolute : bool
Это свойство определяет, обрабатывается ли позиция элемента в координатах данных или в абсолютных координатах.
Значение по умолчанию false. Элементы с абсолютными координатами всегда будут отображаться, тогда как элементы с координатами данных отображаются только в том случае, если они находятся в диапазонах осей.
Функции доступа:
| bool | isPositionAbsolute() const |
| void | setPositionAbsolute(bool positionAbsolute) |
Сигнал уведомления:
| void | positionAbsoluteChanged(bool positionAbsolute) |
См. также position.
rotation : QQuaternion
Это свойство хранит поворот элемента как QQuaternion.
Значение по умолчанию QQuaternion(0.0, 0.0, 0.0, 0.0).
Функции доступа:
| QQuaternion | rotation() |
| void | setRotation(const QQuaternion &rotation) |
Сигнал уведомления:
| void | rotationChanged(const QQuaternion &rotation) |
scaling : QVector3D
Это свойство хранит масштабирование элемента как QVector3D.
Значение по умолчанию QVector3D(0.1, 0.1, 0.1).
Масштабирование элемента осуществляется либо в значениях данных, либо в абсолютных значениях, в зависимости от свойства scalingAbsolute. Вектор по умолчанию, интерпретируемый как абсолютные значения, устанавливает элемент на 10% высоты графика, при условии, что сетка элемента нормализована, и соотношения сторон графика не были изменены по сравнению с значениями по умолчанию.
Функции доступа:
| QVector3D | scaling() const |
| void | setScaling(const QVector3D &scaling) |
Сигнал уведомления:
| void | scalingChanged(const QVector3D &scaling) |
См. также scalingAbsolute.
scalingAbsolute : bool
Это свойство определяет, обрабатывается ли масштабирование элемента в значениях данных или в абсолютных значениях.
Значение по умолчанию true.
Элементы с абсолютным масштабированием будут отображаться с одинаковым размером независимо от диапазонов осей. Элементы с масштабированием данных будут изменять свой видимый размер в соответствии с диапазонами осей. Если positionAbsolute равно true, это свойство игнорируется, и масштабирование интерпретируется как абсолютное значение. Если элемент имеет поворот, масштабирование данных вычисляется для не повернутого элемента. Аналогично, для элементов QCustom3DVolume обрезка диапазона вычисляется для не повернутого элемента.
Примечание: Для элементов QCustom3DLabel или пользовательских элементов, используемых в графиках polar, поддерживается только абсолютное масштабирование.
Примечание: Сетка пользовательского элемента должна быть нормализована до диапазона [-1 ,1], иначе масштабирование данных будет неточным.
Это свойство было введено в QtDataVisualization 1.2.
Функции доступа:
| bool | isScalingAbsolute() const |
| void | setScalingAbsolute(bool scalingAbsolute) |
Сигнал уведомления:
| void | scalingAbsoluteChanged(bool scalingAbsolute) |
См. также scaling и positionAbsolute.
shadowCasting : bool
Это свойство определяет, включено ли отбрасывание теней для элемента.
Значение по умолчанию true. Если false, элемент не отбрасывает тени независимо от QAbstract3DGraph::ShadowQuality.
Функции доступа:
| bool | isShadowCasting() const |
| void | setShadowCasting(bool enabled) |
Сигнал уведомления:
| void | shadowCastingChanged(bool shadowCasting) |
textureFile : QString
Это свойство хранит имя файла текстуры для элемента.
Если это свойство и изображение текстуры не установлены, будет использоваться сплошная серая текстура.
Примечание: Для экономии памяти QImage, загруженное из файла, очищается после создания текстуры.
Функции доступа:
| QString | textureFile() const |
| void | setTextureFile(const QString &textureFile) |
Сигнал уведомления:
| void | textureFileChanged(const QString &textureFile) |
visible : bool
Это свойство определяет видимость элемента.
Значение по умолчанию true.
Функции доступа:
| bool | isVisible() const |
| void | setVisible(bool visible) |
Сигнал уведомления:
| void | visibleChanged(bool visible) |
Описание функций-членов
QCustom3DItem::QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)
Создаёт элемент 3D-объекта с заданным meshFile, position, scaling, rotation, изображением texture и необязательным parent.
QCustom3DItem::QCustom3DItem(QObject *parent = nullptr)
Создаёт элемент 3D-объекта с заданным parent.
[virtual] QCustom3DItem::~QCustom3DItem()
Удаляет элемент 3D-объекта.
void QCustom3DItem::setRotationAxisAndAngle(const QVector3D &axis, float angle)
Вспомогательная функция для построения кватерниона вращения из axis и angle.
Примечание: Эту функцию можно вызвать через механизм метаобъектов и из QML. См. Q_INVOKABLE.
См. также rotation.
void QCustom3DItem::setTextureImage(const QImage &textureImage)
Устанавливает значение textureImage в качестве QImage для элемента. По умолчанию текстура имеет серый цвет.
Примечание: Для экономии памяти предоставленная QImage очищается после создания текстуры.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qcustom3ditem.html