ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
moveactorinteractorstyle.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 
10 #include <vtkInteractorStyleTrackballCamera.h>
11 #include <vtkSmartPointer.h>
12 
13 #include <QObject>
14 
15 #include "../qPCL.h"
16 
17 namespace VtkUtils {
18 
20  : public QObject,
21  public vtkInteractorStyleTrackballCamera {
22  Q_OBJECT
23 public:
25  vtkTypeMacro(MoveActorInteractorStyle, vtkInteractorStyleTrackballCamera);
26 
27  virtual void OnLeftButtonDown();
28  virtual void OnLeftButtonUp();
29  virtual void Rotate();
30  virtual void Spin();
31  virtual void OnMouseMove();
32  virtual void OnChar();
33 
34  void setHighlightActor(bool highlight);
35  bool highlightActor() const;
36 
37  // Todo: add some signals
38 signals:
39  void actorMoved(vtkActor *actor);
40 
41 protected:
42  explicit MoveActorInteractorStyle(QObject *parent = 0);
43 
44 protected:
46 
47  bool m_useHighlight = true;
49 };
50 
51 } // namespace VtkUtils
#define signals
static MoveActorInteractorStyle * New()
vtkTypeMacro(MoveActorInteractorStyle, vtkInteractorStyleTrackballCamera)
vtkSmartPointer< vtkActor > m_highlightActor
vtkSmartPointer< vtkActor > m_pickedActor
void actorMoved(vtkActor *actor)
#define QPCL_ENGINE_LIB_API
Definition: qPCL.h:15