ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
cloudViewer::visualization::rendering::MatrixInteractorLogic Class Reference

#include <MatrixInteractorLogic.h>

Inheritance diagram for cloudViewer::visualization::rendering::MatrixInteractorLogic:
Collaboration diagram for cloudViewer::visualization::rendering::MatrixInteractorLogic:

Public Types

enum class  DragType { MOUSE , WHEEL , TWO_FINGER }
 

Public Member Functions

virtual ~MatrixInteractorLogic ()
 
void SetViewSize (int width, int height)
 
int GetViewWidth () const
 
int GetViewHeight () const
 
const ccBBoxGetBoundingBox () const
 
virtual void SetBoundingBox (const ccBBox &bounds)
 
Eigen::Vector3f GetCenterOfRotation () const
 
void SetMouseDownInfo (const Camera::Transform &matrix, const Eigen::Vector3f &center_of_rotation)
 
const Camera::TransformGetMatrix () const
 
virtual void Rotate (int dx, int dy)
 
virtual void RotateWorld (int dx, int dy, const Eigen::Vector3f &x_axis, const Eigen::Vector3f &y_axis)
 
virtual void RotateZ (int dx, int dy)
 Rotates about the forward axis of the matrix. More...
 
virtual void RotateZWorld (int dx, int dy, const Eigen::Vector3f &forward)
 
virtual void Dolly (float dy, DragType drag_type)
 
virtual void Dolly (float z_dist, Camera::Transform matrix)
 

Protected Member Functions

void SetMatrix (const Camera::Transform &matrix)
 
float CalcRotateRadians (int dx, int dy)
 
float CalcRotateZRadians (int dx, int dy)
 
float CalcDollyDist (float dy, DragType drag_type, const Camera::Transform &matrix)
 

Protected Attributes

int view_width_ = 1
 
int view_height_ = 1
 
double model_size_ = 20.0
 
ccBBox model_bounds_
 
Eigen::Vector3f center_of_rotation_
 
Camera::Transform matrix_at_mouse_down_
 
Eigen::Vector3f center_of_rotation_at_mouse_down_
 

Detailed Description

Base class for rotating and dollying (translating along forward axis). Could be used for a camera, or also something else, like a the direction of a directional light.

Definition at line 21 of file MatrixInteractorLogic.h.

Member Enumeration Documentation

◆ DragType

Enumerator
MOUSE 
WHEEL 
TWO_FINGER 

Definition at line 57 of file MatrixInteractorLogic.h.

Constructor & Destructor Documentation

◆ ~MatrixInteractorLogic()

cloudViewer::visualization::rendering::MatrixInteractorLogic::~MatrixInteractorLogic ( )
virtual

Definition at line 14 of file MatrixInteractorLogic.cpp.

Member Function Documentation

◆ CalcDollyDist()

float cloudViewer::visualization::rendering::MatrixInteractorLogic::CalcDollyDist ( float  dy,
DragType  drag_type,
const Camera::Transform matrix 
)
protected

◆ CalcRotateRadians()

float cloudViewer::visualization::rendering::MatrixInteractorLogic::CalcRotateRadians ( int  dx,
int  dy 
)
protected

◆ CalcRotateZRadians()

float cloudViewer::visualization::rendering::MatrixInteractorLogic::CalcRotateZRadians ( int  dx,
int  dy 
)
protected

◆ Dolly() [1/2]

void cloudViewer::visualization::rendering::MatrixInteractorLogic::Dolly ( float  dy,
DragType  drag_type 
)
virtual

◆ Dolly() [2/2]

void cloudViewer::visualization::rendering::MatrixInteractorLogic::Dolly ( float  z_dist,
Camera::Transform  matrix 
)
virtual

◆ GetBoundingBox()

const ccBBox & cloudViewer::visualization::rendering::MatrixInteractorLogic::GetBoundingBox ( ) const

Definition at line 25 of file MatrixInteractorLogic.cpp.

References model_bounds_.

◆ GetCenterOfRotation()

Eigen::Vector3f cloudViewer::visualization::rendering::MatrixInteractorLogic::GetCenterOfRotation ( ) const

◆ GetMatrix()

◆ GetViewHeight()

int cloudViewer::visualization::rendering::MatrixInteractorLogic::GetViewHeight ( ) const

◆ GetViewWidth()

int cloudViewer::visualization::rendering::MatrixInteractorLogic::GetViewWidth ( ) const

◆ Rotate()

void cloudViewer::visualization::rendering::MatrixInteractorLogic::Rotate ( int  dx,
int  dy 
)
virtual

◆ RotateWorld()

void cloudViewer::visualization::rendering::MatrixInteractorLogic::RotateWorld ( int  dx,
int  dy,
const Eigen::Vector3f &  x_axis,
const Eigen::Vector3f &  y_axis 
)
virtual

◆ RotateZ()

◆ RotateZWorld()

void cloudViewer::visualization::rendering::MatrixInteractorLogic::RotateZWorld ( int  dx,
int  dy,
const Eigen::Vector3f &  forward 
)
virtual

◆ SetBoundingBox()

◆ SetMatrix()

void cloudViewer::visualization::rendering::MatrixInteractorLogic::SetMatrix ( const Camera::Transform matrix)
protected

◆ SetMouseDownInfo()

◆ SetViewSize()

void cloudViewer::visualization::rendering::MatrixInteractorLogic::SetViewSize ( int  width,
int  height 
)

Member Data Documentation

◆ center_of_rotation_

◆ center_of_rotation_at_mouse_down_

◆ matrix_at_mouse_down_

◆ model_bounds_

◆ model_size_

double cloudViewer::visualization::rendering::MatrixInteractorLogic::model_size_ = 20.0
protected

◆ view_height_

◆ view_width_

int cloudViewer::visualization::rendering::MatrixInteractorLogic::view_width_ = 1
protected

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