QCamera Class | Qt 3D 5.12.4

Qt 5.12 | Qt 3D | C++ Classes | QCamera

Qt 5.12.4 Reference Documentation

# QCamera Class

(Qt3DRender::QCamera)

The QCamera class defines a view point through which the scene will be rendered. More...

Header: | #include <Qt3DRender/QCamera>
qmake: | QT += 3drender
Since: | Qt 5.5
Instantiated By: | Camera
Inherits: | Qt3DCore::QEntity

- List of all members, including inherited members
- Obsolete members

## Public Types

enum | CameraTranslationOption { TranslateViewCenter, DontTranslateViewCenter }

## Properties

- aspectRatio : float
- bottom : float
- exposure : float
- farPlane : float
- fieldOfView : float
- left : float
- nearPlane : float
- position : QVector3D

- projectionMatrix : QMatrix4x4
- projectionType : Qt3DRender::QCameraLens::ProjectionType
- right : float
- top : float
- upVector : QVector3D
- viewCenter : QVector3D
- viewVector : const QVector3D

- 3 properties inherited from Qt3DCore::QNode
- 1 property inherited from QObject

## Public Functions

| 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

- 4 public functions inherited from Qt3DCore::QEntity
- 13 public functions inherited from Qt3DCore::QNode
- 31 public functions inherited from QObject

## Public Slots

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)

- 3 public slots inherited from Qt3DCore::QNode
- 1 public slot inherited from QObject

## Signals

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)

- 4 signals inherited from Qt3DCore::QNode
- 2 signals inherited from QObject

## Static Public Members

const QMetaObject | staticMetaObject

- 9 static public members inherited from QObject

### Additional Inherited Members

- 2 protected functions inherited from Qt3DCore::QNode
- 9 protected functions inherited from QObject

## Detailed Description

The QCamera class defines a view point through which the scene will be rendered.

## Member Type Documentation

### enum QCamera::CameraTranslationOption

This enum specifies how camera view center is translated

Constant | Value | Description
--- | --- | ---
`Qt3DRender::QCamera::TranslateViewCenter` | `0` | Translate the view center causing the view direction to remain the same
`Qt3DRender::QCamera::DontTranslateViewCenter` | `1` | Don't translate the view center causing the view direction to change

## Property Documentation

### aspectRatio : float

Holds the current aspect ratio.

Access functions:

float | aspectRatio() const
void | setAspectRatio(float aspectRatio)

Notifier signal:

void | aspectRatioChanged(float aspectRatio)

### bottom : float

Holds the current bottom of the camera.

Access functions:

float | bottom() const
void | setBottom(float bottom)

Notifier signal:

void | bottomChanged(float bottom)

### exposure : float

Holds the current exposure of the camera.

Access functions:

float | exposure() const
void | setExposure(float exposure)

Notifier signal:

void | exposureChanged(float exposure)

### farPlane : float

Holds the current camera far plane.

Access functions:

float | farPlane() const
void | setFarPlane(float farPlane)

Notifier signal:

void | farPlaneChanged(float farPlane)

### fieldOfView : float

Holds the current field of view in degrees.

Access functions:

float | fieldOfView() const
void | setFieldOfView(float fieldOfView)

Notifier signal:

void | fieldOfViewChanged(float fieldOfView)

### left : float

Holds the current left of the camera.

Access functions:

float | left() const
void | setLeft(float left)

Notifier signal:

void | leftChanged(float left)

### nearPlane : float

Holds the current camera near plane.

Access functions:

float | nearPlane() const
void | setNearPlane(float nearPlane)

Notifier signal:

void | nearPlaneChanged(float nearPlane)

### position : QVector3D

Holds the camera's position in coordinates relative to the parent entity.

Access functions:

QVector3D | position() const
void | setPosition(const QVector3D &position)

Notifier signal:

void | positionChanged(const QVector3D &position)

### projectionMatrix : QMatrix4x4

Holds the current projection matrix of the camera.

Access functions:

QMatrix4x4 | projectionMatrix() const
void | setProjectionMatrix(const QMatrix4x4 &projectionMatrix)

Notifier signal:

void | projectionMatrixChanged(const QMatrix4x4 &projectionMatrix)

### projectionType : Qt3DRender::QCameraLens::ProjectionType

Holds the type of the camera projection.

- CameraLens.OrthographicProjection
- CameraLens.PerspectiveProjection
- CameraLens.FrustumProjection
- CameraLens.CustomProjection

Access functions:

QCameraLens::ProjectionType | projectionType() const
void | setProjectionType(QCameraLens::ProjectionType type)

Notifier signal:

void | projectionTypeChanged(QCameraLens::ProjectionType projectionType)

See also Qt3DRender::QCameraLens::ProjectionType.

### right : float

Holds the current right of the camera.

Access functions:

float | right() const
void | setRight(float right)

Notifier signal:

void | rightChanged(float right)

### top : float

Holds the current top of the camera.

Access functions:

float | top() const
void | setTop(float top)

Notifier signal:

void | topChanged(float top)

### upVector : QVector3D

Holds the camera's up vector in coordinates relative to the parent entity.

Access functions:

QVector3D | upVector() const
void | setUpVector(const QVector3D &upVector)

Notifier signal:

void | upVectorChanged(const QVector3D &upVector)

### viewCenter : QVector3D

Holds the camera's view center in coordinates relative to the parent entity.

Access functions:

QVector3D | viewCenter() const
void | setViewCenter(const QVector3D &viewCenter)

Notifier signal:

void | viewCenterChanged(const QVector3D &viewCenter)

### viewVector : const QVector3D

Holds the camera's view vector in coordinates relative to the parent entity.

Access functions:

QVector3D | viewVector() const

Notifier signal:

void | viewVectorChanged(const QVector3D &viewVector)

## Member Function Documentation

### QCamera::QCamera(Qt3DCore::QNode *parent = nullptr)

Creates a new QCamera instance with the specified parent.

### Qt3DRender::QCameraLens *QCamera::lens() const

Returns the current lens.

### void QCamera::pan(float angle)

Adjusts the pan angle of the camera by angle in degrees.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QCamera::pan(float angle, const QVector3D &axis)

Adjusts the pan angle of the camera by angle in degrees on a chosen axis.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QCamera::panAboutViewCenter(float angle)

Adjusts the camera pan about view center by angle in degrees.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QCamera::panAboutViewCenter(float angle, const QVector3D &axis)

Adjusts the camera pan about view center by angle in degrees on axis.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### QQuaternion QCamera::panRotation(float angle) const

Returns the calculated pan rotation in relation to the angle in degrees taken in to adjust the camera's pan or left/right rotation on the Y axis.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QCamera::roll(float angle)

Adjusts the camera roll by angle in degrees.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QCamera::rollAboutViewCenter(float angle)

Adjusts the camera roll about view center by angle in degrees.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### QQuaternion QCamera::rollRotation(float angle) const

Returns the calculated roll rotation in relation to the angle in degrees taken in to adjust the camera's roll or lean left/right rotation on the Z axis.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QCamera::rotate(const QQuaternion &q)

Rotates the camera with the use of a Quaternion in q.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QCamera::rotateAboutViewCenter(const QQuaternion &q)

Rotates the camera about the view center with the use of a Quaternion in q.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### QQuaternion QCamera::rotation(float angle, const QVector3D &axis) const

Returns the calculated rotation in relation to the angle in degrees and chosen axis taken in.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[slot]` void QCamera::setAspectRatio(float aspectRatio)

Sets the camera's aspect ratio to aspectRatio.

Note: Setter function for property aspectRatio.

See also aspectRatio().

### `[slot]` void QCamera::setBottom(float bottom)

Sets the bottom of the camera to bottom.

Note: Setter function for property bottom.

See also bottom().

### `[slot]` void QCamera::setExposure(float exposure)

Sets the camera's exposure to exposure.

Note: Setter function for property exposure.

See also exposure().

### `[slot]` void QCamera::setFarPlane(float farPlane)

Sets the camera's far plane to farPlane

Note: Setter function for property farPlane.

See also farPlane().

### `[slot]` void QCamera::setFieldOfView(float fieldOfView)

Sets the camera's field of view to fieldOfView in degrees.

Note: Setter function for property fieldOfView.

See also fieldOfView().

### `[slot]` void QCamera::setLeft(float left)

Sets the left of the camera to left.

Note: Setter function for property left.

See also left().

### `[slot]` void QCamera::setNearPlane(float nearPlane)

Sets the camera's near plane to nearPlane.

Note: Setter function for property nearPlane.

See also nearPlane().

### `[slot]` void QCamera::setPosition(const QVector3D &position)

Sets the camera's position in 3D space to position.

Note: Setter function for property position.

See also position().

### `[slot]` void QCamera::setProjectionMatrix(const QMatrix4x4 &projectionMatrix)

Sets the camera's projection matrix to projectionMatrix.

Note: Setter function for property projectionMatrix.

See also projectionMatrix().

### `[slot]` void QCamera::setProjectionType(QCameraLens::ProjectionType type)

Sets the camera's projection type to type.

Note: Setter function for property projectionType.

See also projectionType().

### `[slot]` void QCamera::setRight(float right)

Sets the right of the camera to right.

Note: Setter function for property right.

See also right().

### `[slot]` void QCamera::setTop(float top)

Sets the top of the camera to top.

Note: Setter function for property top.

See also top().

### `[slot]` void QCamera::setUpVector(const QVector3D &upVector)

Sets the camera's up vector to upVector.

Note: Setter function for property upVector.

See also upVector().

### `[slot]` void QCamera::setViewCenter(const QVector3D &viewCenter)

Sets the camera's view center to viewCenter.

Note: Setter function for property viewCenter.

See also viewCenter().

### void QCamera::tilt(float angle)

Adjusts the tilt angle of the camera by angle in degrees.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QCamera::tiltAboutViewCenter(float angle)

Adjusts the camera tilt about view center by angle in degrees.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### QQuaternion QCamera::tiltRotation(float angle) const

Returns the calculated tilt rotation in relation to the angle in degrees taken in to adjust the camera's tilt or up/down rotation on the X axis.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### Qt3DCore::QTransform *QCamera::transform() const

Returns the camera's position via transform.

### void QCamera::translate(const QVector3D &vLocal, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter)

Translates the camera's position and its view vector by vLocal in local coordinates. The option allows for toggling whether the view center should be translated.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### void QCamera::translateWorld(const QVector3D &vWorld, Qt3DRender::QCamera::CameraTranslationOption option = TranslateViewCenter)

Translates the camera's position and its view vector by vWorld in world coordinates. The option allows for toggling whether the view center should be translated.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[slot]` void QCamera::viewAll()

Rotates and moves the camera so that it's viewCenter is the center of the scene's bounding volume and the entire scene fits in the view port.

Note: Only works if the lens is in perspective projection mode.

See also Qt3D.Render::Camera::projectionType.

### `[slot]` void QCamera::viewEntity(Qt3DCore::QEntity *entity)

Rotates and moves the camera so that it's viewCenter is the center of the entity's bounding volume and the entire entity fits in the view port.

Note: Only works if the lens is in perspective projection mode.

See also Camera.projectionType.

### `[slot]` void QCamera::viewSphere(const QVector3D &center, float radius)

Rotates and moves the camera so that it's viewCenter is center and a sphere of radius fits in the view port.

Note: Only works if the lens is in perspective projection mode.

See also Qt3D.Render::Camera::projectionType.