Skip To Content ArcGIS for Developers Sign In Dashboard

TransformationMatrixCameraController Class

(Esri::ArcGISRuntime::TransformationMatrixCameraController)

A transformation matrix camera controller that supports camera navigation by using TransformationMatrix. More...

Header: #include <TransformationMatrixCameraController>
Since: Esri::ArcGISRuntime 100.6
Inherits: CameraController

Public Functions

TransformationMatrixCameraController(QObject *parent = nullptr)
TransformationMatrixCameraController(const Camera &originCamera, QObject *parent = nullptr)
~TransformationMatrixCameraController()
Camera originCamera() const
void setOriginCamera(const Camera &originCamera)
void setTransformationMatrix(TransformationMatrix *transformationMatrix)
void setTranslationFactor(double translationFactor)
TransformationMatrix *transformationMatrix() const
double translationFactor() const

Signals

Additional Inherited Members

  • 1 property inherited from QObject
  • 1 public slot inherited from QObject
  • 1 public variable inherited from QObject
  • 10 static public members inherited from QObject
  • 9 protected functions inherited from QObject
  • 2 protected variables inherited from QObject

Detailed Description

A transformation matrix camera controller that supports camera navigation by using TransformationMatrix.

Camera controllers can be applied to a SceneView to determine the camera interaction and navigation model.

The transformation matrix camera controller provides navigation by using a TransformationMatrix to control the camera's location and rotation. This class can be used with transformation matrices produced by AR APIs like ARKit and ARCore.

Member Function Documentation

TransformationMatrixCameraController::TransformationMatrixCameraController(QObject *parent = nullptr)

Default constructor.

Create an TransformationMatrix camera controller object.

When a default-constructed TransformationMatrixCameraController is set on a scene view using SceneView::cameraController, the interaction mode will change for the active navigation model and be located at the origin camera's location and point along its rotation. The default camera has no rotation and is located at (0,0) at an altitude of 15e6 meters.

  • parent - The optional parent.

TransformationMatrixCameraController::TransformationMatrixCameraController(const Camera &originCamera, QObject *parent = nullptr)

Constructs a TransformationMatrix camera controller with a Camera to describe the original location.

When the controller is set on the scene view using SceneView::cameraController, the interaction mode will change for the active navigation model and be located at the TransformationMatrix's location of the camera and point along its rotation.

  • originCamera - All following movements will be relative to the origin camera's location.
  • parent - An optional parent.

TransformationMatrixCameraController::~TransformationMatrixCameraController()

Destructor.

Camera TransformationMatrixCameraController::originCamera() const

Gets the Camera that describes the original location.

The default camera has no rotation and is located at (0,0,15e6) meters.

See also setOriginCamera().

[signal] void TransformationMatrixCameraController::originCameraChanged()

Emitted when the originCamera property changes.

void TransformationMatrixCameraController::setOriginCamera(const Camera &originCamera)

Sets the Camera that describes the original location to originCamera.

Setting a new TransformationMatrix on the TransformationMatrixCameraController will move the camera relative to the origin camera's location and orientation.

See also originCamera().

void TransformationMatrixCameraController::setTransformationMatrix(TransformationMatrix *transformationMatrix)

Sets the TransformationMatrix to transformationMatrix.

The TransformationMatrix describes the current Camera's location relative to the origin camera.

See also transformationMatrix().

void TransformationMatrixCameraController::setTranslationFactor(double translationFactor)

Sets the translation factor to translationFactor.

This value will be multiplied into the TransformationMatrix property. Setting the value to 3 will cause position changes indicated by the transformation matrix property to be multiplied by 3.

Note: this does not affect the Camera rotation.

The value of translationFactor must be postive.

See also translationFactor().

TransformationMatrix *TransformationMatrixCameraController::transformationMatrix() const

Gets the TransformationMatrix that describes the current Camera's location relative to the origin camera.

The default value is a default constructed transformation matrix, using the values (0, 0, 0, 1) for x, y, z, w quaternion and (0, 0, 0) for x, y, z translations.

See also setTransformationMatrix().

double TransformationMatrixCameraController::translationFactor() const

Gets the translation factor.

The default value is 1.0.

See also setTranslationFactor().

[signal] void TransformationMatrixCameraController::translationFactorChanged()

Emitted when the translationFactor property changes.


Feedback on this topic?