Open3D (C++ API)  0.18.0+a4a173e
IBLRotationInteractorLogic.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - Open3D: www.open3d.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2023 www.open3d.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
12 
13 namespace open3d {
14 namespace visualization {
15 namespace rendering {
16 
17 class Scene;
18 
21 
22 public:
23  IBLRotationInteractorLogic(Scene* scene, Camera* camera);
24 
25  void Rotate(int dx, int dy) override;
26  void RotateZ(int dx, int dy) override;
27 
28  void StartMouseDrag();
29  void UpdateMouseDragUI();
30  void EndMouseDrag();
31 
33 
34 private:
35  Scene* scene_;
36  Camera* camera_;
37  bool skybox_currently_visible_ = false;
38  Camera::Transform ibl_rotation_at_mouse_down_;
39 
40  void ClearUI();
41 };
42 
43 } // namespace rendering
44 } // namespace visualization
45 } // namespace open3d
Eigen::Transform< float, 3, Eigen::Affine > Transform
Definition: Camera.h:25
Definition: IBLRotationInteractorLogic.h:19
Camera::Transform GetCurrentRotation() const
Definition: IBLRotationInteractorLogic.cpp:63
IBLRotationInteractorLogic(Scene *scene, Camera *camera)
Definition: IBLRotationInteractorLogic.cpp:18
void UpdateMouseDragUI()
Definition: IBLRotationInteractorLogic.cpp:52
void EndMouseDrag()
Definition: IBLRotationInteractorLogic.cpp:54
void RotateZ(int dx, int dy) override
Rotates about the forward axis of the matrix.
Definition: IBLRotationInteractorLogic.cpp:30
void StartMouseDrag()
Definition: IBLRotationInteractorLogic.cpp:37
void Rotate(int dx, int dy) override
Definition: IBLRotationInteractorLogic.cpp:22
Definition: MatrixInteractorLogic.h:20
Definition: PinholeCameraIntrinsic.cpp:16