Класс Q3DScene
Класс Q3DScene предоставляет описание 3D сцены, подлежащей визуализации. Подробнее...
| Заголовок: | #include <Q3DScene> |
| С момента: | QtDataVisualization 1.0 |
| Инициализируется: | Scene3D |
| Наследует: | QObject |
Этот класс был представлен в QtDataVisualization 1.0.
Свойства
|
|
Открытые функции
| 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) |
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-5.15/q3dscene.html