Класс QCustom3DItem
Класс QCustom3DItem добавляет пользовательский элемент на график. Подробнее...
| Заголовок: | #include <QCustom3DItem> |
| С момента: | QtDataVisualization 1.1 |
| Инициализируется: | Custom3DItem |
| Наследуется от: | QObject |
| Наследует: |
Свойства
|
|
Открытые функции
| 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.
[since QtDataVisualization 1.2] 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 модели.
[invokable] 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-6.1/qcustom3ditem.html