forked from dgirardeau/q3DMASC
/
DualCloudFeature.h
80 lines (69 loc) · 2.67 KB
/
DualCloudFeature.h
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
#pragma once
//##########################################################################
//# #
//# CLOUDCOMPARE PLUGIN: q3DMASC #
//# #
//# This program is free software; you can redistribute it and/or modify #
//# it under the terms of the GNU General Public License as published by #
//# the Free Software Foundation; version 2 or later of the License. #
//# #
//# This program is distributed in the hope that it will be useful, #
//# but WITHOUT ANY WARRANTY; without even the implied warranty of #
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
//# GNU General Public License for more details. #
//# #
//# COPYRIGHT: Dimitri Lague / CNRS / UEB #
//# #
//##########################################################################
//Local
#include "FeaturesInterface.h"
namespace masc
{
//! Dual-cloud feature
struct DualCloudFeature : public Feature
{
public: //DualCloudFeatureType
enum DualCloudFeatureType
{
Invalid = 0
, IDIFF
};
static QString ToString(DualCloudFeatureType type)
{
switch (type)
{
case Invalid:
return "Invalid";
case IDIFF:
return "IDIFF";
default:
assert(false);
break;
}
return "Invalid";
}
static inline DualCloudFeatureType FromString(const QString& token) { return FromUpperString(token.toUpper()); }
static DualCloudFeatureType FromUpperString(const QString& token)
{
if (token == "IDIFF")
return IDIFF;
return Invalid;
}
public: //methods
//! Default constructor
DualCloudFeature(DualCloudFeatureType p_type)
: type(p_type)
{}
//inherited from Feature
virtual Type getType() const override { return Type::DualCloudFeature; }
virtual Feature::Shared clone() const override { return Feature::Shared(new DualCloudFeature(*this)); }
virtual bool prepare(const CorePoints& corePoints, QString& error,
CCCoreLib::GenericProgressCallback* progressCb = nullptr, SFCollector* generatedScalarFields = nullptr) override;
virtual bool checkValidity(QString corePointRole, QString &error) const override;
virtual QString toString() const override;
//! Dual-cloud feature type
/** \warning different from the feature type
**/
DualCloudFeatureType type;
};
}