Open3D (C++ API)
|
#include <MatrixInteractorLogic.h>
Public Types | |
enum | DragType { DragType::MOUSE, DragType::WHEEL, DragType::TWO_FINGER } |
Public Member Functions | |
virtual | ~MatrixInteractorLogic () |
void | SetViewSize (int width, int height) |
const geometry::AxisAlignedBoundingBox & | GetBoundingBox () const |
virtual void | SetBoundingBox (const geometry::AxisAlignedBoundingBox &bounds) |
void | SetMouseDownInfo (const Camera::Transform &matrix, const Eigen::Vector3f ¢er_of_rotation) |
const Camera::Transform & | GetMatrix () 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 (int dy, DragType drag_type) |
virtual void | Dolly (float z_dist, Camera::Transform matrix) |
Protected Member Functions | |
void | SetMatrix (const Camera::Transform &matrix) |
double | CalcRotateRadians (int dx, int dy) |
double | CalcRotateZRadians (int dx, int dy) |
float | CalcDollyDist (int dy, DragType drag_type) |
Protected Attributes | |
int | view_width_ = 1 |
int | view_height_ = 1 |
double | model_size_ = 20.0 |
geometry::AxisAlignedBoundingBox | model_bounds_ |
Eigen::Vector3f | center_of_rotation_ |
Camera::Transform | matrix_at_mouse_down_ |
Eigen::Vector3f | center_of_rotation_at_mouse_down_ |
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.
|
virtual |
|
protected |
|
protected |
|
protected |
|
virtual |
Moves the matrix along the forward axis. (This is one type of zoom.)
Reimplemented in open3d::visualization::ModelInteractorLogic, and open3d::visualization::CameraInteractorLogic.
|
virtual |
Reimplemented in open3d::visualization::CameraInteractorLogic.
const geometry::AxisAlignedBoundingBox & open3d::visualization::MatrixInteractorLogic::GetBoundingBox | ( | ) | const |
const Camera::Transform & open3d::visualization::MatrixInteractorLogic::GetMatrix | ( | ) | const |
|
virtual |
Rotates about an axis defined by dx * matrixLeft, dy * matrixUp. dy
is assumed to be in window-style coordinates, that is, going up produces a negative dy. The axis goes through the center of rotation.
Reimplemented in open3d::visualization::ModelInteractorLogic, open3d::visualization::LightDirectionInteractorLogic, open3d::visualization::IBLRotationInteractorLogic, and open3d::visualization::CameraInteractorLogic.
|
virtual |
Same as Rotate() except that the dx-axis and the dy-axis are specified
|
virtual |
Rotates about the forward axis of the matrix.
Reimplemented in open3d::visualization::ModelInteractorLogic, open3d::visualization::IBLRotationInteractorLogic, and open3d::visualization::CameraInteractorLogic.
|
virtual |
|
virtual |
Reimplemented in open3d::visualization::ModelInteractorLogic, and open3d::visualization::CameraInteractorLogic.
|
protected |
void open3d::visualization::MatrixInteractorLogic::SetMouseDownInfo | ( | const Camera::Transform & | matrix, |
const Eigen::Vector3f & | center_of_rotation | ||
) |
void open3d::visualization::MatrixInteractorLogic::SetViewSize | ( | int | width, |
int | height | ||
) |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |