kDB: Knowledge DataBase
Loading...
Searching...
No Matches
PointSpecification.h
1#pragma once
2
3#include <QSharedDataPointer>
4
5#include <knowCore/ReturnValue.h>
6
7#include <kDBGIS/Forward.h>
8
9namespace kDBPointClouds
10{
12 {
13 public:
14 enum class DataType {
15 UnsignedInteger8,
16 Integer8,
17 UnsignedInteger16,
18 Integer16,
19 UnsignedInteger32,
20 Integer32,
21 UnsignedInteger64,
22 Integer64,
23 Float32,
24 Float64
25 };
26 enum class CompressionMode {
27 None,
28 Dimensional,
29 GHT
30 };
31 struct Dimension
32 {
33 std::size_t position; //< index in the set of value (0, 1, 2, 3...)
34 std::size_t offset; //< offset of the begining of the value
35 QString description; //< description of the field
36 QString name; //< short name
37 DataType type; //< data type of the field
38 double scale; //< scale applied to the value in the field (useful for integers data type)
39 bool operator==(const Dimension& _rhs) const;
40 };
41 public:
42 enum class StandardType:int
43 {
44 XYZf,
45 XYZfRGBui8,
46 FirstCustomType = 100
47 };
48 static PointSpecification get(const kDB::Repository::Connection& _connection, StandardType _type, const Cartography::CoordinateSystem& _coordinates);
49 static PointSpecification get(const kDB::Repository::Connection& _connection, int _pcid);
50 static PointSpecification find(const kDB::Repository::Connection& _connection, const PointSpecification& _spec);
51 public:
57 PointSpecification(int _pcid, const Cartography::CoordinateSystem& _coordinates);
61 PointSpecification(const PointSpecification& _specification, const Cartography::CoordinateSystem& _coordinates);
63 PointSpecification& operator=(const PointSpecification& _rhs);
65 bool operator==(const PointSpecification& _rhs) const;
66 CompressionMode compressionMode() const;
67 void setCompressionMode(CompressionMode _mode);
68 void addDimension(DataType _type, const QString& _name, const QString& _description, double _scale);
69 QList<Dimension> dimensions() const;
73 QString toXML() const;
77 static knowCore::ReturnValue<PointSpecification> fromXML(const QString& _xml);
78 knowCore::ReturnVoid loadFromXML(const QString& _xml);
82 knowCore::ReturnVoid load(const kDB::Repository::Connection& _connection);
86 bool save(const kDB::Repository::Connection& _connection);
90 bool synchronise(const kDB::Repository::Connection& _connection);
91 Cartography::CoordinateSystem coordinateSystem() const;
92 int pcid() const;
96 std::size_t size() const;
100 bool isValid() const;
101 knowCore::ReturnValue<QByteArray> md5() const;
102 private:
103 struct Private;
104 QSharedDataPointer<Private> d;
105 };
106}
Definition Revision.h:9
Definition PointSpecification.h:12
std::size_t size() const
Definition PointSpecification.cpp:544
QString toXML() const
Definition PointSpecification.cpp:501
static knowCore::ReturnValue< PointSpecification > fromXML(const QString &_xml)
Definition PointSpecification.cpp:284
knowCore::ReturnVoid load(const kDB::Repository::Connection &_connection)
Definition PointSpecification.cpp:214
bool synchronise(const kDB::Repository::Connection &_connection)
Definition PointSpecification.cpp:272
bool isValid() const
Definition PointSpecification.cpp:549
bool save(const kDB::Repository::Connection &_connection)
Definition PointSpecification.cpp:227
Definition Connection.h:25
Definition PointSpecification.h:32