Spec-Zone.ru › Qt

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

Примечание: Функция-геттер для свойства 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.2/qt3drender-qcamera.html

Spec-Zone.ru

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