ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvGenericTransformTool.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 "CV_db.h"
11 #include "ecvGLMatrix.h"
12 
13 // QT
14 #include <QFile>
15 
16 class ccHObject;
18 
20 class CV_DB_LIB_API ecvGenericTransformTool : public QObject {
21  Q_OBJECT
22 public:
24 
28  enum RotationMode { R_XYZ, R_X, R_Y, R_Z };
29 
30  enum TranslationMOde { T_X, T_Y, T_Z, T_XY, T_XZ, T_ZY, T_XYZ, T_NONE };
31 
33  virtual ~ecvGenericTransformTool() = default;
34 
35  ccHObject* getAssociatedEntity() { return m_associatedEntity; }
36 
37 public:
38  virtual void setVisualizer(ecvGenericVisualizer3D* viewer = nullptr) = 0;
39  virtual bool setInputData(ccHObject* entity, int viewport = 0);
40 
41  virtual void showInteractor(bool state) = 0;
42 
43  virtual bool start() = 0;
44  virtual void stop() = 0;
45  virtual void reset() = 0;
46  virtual void clear() = 0;
47  virtual void setTranlationMode(TranslationMOde mode) = 0;
48  virtual void setRotationMode(RotationMode mode) = 0;
49  virtual void setScaleEnabled(bool state) = 0;
50  virtual void setShearEnabled(bool state) = 0;
51 
52  virtual const ccGLMatrixd getFinalTransformation() = 0;
53 
54  virtual void getOutput(std::vector<ccHObject*>& out) = 0;
55 
56 signals:
57  void tranformMatrix(const ccGLMatrixd& transMatrix);
58 
59 protected:
61 };
#define CV_DB_LIB_API
Definition: CV_db.h:15
#define signals
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 const ccGLMatrixd getFinalTransformation()=0
void tranformMatrix(const ccGLMatrixd &transMatrix)
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 ~ecvGenericTransformTool()=default
virtual void setRotationMode(RotationMode mode)=0
virtual bool start()=0
virtual void stop()=0
virtual bool setInputData(ccHObject *entity, int viewport=0)
Generic visualizer 3D interface.