Класс QCamera
class Qt3DRender::QCameraКласс QCamera определяет точку обзора, через которую будет рендериться сцена. Подробнее...
| Заголовок: | #include <Qt3DRender/QCamera> |
| CMake: | find_package(Qt6 COMPONENTS 3drender REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| С версии: | Qt 5.5 |
| Создаётся из: | Camera |
| Наследуется от: | Qt3DCore::QEntity |
Открытые типы
| Перечисление | CameraTranslationOption { TranslateViewCenter, DontTranslateViewCenter } |
Свойства
|
|
Открытые функции
| QCamera(Qt3DCore::QNode *parent = nullptr) | |
| float | aspectRatio() const |
| float | bottom() const |
| float | exposure() const |
| float | farPlane() const |
| float | fieldOfView() const |
| float | left() const |
| Qt3DRender::QCameraLens * | lens() const |
| float | nearPlane() const |
| void | pan(float angle) |
Открытые слоты
| void | setAspectRatio(float aspectRatio) |
| void | setBottom(float bottom) |
| void | setExposure(float exposure) |
| void | setFarPlane(float farPlane) |
| void | setFieldOfView(float fieldOfView) |
| void | setLeft(float left) |
| void | setNearPlane(float nearPlane) |
| void | setPosition(const QVector3D &position) |
| void | setProjectionMatrix(const QMatrix4x4 &projectionMatrix) |
| void | setProjectionType(QCameraLens::ProjectionType type) |
| void | setRight(float right) |
| void | setTop(float top) |
| void | setUpVector(const QVector3D &upVector) |
| void | setViewCenter(const QVector3D &viewCenter) |
| void | viewAll() |
| void | viewEntity(Qt3DCore::QEntity *entity) |
| void | viewSphere(const QVector3D ¢er, float radius) |
Сигналы
| void | aspectRatioChanged(float aspectRatio) |
| void | bottomChanged(float bottom) |
| void | exposureChanged(float exposure) |
| void | farPlaneChanged(float farPlane) |
| void | fieldOfViewChanged(float fieldOfView) |
| void | leftChanged(float left) |
| void | nearPlaneChanged(float nearPlane) |
| void | positionChanged(const QVector3D &position) |
| void | projectionMatrixChanged(const QMatrix4x4 &projectionMatrix) |
| void | projectionTypeChanged(QCameraLens::ProjectionType projectionType) |
| void | rightChanged(float right) |
| void | topChanged(float top) |
| void | upVectorChanged(const QVector3D &upVector) |
| void | viewCenterChanged(const QVector3D &viewCenter) |
| void | viewVectorChanged(const QVector3D &viewVector) |
Подробное описание
Документация по типам членов
перечисление QCamera::CameraTranslationOption
Это перечисление определяет, как переводится центральная точка обзора камеры
| Постоянная | Значение | Описание |
|---|---|---|
Qt3DRender::QCamera::TranslateViewCenter |
0 |
Переместить центральную точку обзора, сохраняя при этом направление обзора неизменным |
Qt3DRender::QCamera::DontTranslateViewCenter |
1 |
Не перемещать центральную точку обзора, что приведет к изменению направления обзора |
Документация свойств
aspectRatio : float
Содержит текущее соотношение сторон.
Функции доступа:
| float | aspectRatio() const |
| void | setAspectRatio(float aspectRatio) |
Сигнал уведомления:
| void | aspectRatioChanged(float aspectRatio) |
bottom : float
Содержит текущее значение нижней границы камеры.
Это свойство актуально только при projectionType равном QCameraLens::OrthographicProjection.
Функции доступа:
| float | bottom() const |
| void | setBottom(float bottom) |
Сигнал уведомления:
| void | bottomChanged(float bottom) |
exposure : float
Содержит текущее значение экспозиции камеры.
Значение по умолчанию равно 0.0.
В настоящее время MetalRoughMaterial в Qt 3D Extras — единственный предоставленный материал, использующий экспозицию камеры. Отрицательные значения сделают материал темнее, а положительные — светлее.
Пользовательские материалы могут интерпретировать это значение иначе.
Функции доступа:
| float | exposure() const |
| void | setExposure(float exposure) |
Сигнал уведомления:
| void | exposureChanged(float exposure) |
farPlane : float
Содержит текущую дальнюю плоскость камеры. Объекты, находящиеся дальше от камеры, чем farPlane, не будут отображаться.
Функции доступа:
| float | farPlane() const |
| void | setFarPlane(float farPlane) |
Сигнал уведомления:
| void | farPlaneChanged(float farPlane) |
fieldOfView : float
Содержит текущий вертикальный угол обзора в градусах.
Вместе со свойством aspectRatio это свойство определяет, какая часть сцены видна камере. В этом смысле его можно сравнить с выбором широкоугольного (широкий горизонтальный угол обзора) или телеобъектива (узкий горизонтальный угол обзора) в зависимости от того, какую часть сцены вы хотите запечатлеть.
fieldOfView актуально только при projectionType равном QCameraLens::PerspectiveProjection.
Функции доступа:
| float | fieldOfView() const |
| void | setFieldOfView(float fieldOfView) |
Сигнал уведомления:
| void | fieldOfViewChanged(float fieldOfView) |
left : float
Содержит текущее значение левой границы камеры.
Это свойство актуально только при projectionType равном QCameraLens::OrthographicProjection.
Функции доступа:
| float | left() const |
| void | setLeft(float left) |
Сигнал уведомления:
| void | leftChanged(float left) |
[read-only, since 5.14] lens : Qt3DRender::QCameraLens* const
Содержит компонент Qt3DRender::QCameraLens камеры.
Это свойство было добавлено в Qt 5.14.
Функции доступа:
| Qt3DRender::QCameraLens * | lens() const |
nearPlane : float
Содержит текущую ближнюю плоскость камеры. Объекты, находящиеся ближе к камере, чем nearPlane, не будут отображаться.
Функции доступа:
| float | nearPlane() const |
| void | setNearPlane(float nearPlane) |
Сигнал уведомления:
| void | nearPlaneChanged(float nearPlane) |
position : QVector3D
Содержит положение камеры в координатах, относительных к родительскому элементу.
Функции доступа:
| QVector3D | position() const |
| void | setPosition(const QVector3D &position) |
Сигнал уведомления:
| void | positionChanged(const QVector3D &position) |
projectionMatrix : QMatrix4x4
Содержит текущую проекционную матрицу камеры.
Функции доступа:
| QMatrix4x4 | projectionMatrix() const |
| void | setProjectionMatrix(const QMatrix4x4 &projectionMatrix) |
Сигнал уведомления:
| void | projectionMatrixChanged(const QMatrix4x4 &projectionMatrix) |
projectionType : Qt3DRender::QCameraLens::ProjectionType
Содержит тип проекции камеры. Значение по умолчанию — QCameraLens::PerspectiveProjection.
- QCameraLens::OrthographicProjection — Параллельные линии остаются параллельными. Объекты имеют одинаковый размер независимо от расстояния.
- QCameraLens::PerspectiveProjection — Параллельные линии кажутся сходящимися вдали. Объекты кажутся уменьшающимися по мере удаления от камеры.
- QCameraLens::FrustumProjection
- QCameraLens::CustomProjection
Функции доступа:
| QCameraLens::ProjectionType | projectionType() const |
| void | setProjectionType(QCameraLens::ProjectionType type) |
Сигнал уведомления:
| void | projectionTypeChanged(QCameraLens::ProjectionType projectionType) |
См. такжеQt3DRender::QCameraLens::ProjectionType.
right : float
Содержит текущее правое значение камеры.
Это свойство актуально только при projectionType = QCameraLens::OrthographicProjection.
Функции доступа:
| float | right() const |
| void | setRight(float right) |
Сигнал уведомления:
| void | rightChanged(float right) |
top : float
Содержит текущее верхнее значение камеры.
Это свойство актуально только при projectionType = QCameraLens::OrthographicProjection.
Функции доступа:
| float | top() const |
| void | setTop(float top) |
Сигнал уведомления:
| void | topChanged(float top) |
[read-only, since 5.14] transform : Qt3DCore::QTransform* const
Содержит компонент Qt3DCore::QTransform камеры.
Это свойство было добавлено в Qt 5.14.
Функции доступа:
| Qt3DCore::QTransform * | transform() const |
upVector : QVector3D
Содержит вектор «вверх» камеры в координатах, относительных к родительскому элементу.
Вектор «вверх» указывает направление верхней части камеры. Представьте, что вы делаете фотографию: после позиционирования и наведения камеры на цель, вы можете повернуть камеру влево или вправо, получив портретную или ландшафтную (или наклонную!) съемку. upVector позволяет управлять этим типом перемещения.
Функции доступа:
| QVector3D | upVector() const |
| void | setUpVector(const QVector3D &upVector) |
Сигнал уведомления:
| void | upVectorChanged(const QVector3D &upVector) |
[read-only] viewCenter : QVector3D
Содержит центр обзора камеры в координатах, относительных к родительскому элементу.
Интуитивно, viewCenter — это место, на которое нацелена камера.
Функции доступа:
| QVector3D | viewCenter() const |
| void | setViewCenter(const QVector3D &viewCenter) |
Сигнал уведомления:
| void | viewCenterChanged(const QVector3D &viewCenter) |
[read-only] viewVector : const QVector3D
Содержит вектор направления взгляда камеры в координатах, относительных к родительскому элементу.
Этот вектор описывает смещение от камеры (position) до ее целевой точки (viewCenter).
Функции доступа:
| QVector3D | viewVector() const |
Сигнал уведомления:
| void | viewVectorChanged(const QVector3D &viewVector) |
Документация по функциям-членам
QCamera::QCamera(Qt3DCore::QNode *parent = nullptr)
Создаёт новый экземпляр QCamera с указанным parent.
[slot] void QCamera::setAspectRatio(float aspectRatio)
Устанавливает коэффициент пропорциональности камеры в значение aspectRatio.
Примечание: Функция-установщик свойства aspectRatio.
См. такжеaspectRatio().
[slot] void QCamera::setBottom(float bottom)
Устанавливает нижнее значение камеры в bottom.
Примечание: Функция-установщик свойства bottom.
См. такжеbottom().
[slot] void QCamera::setExposure(float exposure)
Устанавливает экспозицию камеры в значение exposure.
Примечание: Функция-установщик свойства exposure.
См. такжеexposure().
[slot] void QCamera::setFarPlane(float farPlane)
Устанавливает дальнюю плоскость камеры в значение farPlane
Примечание: Функция-установщик свойства farPlane.
См. такжеfarPlane().
[slot] void QCamera::setFieldOfView(float fieldOfView)
Устанавливает поле зрения камеры в значение fieldOfView в градусах.
Примечание: Функция-установщик свойства fieldOfView.
См. такжеfieldOfView().
[slot] void QCamera::setLeft(float left)
Устанавливает левое значение камеры в left.
Примечание: Функция-установщик свойства left.
См. такжеleft().
[slot] void QCamera::setNearPlane(float nearPlane)
Устанавливает ближнюю плоскость камеры в значение nearPlane.
Примечание: Функция-установщик свойства nearPlane.
См. такжеnearPlane().
[slot] void QCamera::setPosition(const QVector3D &position)
Устанавливает позицию камеры в 3D пространстве в значение position.
Примечание: Функция-установщик свойства position.
См. такжеposition().
[slot] void QCamera::setProjectionMatrix(const QMatrix4x4 &projectionMatrix)
Устанавливает матрицу проекции камеры в значение projectionMatrix.
Примечание: Функция-установщик свойства projectionMatrix.
См. такжеprojectionMatrix().
[slot] void QCamera::setProjectionType(QCameraLens::ProjectionType type)
Устанавливает тип проекции камеры в значение type.
Примечание: Функция-установщик свойства projectionType.
См. такжеprojectionType().
[slot] void QCamera::setRight(float right)
Устанавливает правое значение камеры в right.
Примечание: Функция-установщик свойства right.
См. такжеright().
[slot] void QCamera::setTop(float top)
Устанавливает верхнее значение камеры в top.
Примечание: Функция-установщик свойства top.
См. также top().
[slot] void QCamera::setUpVector(const QVector3D &upVector)
Устанавливает вектор вверх камеры на upVector.
Примечание: Функция-сеттер для свойства upVector.
См. также upVector().
[slot] void QCamera::setViewCenter(const QVector3D &viewCenter)
Устанавливает центр обзора камеры на viewCenter.
Примечание: Функция-сеттер для свойства viewCenter.
См. также viewCenter().
[slot] void QCamera::viewAll()
Поворачивает и перемещает камеру так, чтобы её viewCenter был центром ограничивающего объёма сцены, а вся сцена помещалась в порт отображения.
Примечание: Работает только в режиме перспективной или ортогональной проекции объектива.
См. также Qt3D.Render::Camera::projectionType.
[slot] void QCamera::viewEntity(Qt3DCore::QEntity *entity)
Поворачивает и перемещает камеру так, чтобы её viewCenter был центром ограничивающего объёма сущности entity, а вся сущность помещалась в порт отображения.
Примечание: Работает только в режиме перспективной или ортогональной проекции объектива.
См. также Camera.projectionType.
[slot] void QCamera::viewSphere(const QVector3D ¢er, float radius)
Поворачивает и перемещает камеру так, чтобы её viewCenter был center, и сфера радиусом radius помещалась в порт отображения.
Примечание: Работает только в режиме перспективной или ортогональной проекции объектива.
См. также Qt3D.Render::Camera::projectionType.
Qt3DRender::QCameraLens *QCamera::lens() const
Возвращает текущий объектив.
Примечание: Функция-геттер для свойства lens.
void QCamera::pan(float angle)
Корректирует угол обзора камеры на angle градусов.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::pan(float angle, const QVector3D &axis)
Корректирует угол панорамирования камеры на angle градусов вдоль заданной axis.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::panAboutViewCenter(float angle)
Корректирует панорамирование камеры вокруг центра обзора на angle градусов.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::panAboutViewCenter(float angle, const QVector3D &axis)
Корректирует панорамирование камеры вокруг центра обзора на angle градусов вдоль axis.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
QQuaternion QCamera::panRotation(float angle) const
Возвращает вычисленное вращение панорамирования относительно angle в градусах, используемого для корректировки панорамирования камеры или вращения влево/вправо вокруг оси Y.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::roll(float angle)
Корректирует крен камеры на angle градусов.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::rollAboutViewCenter(float angle)
Корректирует крен камеры вокруг центра обзора на angle градусов.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
QQuaternion QCamera::rollRotation(float angle) const
Возвращает вычисленное вращение крена относительно angle в градусах, используемого для корректировки крена камеры или вращения влево/вправо вокруг оси Z.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::rotate(const QQuaternion &q)
Поворачивает камеру с использованием кватерниона q.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::rotateAboutViewCenter(const QQuaternion &q)
Поворачивает камеру вокруг центра обзора с использованием кватерниона q.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
QQuaternion QCamera::rotation(float angle, const QVector3D &axis) const
Возвращает вычисленное вращение относительно angle в градусах и выбранной axis.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::tilt(float angle)
Корректирует угол наклона камеры на angle градусов.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::tiltAboutViewCenter(float angle)
Корректирует наклон камеры вокруг центра обзора на angle градусов.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
QQuaternion QCamera::tiltRotation(float angle) const
Возвращает вычисленное вращение наклона относительно angle в градусах, используемого для корректировки наклона камеры или вращения вверх/вниз вокруг оси X.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
Qt3DCore::QTransform *QCamera::transform() const
Возвращает положение камеры через преобразование.
Примечание: Функция-геттер для свойства transform.
void QCamera::translate(const QVector3D &vLocal, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter)
Перемещает положение камеры и вектор обзора на vLocal в локальных координатах. Параметр option позволяет переключать перевод центра обзора.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
void QCamera::translateWorld(const QVector3D &vWorld, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter)
Перемещает положение камеры и вектор обзора на vWorld в мировых координатах. Параметр option позволяет переключать перевод центра обзора.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qt3drender-qcamera.html