Class: QgsCameraController

class qgis._3d.QgsCameraController

Bases: PyQt5.QtCore.QObject

Object that controls camera movement based on user input

Note

Not available in Python bindings

Methods

cameraMovementSpeed

Returns the camera movement speed

cameraNavigationMode

Returns the navigation mode used by the camera controller.

cameraPose

Returns camera pose

depthBufferCaptured

Sets the depth buffer image used by the camera controller to calculate world position from a pixel's coordinates and depth

distance

Returns distance of the camera from the point it is looking at.

frameTriggered

Called internally from 3D scene when a new frame is generated.

lookingAtPoint

Returns the point in the world coordinates towards which the camera is looking

moveView

Move the map by tx and ty

pitch

Returns pitch angle in degrees (0 = looking from the top, 90 = looking from the side).

readXml

Reads camera configuration from the given DOM element

resetView

Move camera back to the initial position (looking down towards origin of world's coordinates)

rotateAroundViewCenter

Rotate clockwise the view by deltaYaw around the view center (camera moves)

rotateCamera

Rotates the camera on itself.

setCameraHeadingAngle

Set camera heading to angle (used for rotating the view)

setCameraMovementSpeed

Sets the camera movement speed

setCameraNavigationMode

Sets the navigation mode used by the camera controller.

setCameraPose

Sets camera pose

setLookingAtPoint

Sets the complete camera configuration: the point towards it is looking (in 3D world coordinates), the distance of the camera from the point, pitch angle in degrees (0 = looking from the top, 90 = looking from the side) and yaw angle in degrees.

setVerticalAxisInversion

Sets the vertical axis inversion behavior.

setViewFromTop

Sets camera to look down towards given point in world coordinate, in given distance from plane with zero elevation

tiltUpAroundViewCenter

Tilt up the view by deltaPitch around the view center (camera moves)

verticalAxisInversion

Returns the vertical axis inversion behavior.

walkView

Walks into the map by tx, ty, and tz

willHandleKeyEvent

Returns True if the camera controller will handle the specified key event, preventing it from being instead handled by parents of the 3D window before the controller ever receives it.

writeXml

Writes camera configuration to the given DOM element

yaw

Returns yaw angle in degrees.

zoom

Zoom the map by factor

Signals

cameraChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

cameraMovementSpeedChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

cameraRotationCenterChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

navigationModeChanged

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

requestDepthBufferCapture

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

setCursorPosition

pyqtSignal(*types, name: str = ..., revision: int = ..., arguments: Sequence = ...) -> PYQT_SIGNAL

cameraChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

cameraMovementSpeed(self) float

Returns the camera movement speed

New in version 3.18.

Return type:

float

cameraMovementSpeedChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

cameraNavigationMode(self) Qgis.NavigationMode

Returns the navigation mode used by the camera controller.

New in version 3.18.

Return type:

Qgis.NavigationMode

cameraPose(self) QgsCameraPose

Returns camera pose

New in version 3.4.

Return type:

QgsCameraPose

cameraRotationCenterChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

depthBufferCaptured(self, depthImage: QImage)

Sets the depth buffer image used by the camera controller to calculate world position from a pixel’s coordinates and depth

New in version 3.24.

Parameters:

depthImage (QImage) –

distance(self) float

Returns distance of the camera from the point it is looking at. The value should not be smaller than 10.

New in version 3.4.

Return type:

float

frameTriggered(self, dt: float)

Called internally from 3D scene when a new frame is generated. Updates camera according to keyboard/mouse input

Parameters:

dt (float) –

lookingAtPoint(self) QgsVector3D

Returns the point in the world coordinates towards which the camera is looking

Return type:

QgsVector3D

moveView(self, tx: float, ty: float)

Move the map by tx and ty

Parameters:
  • tx (float) –

  • ty (float) –

navigationModeChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

pitch(self) float

Returns pitch angle in degrees (0 = looking from the top, 90 = looking from the side). The angle should range from 0 to 180.

New in version 3.4.

Return type:

float

readXml(self, elem: QDomElement)

Reads camera configuration from the given DOM element

Parameters:

elem (QDomElement) –

requestDepthBufferCapture

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

resetView(self, distance: float)

Move camera back to the initial position (looking down towards origin of world’s coordinates)

Parameters:

distance (float) –

rotateAroundViewCenter(self, deltaYaw: float)

Rotate clockwise the view by deltaYaw around the view center (camera moves)

Parameters:

deltaYaw (float) –

rotateCamera(self, diffPitch: float, diffYaw: float)

Rotates the camera on itself.

Parameters:
  • diffPitch (float) – the pitch difference

  • diffYaw (float) – the yaw difference

New in version 3.30.

setCameraHeadingAngle(self, angle: float)

Set camera heading to angle (used for rotating the view)

Parameters:

angle (float) –

setCameraMovementSpeed(self, movementSpeed: float)

Sets the camera movement speed

New in version 3.18.

Parameters:

movementSpeed (float) –

setCameraNavigationMode(self, navigationMode: Qgis.NavigationMode)

Sets the navigation mode used by the camera controller.

New in version 3.18.

Parameters:

navigationMode (Qgis.NavigationMode) –

setCameraPose(self, camPose: QgsCameraPose)

Sets camera pose

New in version 3.4.

Parameters:

camPose (QgsCameraPose) –

setCursorPosition

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

Parameters:
  • name (str = ...) –

  • revision (int = ...) –

  • arguments (Sequence = ...) –

Return type:

PYQT_SIGNAL

setLookingAtPoint(self, point: QgsVector3D, distance: float, pitch: float, yaw: float)

Sets the complete camera configuration: the point towards it is looking (in 3D world coordinates), the distance of the camera from the point, pitch angle in degrees (0 = looking from the top, 90 = looking from the side) and yaw angle in degrees.

New in version 3.4.

Parameters:
  • point (QgsVector3D) –

  • distance (float) –

  • pitch (float) –

  • yaw (float) –

setVerticalAxisInversion(self, inversion: Qgis.VerticalAxisInversion)

Sets the vertical axis inversion behavior.

New in version 3.18.

Parameters:

inversion (Qgis.VerticalAxisInversion) –

setViewFromTop(self, worldX: float, worldY: float, distance: float, yaw: float = 0)

Sets camera to look down towards given point in world coordinate, in given distance from plane with zero elevation

Parameters:
  • worldX (float) –

  • worldY (float) –

  • distance (float) –

  • yaw (float = 0) –

tiltUpAroundViewCenter(self, deltaPitch: float)

Tilt up the view by deltaPitch around the view center (camera moves)

Parameters:

deltaPitch (float) –

verticalAxisInversion(self) Qgis.VerticalAxisInversion

Returns the vertical axis inversion behavior.

New in version 3.18.

Return type:

Qgis.VerticalAxisInversion

walkView(self, tx: float, ty: float, tz: float)

Walks into the map by tx, ty, and tz

New in version 3.30.

Parameters:
  • tx (float) –

  • ty (float) –

  • tz (float) –

willHandleKeyEvent(self, event: QKeyEvent) bool

Returns True if the camera controller will handle the specified key event, preventing it from being instead handled by parents of the 3D window before the controller ever receives it.

Parameters:

event (QKeyEvent) –

Return type:

bool

writeXml(self, doc: QDomDocument) QDomElement

Writes camera configuration to the given DOM element

Parameters:

doc (QDomDocument) –

Return type:

QDomElement

yaw(self) float

Returns yaw angle in degrees. Yaw value of zero means the camera is pointing towards north. The angle should range from 0 to 360.

New in version 3.4.

Return type:

float

zoom(self, factor: float)

Zoom the map by factor

Parameters:

factor (float) –