v2.0.0
Loading...
Searching...
No Matches
CameraController Class Reference

Camera state and matrix computation. More...

#include <cameracontroller.h>

Public Member Functions

 CameraController ()=default
void setSceneCenter (const QVector3D &center)
void setSceneSize (float size)
QVector3D sceneCenter () const
float sceneSize () const
void setRotation (const QQuaternion &q)
QQuaternion rotation () const
void setZoom (float z)
float zoom () const
void resetRotation ()
CameraResult computeSingleView (float aspectRatio) const
CameraResult computeMultiView (const SubView &subView, float aspectRatio) const

Static Public Member Functions

static void applyMouseRotation (const QPoint &delta, QQuaternion &rotation, float speed=0.5f)
static void applyMousePan (const QPoint &delta, QVector2D &pan, float sceneSize)

Detailed Description

Camera state and matrix computation.

Encapsulates camera state and produces view/projection matrices.

This class is independent of any Qt widget — it takes scene geometry parameters and view configuration, and produces camera matrices. It also handles rotation, zoom, and pan from mouse delta values.

Definition at line 79 of file cameracontroller.h.

Constructor & Destructor Documentation

◆ CameraController()

CameraController::CameraController ( )
default

Constructor.

Member Function Documentation

◆ applyMousePan()

void CameraController::applyMousePan ( const QPoint & delta,
QVector2D & pan,
float sceneSize )
static

Apply pan from mouse drag delta (planar multi-view pane).

Parameters
[in]deltaMouse delta in pixels.
[in,out]panPan offset to update.
[in]sceneSizeCurrent scene size for scaling.

Definition at line 137 of file cameracontroller.cpp.

◆ applyMouseRotation()

void CameraController::applyMouseRotation ( const QPoint & delta,
QQuaternion & rotation,
float speed = 0.5f )
static

Apply rotation from mouse drag delta (single-view or perspective pane).

Parameters
[in]deltaMouse delta in pixels.
[in,out]rotationRotation quaternion to update.
[in]speedRotation speed multiplier (default 0.5).

Definition at line 117 of file cameracontroller.cpp.

◆ computeMultiView()

CameraResult CameraController::computeMultiView ( const SubView & subView,
float aspectRatio ) const

Compute camera matrices for a multi-view pane.

Parameters
[in]subViewPer-view state (preset, zoom, pan, rotation).
[in]aspectRatioWidth / height of the pane.
Returns
CameraResult with all matrices.

Definition at line 97 of file cameracontroller.cpp.

◆ computeSingleView()

CameraResult CameraController::computeSingleView ( float aspectRatio) const

Compute camera matrices for a single-view viewport.

Parameters
[in]aspectRatioWidth / height of the viewport.
Returns
CameraResult with all matrices.

Definition at line 87 of file cameracontroller.cpp.

◆ resetRotation()

void CameraController::resetRotation ( )
inline

Reset single-view rotation to identity.

Definition at line 110 of file cameracontroller.h.

◆ rotation()

QQuaternion CameraController::rotation ( ) const
inline

Definition at line 103 of file cameracontroller.h.

◆ sceneCenter()

QVector3D CameraController::sceneCenter ( ) const
inline

Definition at line 96 of file cameracontroller.h.

◆ sceneSize()

float CameraController::sceneSize ( ) const
inline

Definition at line 97 of file cameracontroller.h.

◆ setRotation()

void CameraController::setRotation ( const QQuaternion & q)
inline

Set user rotation for single-view.

Definition at line 102 of file cameracontroller.h.

◆ setSceneCenter()

void CameraController::setSceneCenter ( const QVector3D & center)
inline

Set the scene center (centroid of visible objects).

Definition at line 91 of file cameracontroller.h.

◆ setSceneSize()

void CameraController::setSceneSize ( float size)
inline

Set the scene size (extent of visible objects).

Definition at line 94 of file cameracontroller.h.

◆ setZoom()

void CameraController::setZoom ( float z)
inline

Single-view zoom level.

Definition at line 106 of file cameracontroller.h.

◆ zoom()

float CameraController::zoom ( ) const
inline

Definition at line 107 of file cameracontroller.h.


The documentation for this class was generated from the following files: