ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
qPCLBase.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 "ecvPclPluginInterface.h"
11 
12 // Qt
13 #include <QObject>
14 #include <QtGui>
15 
16 class BasePclModule;
17 
19 class qPCL : public QObject, public ccPclPluginInterface {
20  Q_OBJECT
22  Q_PLUGIN_METADATA(IID "ecvcorp.cloudviewer.plugin.qPCL" FILE "../info.json")
23 
24 public:
26  qPCL(QObject* parent = nullptr);
28  virtual ~qPCL() override = default;
29 
30  // inherited from ccPclPluginInterface
31  virtual void onNewSelection(
32  const ccHObject::Container& selectedEntities) override;
33  virtual QVector<QList<QAction*>> getActions() override;
34  virtual QVector<QString> getModuleNames() override;
35 
36  virtual void stop() override;
37 
38 public slots:
41 
44 
46  void handleErrorMessage(QString);
47 
48 protected:
50  int addPclModule(BasePclModule* module, QList<QAction*>& actions);
51 
53  std::vector<BasePclModule*> m_modules;
54  QVector<QString> m_moduleNames;
55 };
#define slots
Base abstract class for each implemented PCL filter.
Definition: BasePclModule.h:53
Hierarchical CLOUDVIEWER Object.
Definition: ecvHObject.h:25
std::vector< ccHObject * > Container
Standard instances container (for children, etc.)
Definition: ecvHObject.h:337
Pcl ECV plugin interface.
Standard ECV plugin interface.
PCL bridge plugin.
Definition: qPCLBase.h:19
virtual void stop() override
Stops the plugin.
Definition: qPCLBase.cpp:51
void handleEntityChange(ccHObject *)
Handles entity (visual) modification.
Definition: qPCLBase.cpp:64
virtual void onNewSelection(const ccHObject::Container &selectedEntities) override
Definition: qPCLBase.cpp:158
std::vector< BasePclModule * > m_modules
Loaded modules.
Definition: qPCLBase.h:53
void handleNewEntity(ccHObject *)
Handles new entity.
Definition: qPCLBase.cpp:58
virtual QVector< QList< QAction * > > getActions() override
Get a list of actions for this plugin.
Definition: qPCLBase.cpp:75
virtual ~qPCL() override=default
Destructor.
void handleErrorMessage(QString)
Handles new error message.
Definition: qPCLBase.cpp:70
qPCL(QObject *parent=nullptr)
Default constructor.
Definition: qPCLBase.cpp:48
int addPclModule(BasePclModule *module, QList< QAction * > &actions)
Adds a pcl module.
Definition: qPCLBase.cpp:133
QVector< QString > m_moduleNames
Definition: qPCLBase.h:54
virtual QVector< QString > getModuleNames() override
Definition: qPCLBase.cpp:131