File: ccCommandLineParser.h

package info (click to toggle)
cloudcompare 2.11.3-7.1
  • links: PTS
  • area: main
  • in suites: bookworm
  • size: 58,224 kB
  • sloc: cpp: 229,982; ansic: 30,723; makefile: 84; sh: 20
file content (104 lines) | stat: -rw-r--r-- 3,975 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#ifndef CC_COMMAND_LINE_PARSER_HEADER
#define CC_COMMAND_LINE_PARSER_HEADER

//interface
#include "../plugins/ccCommandLineInterface.h"

//Local
#include "ccPluginManager.h"

class ccProgressDialog;
class QDialog;

//! Command line parser
class ccCommandLineParser : public ccCommandLineInterface
{
public:

	//! Parses the input command
	static int Parse(int nargs, char** args, ccPluginInterfaceList& plugins);

	//! Destructor
	~ccCommandLineParser() override;

	//inherited from ccCommandLineInterface
	QString getExportFilename(	const CLEntityDesc& entityDesc,
								QString extension = QString(),
								QString suffix = QString(),
								QString* baseOutputFilename = nullptr,
								bool forceNoTimestamp = false) const override;
	QString exportEntity(	CLEntityDesc& entityDesc,
							const QString& suffix = QString(),
							QString* baseOutputFilename = nullptr,
							ccCommandLineInterface::ExportOptions options = ExportOption::NoOptions) override;
	void removeClouds(bool onlyLast = false) override;
	void removeMeshes(bool onlyLast = false) override;
	QStringList& arguments() override { return m_arguments; }
	const QStringList& arguments() const override { return m_arguments; }
	bool registerCommand(Command::Shared command) override;
	QDialog* widgetParent() override { return m_parentWidget; }
	void print(const QString& message) const override;
	void warning(const QString& message) const override;
	bool error(const QString& message) const override; //must always return false!
	bool saveClouds(QString suffix = QString(), bool allAtOnce = false, const QString* allAtOnceFileName = nullptr) override;
	bool saveMeshes(QString suffix = QString(), bool allAtOnce = false, const QString* allAtOnceFileName = nullptr) override;
	bool importFile(QString filename, FileIOFilter::Shared filter = FileIOFilter::Shared(nullptr)) override;
	QString cloudExportFormat() const override { return m_cloudExportFormat; }
	QString cloudExportExt() const override { return m_cloudExportExt; }
	QString meshExportFormat() const override { return m_meshExportFormat; }
	QString meshExportExt() const override { return m_meshExportExt; }
	QString hierarchyExportFormat() const override { return m_hierarchyExportFormat; }
	QString hierarchyExportExt() const override { return m_hierarchyExportExt; }
	void setCloudExportFormat(QString format, QString ext) override { m_cloudExportFormat = format; m_cloudExportExt = ext; }
	void setMeshExportFormat(QString format, QString ext) override { m_meshExportFormat = format; m_meshExportExt = ext; }
	void setHierarchyExportFormat(QString format, QString ext) override { m_hierarchyExportFormat = format; m_hierarchyExportExt = ext; }

protected: //other methods

	//! Default constructor
	/** Shouldn't be called by user.
	**/
	ccCommandLineParser();
   
   void  registerBuiltInCommands();
   
   void  cleanup();

	//! Parses the command line
	int start(QDialog* parent = nullptr);

private: //members

	//! Current cloud(s) export format (can be modified with the 'COMMAND_CLOUD_EXPORT_FORMAT' option)
	QString m_cloudExportFormat;
	//! Current cloud(s) export extension (warning: can be anything)
	QString m_cloudExportExt;
	//! Current mesh(es) export format (can be modified with the 'COMMAND_MESH_EXPORT_FORMAT' option)
	QString m_meshExportFormat;
	//! Current mesh(es) export extension (warning: can be anything)
	QString m_meshExportExt;
	//! Current hierarchy(ies) export format (can be modified with the 'COMMAND_HIERARCHY_EXPORT_FORMAT' option)
	QString m_hierarchyExportFormat;
	//! Current hierarchy(ies) export extension (warning: can be anything)
	QString m_hierarchyExportExt;

	//! Mesh filename
	QString m_meshFilename;

	//! Arguments
	QStringList m_arguments;

	//! Registered commands
	QMap< QString, Command::Shared > m_commands;

	//! Oprhan entities
	ccHObject m_orphans;

	//! Shared progress dialog
	ccProgressDialog* m_progressDialog;

	//! Widget parent
	QDialog* m_parentWidget;
};

#endif