19 #include <QSharedPointer>
21 #include <QStringList>
43 int _indexInFile = -1);
57 const QString& basename,
58 const QString&
path = QString());
63 const ccHObject* getEntity()
const override;
78 const QString& basename,
85 const ccHObject* getEntity()
const override;
100 const QString& basename,
107 const ccHObject* getEntity()
const override;
123 ForceHierarchy = 0x4,
124 ForceNoTimestamp = 0x8
126 Q_DECLARE_FLAGS(ExportOptions, ExportOption)
135 Command(
const QString&
name,
const QString& keyword);
149 static bool IsCommand(
const QString& token,
const char* command);
159 QString extension = QString(),
160 QString suffix = QString(),
161 QString* baseOutputFilename =
nullptr,
162 bool forceNoTimestamp =
false)
const = 0;
168 const QString& suffix = QString(),
169 QString* outputFilename =
nullptr,
170 ccCommandLineInterface::ExportOptions options =
171 ExportOption::NoOptions) = 0;
179 bool allAtOnce =
false,
180 const QString* allAtOnceFileName =
nullptr) = 0;
188 bool allAtOnce =
false,
189 const QString* allAtOnceFileName =
nullptr) = 0;
205 virtual QDialog* widgetParent();
267 virtual void print(
const QString& message)
const = 0;
268 virtual void warning(
const QString& message)
const = 0;
270 const QString& message)
const = 0;
274 virtual std::vector<CLCloudDesc>& clouds();
276 virtual const std::vector<CLCloudDesc>& clouds()
const;
279 virtual std::vector<CLMeshDesc>& meshes();
281 virtual const std::vector<CLMeshDesc>& meshes()
const;
285 void toggleSilentMode(
bool state);
287 bool silentMode()
const;
291 void toggleAutoSaveMode(
bool state);
294 bool autoSaveMode()
const;
298 void toggleAddTimestamp(
bool state);
301 bool addTimestamp()
const;
304 void setNumericalPrecision(
int p);
306 int numericalPrecision()
const;
310 bool nextCommandIsGlobalShift()
const;
filament::Texture::InternalFormat format
QSharedPointer< FileIOFilter > Shared
Shared type.
virtual QString hierarchyExportExt() const =0
virtual QString cloudExportExt() const =0
Returns the current cloud(s) export extension (warning: can be anything)
int m_precision
Default numerical precision for ASCII output.
virtual QStringList & arguments()=0
Returns the list of arguments.
virtual bool saveClouds(QString suffix=QString(), bool allAtOnce=false, const QString *allAtOnceFileName=nullptr)=0
Saves all clouds.
virtual void warning(const QString &message) const =0
std::vector< CLMeshDesc > m_meshes
Currently opened meshes and their filename.
virtual QString hierarchyExportFormat() const =0
Returns the current hierarchy(ies) export format.
virtual const QStringList & arguments() const =0
Returns the list of arguments (const version)
virtual void print(const QString &message) const =0
virtual QString meshExportExt() const =0
Returns the current mesh(es) export extension (warning: can be anything)
bool m_autoSaveMode
Whether files should be automatically saved (after each process) or not.
bool m_addTimestamp
Whether a timestamp should be automatically added to output files or not.
std::vector< CLCloudDesc > m_clouds
Currently opened point clouds and their filename.
virtual QString getExportFilename(const CLEntityDesc &entityDesc, QString extension=QString(), QString suffix=QString(), QString *baseOutputFilename=nullptr, bool forceNoTimestamp=false) const =0
Returns the name of a to-be-exported entity.
virtual bool error(const QString &message) const =0
virtual QString meshExportFormat() const =0
Returns the current mesh(es) export format.
virtual QString cloudExportFormat() const =0
Returns the current cloud(s) export format.
CLLoadParameters m_loadingParameters
File loading parameters.
virtual bool importFile(QString filename, const GlobalShiftOptions &globalShiftOptions, FileIOFilter::Shared filter=FileIOFilter::Shared(nullptr))=0
Loads a file with a specific filter.
virtual void setCloudExportFormat(QString format, QString ext)=0
Sets the current cloud(s) export format and extension.
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 bool registerCommand(Command::Shared command)=0
Registers a new command.
bool m_silentMode
Silent mode.
virtual void removeClouds(bool onlyLast=false)=0
Removes all clouds (or only the last one ;)
virtual void removeMeshes(bool onlyLast=false)=0
Removes all meshes (or only the last one ;)
virtual bool saveMeshes(QString suffix=QString(), bool allAtOnce=false, const QString *allAtOnceFileName=nullptr)=0
Saves all meshes.
virtual ~ccCommandLineInterface()=default
virtual void setHierarchyExportFormat(QString format, QString ext)=0
Sets the current hierarchy(ies) export format and extension.
virtual void setMeshExportFormat(QString format, QString ext)=0
Sets the current mesh(es) export format and extension.
Hierarchical CLOUDVIEWER Object.
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
Graphical progress indicator (thread-safe)
static const std::string path
Loaded cloud description.
~CLCloudDesc() override=default
Loaded entity description.
virtual CL_ENTITY_TYPE getCLEntityType() const =0
virtual ccHObject * getEntity()=0
virtual ~CLEntityDesc()=default
virtual const ccHObject * getEntity() const =0
Loaded group description.
~CLGroupDesc() override=default
~CLMeshDesc() override=default
Generic loading parameters.
bool m_coordinatesShiftEnabled
CCVector3d m_coordinatesShift
Generic command interface.
QString m_keyword
Command keyword.
QSharedPointer< Command > Shared
Shared type.
QString m_name
Command name.
virtual bool process(ccCommandLineInterface &cmd)=0
Main process.
virtual ~Command()=default
CCVector3d customGlobalShift