Класс Q3DScene
Класс Q3DScene предоставляет описание 3D сцены, которая визуализируется. Подробнее...
| Заголовок: | #include <Q3DScene> |
| С момента: | QtDataVisualization 1.0 |
| Инициализируется: | Scene3D |
| Наследует: | QObject |
Свойства
|
|
Открытые функции
| Q3DScene(QObject *parent = nullptr) | |
| virtual | ~Q3DScene() |
| Q3DCamera * | activeCamera() const |
| Q3DLight * | activeLight() const |
| float | devicePixelRatio() const |
| QPoint | graphPositionQuery() const |
| bool | isPointInPrimarySubView(const QPoint &point) |
| bool | isPointInSecondarySubView(const QPoint &point) |
| bool | isSecondarySubviewOnTop() const |
| bool | isSlicingActive() const |
| QRect | primarySubViewport() const |
| QRect | secondarySubViewport() const |
| QPoint | selectionQueryPosition() const |
| void | setActiveCamera(Q3DCamera *camera) |
| void | setActiveLight(Q3DLight *light) |
| void | setDevicePixelRatio(float pixelRatio) |
| void | setGraphPositionQuery(const QPoint &point) |
| void | setPrimarySubViewport(const QRect &primarySubViewport) |
| void | setSecondarySubViewport(const QRect &secondarySubViewport) |
| void | setSecondarySubviewOnTop(bool isSecondaryOnTop) |
| void | setSelectionQueryPosition(const QPoint &point) |
| void | setSlicingActive(bool isSlicing) |
| QRect | viewport() const |
Сигналы
| void | activeCameraChanged(Q3DCamera *camera) |
| void | activeLightChanged(Q3DLight *light) |
| void | devicePixelRatioChanged(float pixelRatio) |
| void | graphPositionQueryChanged(const QPoint &position) |
| void | primarySubViewportChanged(const QRect &subViewport) |
| void | secondarySubViewportChanged(const QRect &subViewport) |
| void | secondarySubviewOnTopChanged(bool isSecondaryOnTop) |
| void | selectionQueryPositionChanged(const QPoint &position) |
| void | slicingActiveChanged(bool isSlicingActive) |
| void | viewportChanged(const QRect &viewport) |
Статические публичные члены
| QPoint | invalidSelectionPoint() |
Подробное описание
3D сцена содержит одну активную камеру и один активный источник света. Предполагается, что визуализируемые данные находятся в фиксированном месте.
3D сцена также отслеживает область просмотра, в которой выполняется визуализация, основную область просмотра внутри области просмотра, где отображается основной 3D-вид данных, и вторичную область просмотра, где отображается 2D-вид данных, разрезанных по срезам. Области просмотра по умолчанию перенастраиваются классом Q3DScene. Чтобы переопределить поведение изменения размеров, необходимо прослушивать сигналы viewportChanged() и slicingActiveChanged() и пересчитывать области просмотра соответственно.
Также сцена содержит флаг, отслеживающий, активен ли вторичный 2D-вид разреза в данный момент.
Примечание: Не все визуализации поддерживают вторичный 2D-вид разреза.
Свойства
activeCamera : Q3DCamera*
Это свойство содержит текущую активную камеру на 3D-сцене.
Когда устанавливается новый объект Q3DCamera, он автоматически добавляется как дочерний элемент сцены.
Функции доступа:
| Q3DCamera * | activeCamera() const |
| void | setActiveCamera(Q3DCamera *camera) |
Сигнал уведомления:
| void | activeCameraChanged(Q3DCamera *camera) |
activeLight : Q3DLight*
Это свойство содержит текущий активный источник света на 3D-сцене.
Когда устанавливается новый объект Q3DLight, он автоматически добавляется как дочерний элемент сцены.
Функции доступа:
| Q3DLight * | activeLight() const |
| void | setActiveLight(Q3DLight *light) |
Сигнал уведомления:
| void | activeLightChanged(Q3DLight *light) |
devicePixelRatio : float
Это свойство содержит коэффициент пикселей устройства, который используется при сопоставлении координат ввода с пиксельными координатами.
Функции доступа:
| float | devicePixelRatio() const |
| void | setDevicePixelRatio(float pixelRatio) |
Сигнал уведомления:
| void | devicePixelRatioChanged(float pixelRatio) |
graphPositionQuery : QPoint
Это свойство содержит координаты для пользовательского ввода, которые должны обрабатываться сценой как запрос позиции графика.
Если это свойство установлено в значение, отличное от invalidSelectionPoint(), график пытается сопоставить позицию графика с указанными координатами в пределах основного окна просмотра. После прохода рендеринга это свойство возвращается в свое состояние по умолчанию invalidSelectionPoint(). Запрошенную позицию графика можно прочитать из свойства QAbstract3DGraph::queriedGraphPosition после следующего прохода рендеринга.
Не существует единственно правильной 3D-координаты для сопоставления определенной позиции на экране, поэтому для обеспечения согласованности запросы всегда выполняются относительно внутренних сторон невидимого прямоугольника, окружающего график.
Примечание: Столбчатые диаграммы допускают запросы позиции графика только на уровне основания графика.
Функции доступа:
| QPoint | graphPositionQuery() const |
| void | setGraphPositionQuery(const QPoint &point) |
Сигнал уведомления:
| void | graphPositionQueryChanged(const QPoint &position) |
См. также QAbstract3DGraph::queriedGraphPosition.
primarySubViewport : QRect
Это свойство содержит текущий прямоугольник подпросмотра внутри окна просмотра, куда направлен основной вид визуализации данных.
Если isSlicingActive() равно false, основной подпросмотр равен viewport(). Если isSlicingActive() равно true и основной подпросмотр не был явно установлен, он будет составлять одну пятую от viewport().
Примечание: Установка primarySubViewport большего размера или за пределами окна просмотра приводит к соответствующему изменению размера окна просмотра.
Функции доступа:
| QRect | primarySubViewport() const |
| void | setPrimarySubViewport(const QRect &primarySubViewport) |
Сигнал уведомления:
| void | primarySubViewportChanged(const QRect &subViewport) |
secondarySubViewport : QRect
Это свойство содержит вторичный прямоугольник окна просмотра внутри окна просмотра.
Вторичное окно просмотра используется для отрисовки 2D-срезов в некоторых визуализациях. Если оно не было явно установлено, оно будет равно QRect. Если isSlicingActive() равно true, оно будет равно viewport.
Примечание: Если вторичный подпросмотр больше или находится за пределами окна просмотра, размер окна просмотра изменяется соответствующим образом.
Функции доступа:
| QRect | secondarySubViewport() const |
| void | setSecondarySubViewport(const QRect &secondarySubViewport) |
Сигнал уведомления:
| void | secondarySubViewportChanged(const QRect &subViewport) |
secondarySubviewOnTop : bool
Это свойство определяет, какой вид отображается сверху: 2D-срез или 3D-вид.
Функции доступа:
| bool | isSecondarySubviewOnTop() const |
| void | setSecondarySubviewOnTop(bool isSecondaryOnTop) |
Сигнал уведомления:
| void | secondarySubviewOnTopChanged(bool isSecondaryOnTop) |
selectionQueryPosition : QPoint
Это свойство содержит координаты пользовательского ввода, которые должны обрабатываться сценой как выбор.
Если это свойство установлено в значение, отличное от invalidSelectionPoint(), график пытается выбрать элемент данных, метку оси или пользовательский элемент по указанным координатам в пределах основного окна просмотра. После прохода рендеринга свойство возвращается в свое состояние по умолчанию invalidSelectionPoint().
Функции доступа:
| QPoint | selectionQueryPosition() const |
| void | setSelectionQueryPosition(const QPoint &point) |
Сигнал уведомления:
| void | selectionQueryPositionChanged(const QPoint &position) |
См. также QAbstract3DGraph::selectedElement.
slicingActive : bool
Это свойство определяет, активен ли в данный момент 2D-срез.
Если true, QAbstract3DGraph::selectionMode должен иметь либо QAbstract3DGraph::SelectionRow, либо QAbstract3DGraph::SelectionColumn, установленное в допустимый выбор.
Примечание: Не все визуализации поддерживают 2D-срезы.
Функции доступа:
| bool | isSlicingActive() const |
| void | setSlicingActive(bool isSlicing) |
Сигнал уведомления:
| void | slicingActiveChanged(bool isSlicingActive) |
[read-only] viewport : const QRect
Это свойство содержит прямоугольник области просмотра, в которой отображается всё 3D-отображение.
Функции доступа:
| QRect | viewport() const |
Сигнал уведомления:
| void | viewportChanged(const QRect &viewport) |
Документация по членам-функциям
Q3DScene::Q3DScene(QObject *parent = nullptr)
Создаёт базовую сцену с одним источником света и одной камерой. Дополнительный параметр parent передаётся конструктору QObject.
[virtual] Q3DScene::~Q3DScene()
Уничтожает 3D-сцену и все объекты, содержащиеся в ней.
[static] QPoint Q3DScene::invalidSelectionPoint()
Возвращает QPoint, обозначающую недопустимую позицию выделения.
bool Q3DScene::isPointInPrimarySubView(const QPoint &point)
Возвращает значение, указывающее, находится ли заданная точка point внутри основной области просмотра. Возвращает true если точка находится внутри основной области просмотра.
Примечание: Если области просмотра перекрываются, и заданная точка point находится внутри обеих, результат является true только в том случае, если основная область просмотра расположена поверх остальных.
bool Q3DScene::isPointInSecondarySubView(const QPoint &point)
Возвращает значение, указывающее, находится ли заданная точка point внутри вторичной области просмотра. Возвращает true если точка находится внутри вторичной области просмотра.
Примечание: Если области просмотра перекрываются, и заданная точка point находится внутри обеих, результат является true только в том случае, если вторичная область просмотра расположена поверх остальных.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/q3dscene.html