Spec-Zone.ru › Qt 6.1

Класс 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 }

Свойства

  • aspectRatio : float
  • bottom : float
  • exposure : float
  • farPlane : float
  • fieldOfView : float
  • left : float
  • lens : Qt3DRender::QCameraLens* const
  • nearPlane : float
  • position : QVector3D
  • projectionMatrix : QMatrix4x4
  • projectionType : Qt3DRender::QCameraLens::ProjectionType
  • right : float
  • top : float
  • transform : Qt3DCore::QTransform* const
  • upVector : QVector3D
  • viewCenter : QVector3D
  • viewVector : const QVector3D

Открытые функции

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 &center, 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 &center, 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API