- Qt 5.15
- Qt 3D
- C++ Classes
- QCameraLens
- Qt 5.15.18 Reference Documentation

# QCameraLens Class

class Qt3DRender::QCameraLens

Qt3DRender::QCameraLens specifies the projection matrix that will be used to define a Camera for a 3D scene. More...

Header: | #include <Qt3DRender/QCameraLens>
qmake: | QT += 3drender
Since: | Qt 5.5
Instantiated By: | CameraLens
Inherits: | Qt3DCore::QComponent

This class was introduced in Qt 5.5.

- List of all members, including inherited members

## Public Types

enum | ProjectionType { OrthographicProjection, PerspectiveProjection, FrustumProjection, CustomProjection }

## Properties

- aspectRatio : float
- bottom : float
- exposure : float
- farPlane : float
- fieldOfView : float
- left : float

- nearPlane : float
- projectionMatrix : QMatrix4x4
- projectionType : ProjectionType
- right : float
- top : float

## Public Functions

| QCameraLens(QNode *parent = nullptr)
float | aspectRatio() const
float | bottom() const
float | exposure() const
float | farPlane() const
float | fieldOfView() const
float | left() const
float | nearPlane() const
QMatrix4x4 | projectionMatrix() const
ProjectionType | projectionType() const
float | right() const
void | setFrustumProjection(float left, float right, float bottom, float top, float nearPlane, float farPlane)
void | setOrthographicProjection(float left, float right, float bottom, float top, float nearPlane, float farPlane)
void | setPerspectiveProjection(float fieldOfView, float aspectRatio, float nearPlane, float farPlane)
float | top() const

## 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 | setProjectionMatrix(const QMatrix4x4 &projectionMatrix)
void | setProjectionType(ProjectionType projectionType)
void | setRight(float right)
void | setTop(float top)

## 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 | projectionMatrixChanged(const QMatrix4x4 &projectionMatrix)
void | projectionTypeChanged(QCameraLens::ProjectionType projectionType)
void | rightChanged(float right)
void | topChanged(float top)

## Detailed Description

## Member Type Documentation

### enum QCameraLens::ProjectionType

Specifies which parameters of Qt3DRender::QCameraLens are used to compute the projection matrix.

Constant | Value | Description
--- | --- | ---
`Qt3DRender::QCameraLens::OrthographicProjection` | `0` | Orthogonal projection
`Qt3DRender::QCameraLens::PerspectiveProjection` | `1` | Perspective projection
`Qt3DRender::QCameraLens::FrustumProjection` | `2` | Frustum projection
`Qt3DRender::QCameraLens::CustomProjection` | `3` | Custom user-defined projection

## Property Documentation

### aspectRatio : float

Holds the current aspect ratio of the camera lens.

Note: : The return value may be undefined if the projection type is not Qt3DRender::QCameraLens::PerspectiveProjection.

Access functions:

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

Notifier signal:

void | aspectRatioChanged(float aspectRatio)

### bottom : float

Holds the current bottom plane of the camera lens.

Note: The return value may be undefined if the projection type is Qt3DRender::QCameraLens::PerspectiveProjection.

Access functions:

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

Notifier signal:

void | bottomChanged(float bottom)

### exposure : float

Holds the current exposure of the camera lens.

Access functions:

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

Notifier signal:

void | exposureChanged(float exposure)

### farPlane : float

Holds the current near plane of the camera lens.

Access functions:

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

Notifier signal:

void | farPlaneChanged(float farPlane)

### fieldOfView : float

Holds the current field of view of the camera lens.

Note: : The return value may be undefined if the projection type is not Qt3DRender::QCameraLens::PerspectiveProjection.

Access functions:

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

Notifier signal:

void | fieldOfViewChanged(float fieldOfView)

### left : float

Holds the current left plane of the camera lens.

Note: The return value may be undefined if the projection type is Qt3DRender::QCameraLens::PerspectiveProjection.

Access functions:

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

Notifier signal:

void | leftChanged(float left)

### nearPlane : float

Holds the current near plane of the camera lens.

Access functions:

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

Notifier signal:

void | nearPlaneChanged(float nearPlane)

### projectionMatrix : QMatrix4x4

Holds the current projection matrix of the camera lens.

Access functions:

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

Notifier signal:

void | projectionMatrixChanged(const QMatrix4x4 &projectionMatrix)

### projectionType : ProjectionType

Holds the type of the camera projection.

Access functions:

ProjectionType | projectionType() const
void | setProjectionType(ProjectionType projectionType)

Notifier signal:

void | projectionTypeChanged(QCameraLens::ProjectionType projectionType)

See also Qt3DRender::QCameraLens::ProjectionType.

### right : float

Holds the current right plane of the camera lens.

Note: The return value may be undefined if the projection type is Qt3DRender::QCameraLens::PerspectiveProjection.

Access functions:

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

Notifier signal:

void | rightChanged(float right)

### top : float

Holds the current top plane of the camera lens.

Note: The return value may be undefined if the projection type is Qt3DRender::QCameraLens::PerspectiveProjection.

Access functions:

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

Notifier signal:

void | topChanged(float top)

## Member Function Documentation

### QCameraLens::QCameraLens(QNode *parent = nullptr)

Constructs a QCameraLens with given parent

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

Sets the projection's aspect ratio to aspectRatio. This triggers a projection matrix update.

Note: this has no effect if the projection type is not Qt3DRender::QCameraLens::PerspectiveProjection.

Note: Setter function for property aspectRatio.

See also aspectRatio().

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

Sets the projection's bottom window coordinate to bottom. This triggers a projection matrix update.

Note: this has no effect if the projection type is Qt3DRender::QCameraLens::PerspectiveProjection.

Note: Setter function for property bottom.

See also bottom().

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

Sets the camera lens' exposure

Note: Setter function for property exposure.

See also exposure().

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

Sets the projection's far plane to farPlane. This triggers a projection matrix update.

Note: Setter function for property farPlane.

See also farPlane().

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

Sets the projection's field of view to fieldOfView degrees. This triggers a projection matrix update.

Note: this has no effect if the projection type is not Qt3DRender::QCameraLens::PerspectiveProjection.

Note: Setter function for property fieldOfView.

See also fieldOfView().

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

Sets the projection's lower left window coordinate to left. This triggers a projection matrix update.

Note: this has no effect if the projection type is Qt3DRender::QCameraLens::PerspectiveProjection.

Note: Setter function for property left.

See also left().

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

Sets the projection's near plane to nearPlane. This triggers a projection matrix update.

Note: Setter function for property nearPlane.

See also nearPlane().

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

Sets the project matrix to projectionMatrix.

Note: This will set the projection type to Qt3DRender::QCameraLens::CustomProjection and thus ignore all other camera parameters that might have been specified.

Note: Setter function for property projectionMatrix.

See also projectionMatrix().

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

Sets the lens' projection type projectionType.

Note: Qt3DRender::QCameraLens::Frustum and Qt3DRender::QCameraLens::PerspectiveProjection are two different ways of specifying the same projection.

Note: Setter function for property projectionType.

See also projectionType().

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

Sets the projection's upper right window coordinate to right. This triggers a projection matrix update.

Note: this has no effect if the projection type is Qt3DRender::QCameraLens::PerspectiveProjection.

Note: Setter function for property right.

See also right().

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

Sets the projection's top window coordinate to top. This triggers a projection matrix update.

Note: this has no effect if the projection type is Qt3DRender::QCameraLens::PerspectiveProjection.

Note: Setter function for property top.

See also top().

### void QCameraLens::setFrustumProjection(float left, float right, float bottom, float top, float nearPlane, float farPlane)

Defines an orthographic projection based on left, right, bottom, top, nearPlane, farPlane.

### void QCameraLens::setOrthographicProjection(float left, float right, float bottom, float top, float nearPlane, float farPlane)

Defines an orthographic projection based on left, right, bottom, top, nearPlane, farPlane.

### void QCameraLens::setPerspectiveProjection(float fieldOfView, float aspectRatio, float nearPlane, float farPlane)

Defines a perspective projection based on fieldOfView, aspectRatio, nearPlane, farPlane.