kDB: Knowledge DataBase
Loading...
Searching...
No Matches
PointSpecification.h
1#pragma once
2
3#include <QSharedDataPointer>
4
5#include <clog_qt>
6#include <cres_qt>
7
8#include <kDBGIS/Forward.h>
9
10namespace kDBPointClouds
11{
13 {
14 public:
15 enum class DataType
16 {
17 UnsignedInteger8,
18 Integer8,
19 UnsignedInteger16,
20 Integer16,
21 UnsignedInteger32,
22 Integer32,
23 UnsignedInteger64,
24 Integer64,
25 Float32,
26 Float64
27 };
28 enum class CompressionMode
29 {
30 None,
31 Dimensional,
32 GHT
33 };
34 struct Dimension
35 {
36 std::size_t position; //< index in the set of value (0, 1, 2, 3...)
37 std::size_t offset; //< offset of the begining of the value
38 QString description; //< description of the field
39 QString name; //< short name
40 DataType type; //< data type of the field
41 double scale; //< scale applied to the value in the field (useful for integers data type)
42 bool operator==(const Dimension& _rhs) const;
43 };
44 public:
45 enum class StandardType : int
46 {
47 XYZf,
48 XYZfRGBui8,
49 FirstCustomType = 100
50 };
51 static PointSpecification get(const kDB::Repository::Connection& _connection,
52 StandardType _type,
53 const Cartography::CoordinateSystem& _coordinates);
54 static PointSpecification get(const kDB::Repository::Connection& _connection, int _pcid);
55 static PointSpecification find(const kDB::Repository::Connection& _connection,
56 const PointSpecification& _spec);
57 public:
64 PointSpecification(int _pcid, const Cartography::CoordinateSystem& _coordinates);
68 PointSpecification(const PointSpecification& _specification,
69 const Cartography::CoordinateSystem& _coordinates);
71 PointSpecification& operator=(const PointSpecification& _rhs);
73 bool operator==(const PointSpecification& _rhs) const;
74 CompressionMode compressionMode() const;
75 void setCompressionMode(CompressionMode _mode);
76 void addDimension(DataType _type, const QString& _name, const QString& _description,
77 double _scale);
78 QList<Dimension> dimensions() const;
82 QString toXML() const;
86 static cres_qresult<PointSpecification> fromXML(const QString& _xml);
87 cres_qresult<void> loadFromXML(const QString& _xml);
92 cres_qresult<void> load(const kDB::Repository::Connection& _connection);
96 bool save(const kDB::Repository::Connection& _connection);
100 bool synchronise(const kDB::Repository::Connection& _connection);
101 Cartography::CoordinateSystem coordinateSystem() const;
102 int pcid() const;
106 std::size_t size() const;
110 bool isValid() const;
111 cres_qresult<QByteArray> md5() const;
112 private:
113 struct Private;
114 QSharedDataPointer<Private> d;
115 };
116} // namespace kDBPointClouds
Definition Revision.h:9
Definition PointSpecification.h:13
static cres_qresult< PointSpecification > fromXML(const QString &_xml)
Definition PointSpecification.cpp:308
std::size_t size() const
Definition PointSpecification.cpp:600
QString toXML() const
Definition PointSpecification.cpp:560
cres_qresult< void > load(const kDB::Repository::Connection &_connection)
Definition PointSpecification.cpp:225
bool synchronise(const kDB::Repository::Connection &_connection)
Definition PointSpecification.cpp:294
bool isValid() const
Definition PointSpecification.cpp:602
bool save(const kDB::Repository::Connection &_connection)
Definition PointSpecification.cpp:239
Definition Connection.h:26
Definition PointSpecification.h:35