21 #include <QMainWindow>
23 qM3C2Plugin::qM3C2Plugin(QObject* parent)
30 m_action->setEnabled(selectedEntities.size() == 2 &&
35 m_selectedEntities = selectedEntities;
38 QList<QAction*> qM3C2Plugin::getActions() {
40 m_action =
new QAction(
getName(),
this);
43 connect(m_action, &QAction::triggered,
this, &qM3C2Plugin::doAction);
46 return QList<QAction*>{m_action};
49 void qM3C2Plugin::doAction() {
57 if (m_selectedEntities.size() != 2 ||
85 dlg.saveParamsToPersistentSettings();
static bool show(ecvMainAppInterface *app)
virtual bool registerCommand(Command::Shared command)=0
Registers a new command.
virtual QString getName() const override
Returns (short) name (for menu entry, etc.)
virtual QString getDescription() const override
Returns long name/description (for tooltip, etc.)
virtual QIcon getIcon() const override
Returns icon.
static ccPointCloud * ToPointCloud(ccHObject *obj, bool *isLockedVertices=nullptr)
Converts current object to 'equivalent' ccPointCloud.
std::vector< ccHObject * > Container
Standard instances container (for children, etc.)
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Standard ECV plugin interface.
ecvMainAppInterface * m_app
Main application interface.
virtual QMainWindow * getMainWindow()=0
Returns main window.
virtual void dispToConsole(QString message, ConsoleMessageLevel level=STD_CONSOLE_MESSAGE)=0
M3C2 plugin's main dialog.
static bool Compute(const qM3C2Dialog &dlg, QString &errorMessage, ccPointCloud *&outputCloud, bool allowDialogs, QWidget *parentWidget=nullptr, ecvMainAppInterface *app=nullptr)
QSharedPointer< Command > Shared
Shared type.