ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
PclTransformTool.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 // LOCAL
11 #include "qPCL.h"
12 
13 // CV_DB_LIB
15 
16 // VTK
17 #include <vtkSmartPointer.h>
18 
19 namespace PclUtils {
20 class PCLVis;
21 }
22 
23 class vtkActor;
24 class vtkTransform;
25 class CustomVtkBoxWidget;
27 
29  Q_OBJECT
30 public:
31  explicit PclTransformTool(ecvGenericVisualizer3D* viewer);
33 
37  virtual void setVisualizer(
38  ecvGenericVisualizer3D* viewer = nullptr) override;
39  virtual bool setInputData(ccHObject* entity, int viewport = 0) override;
40 
41  void addActors();
42 
43  virtual void showInteractor(bool state) override;
44 
45  virtual bool start() override;
46  virtual void stop() override;
47  virtual void reset() override;
48  virtual void clear() override;
49 
50  virtual void setTranlationMode(TranslationMOde mode);
51  virtual void setRotationMode(RotationMode mode);
52  virtual void setScaleEnabled(bool state);
53  virtual void setShearEnabled(bool state);
54 
55  virtual const ccGLMatrixd getFinalTransformation() override;
56  virtual void getOutput(std::vector<ccHObject*>& out) override;
57 
58 private:
59  std::vector<vtkActor*> m_modelActors;
60  vtkSmartPointer<CustomVtkBoxWidget> m_boxWidgetTransformer;
61  vtkSmartPointer<vtkTransform> m_originTrans;
62  PclUtils::PCLVis* m_viewer;
63 };
The CustomVtkBoxWidget class CustomVtkBoxWidget restricts the transformation.
Double version of ccGLMatrixTpl.
Definition: ecvGLMatrix.h:56
Hierarchical CLOUDVIEWER Object.
Definition: ecvHObject.h:25
Generic Annotation Tool interface.
virtual void setVisualizer(ecvGenericVisualizer3D *viewer=nullptr)=0
virtual bool setInputData(ccHObject *entity, int viewport=0)
virtual const ccGLMatrixd getFinalTransformation()=0
virtual void clear()=0
virtual void reset()=0
virtual void setTranlationMode(TranslationMOde mode)=0
virtual void setShearEnabled(bool state)=0
virtual void getOutput(std::vector< ccHObject * > &out)=0
virtual void showInteractor(bool state)=0
RotationMode
Default constructor.
virtual void setScaleEnabled(bool state)=0
virtual void setRotationMode(RotationMode mode)=0
virtual bool start()=0
virtual void stop()=0
Generic visualizer 3D interface.
#define QPCL_ENGINE_LIB_API
Definition: qPCL.h:15