15 constexpr
char COMMAND_OPEN_SHIFT_ON_LOAD[] =
"GLOBAL_SHIFT";
16 constexpr
char COMMAND_OPEN_SHIFT_ON_LOAD_AUTO[] =
"AUTO";
17 constexpr
char COMMAND_OPEN_SHIFT_ON_LOAD_FIRST[] =
25 : basename(
name),
path(QDir::currentPath()), indexInFile(-1) {}
28 : indexInFile(_indexInFile) {
31 path = QDir::currentPath();
42 : basename(_basename),
path(_path), indexInFile(_indexInFile) {}
48 const QString &basename,
71 const QString &basename,
95 const QString &basename,
114 : m_silentMode(false),
115 m_autoSaveMode(true),
116 m_addTimestamp(true),
120 const char *command) {
121 return token.startsWith(
"-") && token.mid(1).toUpper() == QString(command);
179 return error(QObject::tr(
"Missing parameter: global shift vector or %1 "
181 .arg(COMMAND_OPEN_SHIFT_ON_LOAD_AUTO,
182 COMMAND_OPEN_SHIFT_ON_LOAD_FIRST,
183 COMMAND_OPEN_SHIFT_ON_LOAD));
186 QString firstParam =
arguments().takeFirst();
188 if (firstParam.toUpper() == COMMAND_OPEN_SHIFT_ON_LOAD_AUTO) {
190 }
else if (firstParam.toUpper() == COMMAND_OPEN_SHIFT_ON_LOAD_FIRST) {
193 return error(QObject::tr(
"Missing parameter: global shift vector after "
194 "'%1' (3 values expected)")
195 .arg(COMMAND_OPEN_SHIFT_ON_LOAD));
199 shiftOnLoadVec.
x = firstParam.toDouble(&ok);
201 return error(QObject::tr(
"Invalid parameter: X coordinate of the "
202 "global shift vector after '%1'")
203 .arg(COMMAND_OPEN_SHIFT_ON_LOAD));
204 shiftOnLoadVec.
y =
arguments().takeFirst().toDouble(&ok);
206 return error(QObject::tr(
"Invalid parameter: Y coordinate of the "
207 "global shift vector after '%1'")
208 .arg(COMMAND_OPEN_SHIFT_ON_LOAD));
209 shiftOnLoadVec.
z =
arguments().takeFirst().toDouble(&ok);
211 return error(QObject::tr(
"Invalid parameter: Z coordinate of the "
212 "global shift vector after '%1'")
213 .arg(COMMAND_OPEN_SHIFT_ON_LOAD));
226 const QString &keyword)
227 : m_name(
name), m_keyword(keyword) {}
234 m_coordinatesShiftEnabled(false),
235 m_coordinatesShift(0, 0, 0) {
Vector3Tpl< double > CCVector3d
Double 3D Vector.
void setNumericalPrecision(int p)
Sets the numerical precision.
bool autoSaveMode() const
void toggleAutoSaveMode(bool state)
void toggleAddTimestamp(bool state)
bool addTimestamp() const
int m_precision
Default numerical precision for ASCII output.
virtual QStringList & arguments()=0
Returns the list of arguments.
std::vector< CLMeshDesc > m_meshes
Currently opened meshes and their filename.
bool nextCommandIsGlobalShift() const
Returns whether the nex command is the '-GLOBAL_SHIFT' option.
bool processGlobalShiftCommand(GlobalShiftOptions &options)
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.
ccCommandLineInterface()
Default constructor.
std::vector< CLCloudDesc > m_clouds
Currently opened point clouds and their filename.
virtual bool error(const QString &message) const =0
static bool IsCommand(const QString &token, const char *command)
Test whether a command line token is a valid command keyword or not.
CLLoadParameters m_loadingParameters
File loading parameters.
void toggleSilentMode(bool state)
Toggles silent mode.
bool silentMode() const
Returns the silent mode.
virtual std::vector< CLMeshDesc > & meshes()
Currently opened meshes and their filename.
virtual ecvProgressDialog * progressDialog()
Returns a (shared) progress dialog (if any is available)
bool m_silentMode
Silent mode.
virtual CLLoadParameters & fileLoadingParams()
File loading parameters.
int numericalPrecision() const
Returns the numerical precision.
virtual QDialog * widgetParent()
Returns a (widget) parent (if any is available)
virtual std::vector< CLCloudDesc > & clouds()
Currently opened point clouds and their filename.
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
ccHObject * getEntity() override
CL_ENTITY_TYPE getCLEntityType() const override
Loaded entity description.
CLEntityDesc(const QString &name)
ccHObject * getEntity() override
CLGroupDesc(ccHObject *group, const QString &basename, const QString &path=QString())
CL_ENTITY_TYPE getCLEntityType() const override
CL_ENTITY_TYPE getCLEntityType() const override
ccHObject * getEntity() override
CCVector3d * coordinatesShift
If applicable, applied shift on load (optional)
ecvGlobalShiftManager::Mode shiftHandlingMode
How to handle big coordinates.
bool alwaysDisplayLoadDialog
bool * coordinatesShiftEnabled
Whether shift on load has been applied after loading (optional)
bool m_coordinatesShiftEnabled
CCVector3d m_coordinatesShift
Command(const QString &name, const QString &keyword)
Default constructor.
CCVector3d customGlobalShift