ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ViewControlWithEditing.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
11 
12 namespace cloudViewer {
13 namespace visualization {
14 
16 public:
17  enum EditingMode {
18  FreeMode = 0,
25  };
26 
27 public:
29 
30  void Reset() override;
31  void ChangeFieldOfView(double step) override;
32  void Scale(double scale) override;
33  void Rotate(double x, double y, double xo, double yo) override;
34  void Translate(double x, double y, double xo, double yo) override;
35 
36  void SetEditingMode(EditingMode mode);
37  std::string GetStatusString() const;
38 
40  void ToggleEditingX() {
41  if (editing_mode_ == EditingMode::OrthoPositiveX) {
42  SetEditingMode(EditingMode::OrthoNegativeX);
43  } else {
44  SetEditingMode(EditingMode::OrthoPositiveX);
45  }
46  }
47 
48  void ToggleEditingY() {
49  if (editing_mode_ == EditingMode::OrthoPositiveY) {
50  SetEditingMode(EditingMode::OrthoNegativeY);
51  } else {
52  SetEditingMode(EditingMode::OrthoPositiveY);
53  }
54  }
55 
56  void ToggleEditingZ() {
57  if (editing_mode_ == EditingMode::OrthoPositiveZ) {
58  SetEditingMode(EditingMode::OrthoNegativeZ);
59  } else {
60  SetEditingMode(EditingMode::OrthoPositiveZ);
61  }
62  }
63 
65  bool IsLocked() const { return is_view_locked_; }
66 
67 protected:
70  bool is_view_locked_ = false;
71 };
72 
73 } // namespace visualization
74 } // namespace cloudViewer
void Translate(double x, double y, double xo, double yo) override
Function to process translation.
void Rotate(double x, double y, double xo, double yo) override
Function to process rotation.
View controller for visualizer.
Definition: ViewControl.h:25
Generic file read and write utility for python interface.