Класс QCamera
класс 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 | pan(float angle, const QVector3D &axis) |
| void | panAboutViewCenter(float angle) |
| void | panAboutViewCenter(float angle, const QVector3D &axis) |
| QQuaternion | panRotation(float angle) const |
| QVector3D | position() const |
| QMatrix4x4 | projectionMatrix() const |
| QCameraLens::ProjectionType | projectionType() const |
| float | right() const |
| void | roll(float angle) |
| void | rollAboutViewCenter(float angle) |
| QQuaternion | rollRotation(float angle) const |
| void | rotate(const QQuaternion &q) |
| void | rotateAboutViewCenter(const QQuaternion &q) |
| QQuaternion | rotation(float angle, const QVector3D &axis) const |
| void | tilt(float angle) |
| void | tiltAboutViewCenter(float angle) |
| QQuaternion | tiltRotation(float angle) const |
| float | top() const |
| Qt3DCore::QTransform * | transform() const |
| void | translate(const QVector3D &vLocal, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter) |
| void | translateWorld(const QVector3D &vWorld, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter) |
| QVector3D | upVector() const |
| QVector3D | viewCenter() const |
| QVector3D | viewVector() const |
Открытые слоты
| 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) |
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.
[invokable] void QCamera::pan(float angle)
Изменяет угол панорамирования камеры на angle градусов.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QCamera::pan(float angle, const QVector3D &axis)
Изменяет угол панорамирования камеры на angle градусов вокруг заданной axis.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QCamera::panAboutViewCenter(float angle)
Изменяет угол панорамирования камеры вокруг центра обзора на angle градусов.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QCamera::panAboutViewCenter(float angle, const QVector3D &axis)
Изменяет угол панорамирования камеры вокруг центра обзора на angle градусов вокруг оси axis.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] QQuaternion QCamera::panRotation(float angle) const
Возвращает рассчитанное вращение панорамирования относительно угла angle в градусах, используемого для изменения панорамирования или вращения камеры влево/вправо по оси Y.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QCamera::roll(float angle)
Изменяет угол наклона камеры на angle градусов.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QCamera::rollAboutViewCenter(float angle)
Изменяет угол наклона камеры вокруг центра обзора на angle градусов.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] QQuaternion QCamera::rollRotation(float angle) const
Возвращает рассчитанное вращение наклона относительно угла angle в градусах, используемого для изменения наклона или вращения камеры влево/вправо по оси Z.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QCamera::rotate(const QQuaternion &q)
Поворачивает камеру с помощью кватерниона q.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QCamera::rotateAboutViewCenter(const QQuaternion &q)
Поворачивает камеру вокруг центра обзора с помощью кватерниона q.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] QQuaternion QCamera::rotation(float angle, const QVector3D &axis) const
Возвращает рассчитанное вращение относительно угла angle в градусах и выбранной axis.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QCamera::tilt(float angle)
Изменяет угол наклона камеры на angle градусов.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] void QCamera::tiltAboutViewCenter(float angle)
Изменяет угол наклона камеры вокруг центра обзора на angle градусов.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[invokable] QQuaternion QCamera::tiltRotation(float angle) const
Возвращает рассчитанное вращение наклона относительно угла angle в градусах, используемого для изменения наклона или вращения камеры вверх/вниз по оси X.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
Qt3DCore::QTransform *QCamera::transform() const
Возвращает положение камеры через преобразование.
Примечание: Функция-геттер для свойства transform.
[invokable] void QCamera::translate(const QVector3D &vLocal, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter)
Перемещает позицию камеры и ее вектор обзора на vLocal в локальных координатах. Параметр option позволяет переключать, следует ли перемещать центр обзора.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[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.1/qt3drender-qcamera.html