24 return cmd.
error(QString(
"Missing parameter: parameters filename "
30 QString paramFilename(cmd.
arguments().takeFirst());
31 cmd.
print(QString(
"Parameters file: '%1'").arg(paramFilename));
33 if (cmd.
clouds().size() < 2) {
35 "Not enough clouds loaded (2 or 3 are expected: cloud 1, "
36 "cloud 2 and optionally some core points)");
45 (cmd.
clouds().size() > 2 ? cmd.
clouds()[2].pc :
nullptr);
59 return cmd.
error(errorMessage);
65 cmd.
clouds()[0].basename + QObject::tr(
"_M3C2"),
69 cloudDesc, QString(), 0,
71 if (!errorStr.isEmpty()) {
76 cmd.
clouds().push_back(cloudDesc);
bool autoSaveMode() const
virtual QStringList & arguments()=0
Returns the list of arguments.
virtual void print(const QString &message) const =0
virtual bool error(const QString &message) const =0
bool silentMode() const
Returns the silent mode.
virtual QString exportEntity(CLEntityDesc &entityDesc, const QString &suffix=QString(), QString *outputFilename=nullptr, ccCommandLineInterface::ExportOptions options=ExportOption::NoOptions)=0
Exports a cloud or a mesh.
virtual QDialog * widgetParent()
Returns a (widget) parent (if any is available)
virtual std::vector< CLCloudDesc > & clouds()
Currently opened point clouds and their filename.
static ccPointCloud * ToPointCloud(ccHObject *obj, bool *isLockedVertices=nullptr)
Converts current object to 'equivalent' ccPointCloud.
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
M3C2 plugin's main dialog.
void setCorePointsCloud(ccPointCloud *cloud)
Sets the core points cloud.
bool loadParamsFromFile(QString filename)
Loads parameters from persistent settings.
static bool Compute(const qM3C2Dialog &dlg, QString &errorMessage, ccPointCloud *&outputCloud, bool allowDialogs, QWidget *parentWidget=nullptr, ecvMainAppInterface *app=nullptr)
static const char COMMAND_M3C2[]
Loaded cloud description.
virtual bool process(ccCommandLineInterface &cmd) override
Main process.
Generic command interface.
Command(const QString &name, const QString &keyword)
Default constructor.