ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvCommandLineParser.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 // interface
12 
13 // Local
14 #include "ecvPluginManager.h"
15 
16 class ecvProgressDialog;
17 class QDialog;
18 
21 public:
23  static int Parse(int nargs, char** args, ccPluginInterfaceList& plugins);
24 
26  ~ccCommandLineParser() override;
27 
28  // inherited from ccCommandLineInterface
29  QString getExportFilename(const CLEntityDesc& entityDesc,
30  QString extension = QString(),
31  QString suffix = QString(),
32  QString* baseOutputFilename = nullptr,
33  bool forceNoTimestamp = false) const override;
34  QString exportEntity(CLEntityDesc& entityDesc,
35  const QString& suffix = QString(),
36  QString* baseOutputFilename = nullptr,
37  ccCommandLineInterface::ExportOptions options =
38  ExportOption::NoOptions) override;
39  void removeClouds(bool onlyLast = false) override;
40  void removeMeshes(bool onlyLast = false) override;
41  QStringList& arguments() override { return m_arguments; }
42  const QStringList& arguments() const override { return m_arguments; }
43  bool registerCommand(Command::Shared command) override;
44  QDialog* widgetParent() override { return m_parentWidget; }
45  void print(const QString& message) const override;
46  void warning(const QString& message) const override;
47  bool error(const QString& message)
48  const override; // must always return false!
49  bool saveClouds(QString suffix = QString(),
50  bool allAtOnce = false,
51  const QString* allAtOnceFileName = nullptr) override;
52  bool saveMeshes(QString suffix = QString(),
53  bool allAtOnce = false,
54  const QString* allAtOnceFileName = nullptr) override;
55  bool importFile(QString filename,
56  const GlobalShiftOptions& globalShiftOptions,
57  FileIOFilter::Shared filter =
58  FileIOFilter::Shared(nullptr)) override;
59  QString cloudExportFormat() const override { return m_cloudExportFormat; }
60  QString cloudExportExt() const override { return m_cloudExportExt; }
61  QString meshExportFormat() const override { return m_meshExportFormat; }
62  QString meshExportExt() const override { return m_meshExportExt; }
63  QString hierarchyExportFormat() const override {
64  return m_hierarchyExportFormat;
65  }
66  QString hierarchyExportExt() const override { return m_hierarchyExportExt; }
67  void setCloudExportFormat(QString format, QString ext) override {
68  m_cloudExportFormat = format;
69  m_cloudExportExt = ext;
70  }
71  void setMeshExportFormat(QString format, QString ext) override {
72  m_meshExportFormat = format;
73  m_meshExportExt = ext;
74  }
75  void setHierarchyExportFormat(QString format, QString ext) override {
76  m_hierarchyExportFormat = format;
77  m_hierarchyExportExt = ext;
78  }
79 
80 protected: // other methods
82 
85 
87 
88  void cleanup();
89 
91  int start(QDialog* parent = 0);
92 
93 private: // members
96  QString m_cloudExportFormat;
98  QString m_cloudExportExt;
101  QString m_meshExportFormat;
103  QString m_meshExportExt;
106  QString m_hierarchyExportFormat;
108  QString m_hierarchyExportExt;
109 
111  QString m_meshFilename;
112 
114  QStringList m_arguments;
115 
117  QMap<QString, Command::Shared> m_commands;
118 
120  ccHObject m_orphans;
121 
123  ecvProgressDialog* m_progressDialog;
124 
126  QDialog* m_parentWidget;
127 };
std::string filename
filament::Texture::InternalFormat format
QSharedPointer< FileIOFilter > Shared
Shared type.
Definition: FileIOFilter.h:97
Command line interface.
Command line parser.
int start(QDialog *parent=0)
Parses the command line.
bool error(const QString &message) const override
void print(const QString &message) const override
QString hierarchyExportFormat() const override
Returns the current hierarchy(ies) export format.
QString meshExportExt() const override
Returns the current mesh(es) export extension (warning: can be anything)
QString cloudExportFormat() const override
Returns the current cloud(s) export format.
bool saveClouds(QString suffix=QString(), bool allAtOnce=false, const QString *allAtOnceFileName=nullptr) override
Saves all clouds.
void setHierarchyExportFormat(QString format, QString ext) override
Sets the current hierarchy(ies) export format and extension.
bool saveMeshes(QString suffix=QString(), bool allAtOnce=false, const QString *allAtOnceFileName=nullptr) override
Saves all meshes.
QStringList & arguments() override
Returns the list of arguments.
bool importFile(QString filename, const GlobalShiftOptions &globalShiftOptions, FileIOFilter::Shared filter=FileIOFilter::Shared(nullptr)) override
Loads a file with a specific filter.
bool registerCommand(Command::Shared command) override
QString getExportFilename(const CLEntityDesc &entityDesc, QString extension=QString(), QString suffix=QString(), QString *baseOutputFilename=nullptr, bool forceNoTimestamp=false) const override
Returns the name of a to-be-exported entity.
~ccCommandLineParser() override
Destructor.
ccCommandLineParser()
Default constructor.
QString cloudExportExt() const override
Returns the current cloud(s) export extension (warning: can be anything)
QDialog * widgetParent() override
Returns a (widget) parent (if any is available)
const QStringList & arguments() const override
Returns the list of arguments (const version)
void setCloudExportFormat(QString format, QString ext) override
Sets the current cloud(s) export format and extension.
void setMeshExportFormat(QString format, QString ext) override
Sets the current mesh(es) export format and extension.
void removeClouds(bool onlyLast=false) override
Removes all clouds (or only the last one ;)
QString exportEntity(CLEntityDesc &entityDesc, const QString &suffix=QString(), QString *baseOutputFilename=nullptr, ccCommandLineInterface::ExportOptions options=ExportOption::NoOptions) override
Exports a cloud or a mesh.
void removeMeshes(bool onlyLast=false) override
Removes all meshes (or only the last one ;)
QString hierarchyExportExt() const override
static int Parse(int nargs, char **args, ccPluginInterfaceList &plugins)
Parses the input command.
void warning(const QString &message) const override
QString meshExportFormat() const override
Returns the current mesh(es) export format.
Hierarchical CLOUDVIEWER Object.
Definition: ecvHObject.h:25
Graphical progress indicator (thread-safe)
QVector< ccPluginInterface * > ccPluginInterfaceList
Simply a list of.
Loaded entity description.
QSharedPointer< Command > Shared
Shared type.