4#include <QSharedDataPointer>
6#include <kDBGIS/Forward.h>
11#include <knowValues/Forward.h>
15namespace kDBPointClouds
25 Q_DECLARE_FLAGS(PGWKBFlags, PGWKBFlag)
32 bool operator==(
const Patch& _rhs)
const;
50 void append(
const Point& _point);
51 template<
typename... Types>
52 inline void append(
const std::tuple<Types...>& _values);
53 template<
typename... Types>
54 void append(Types... _values)
56 append(std::make_tuple(_values...));
58 std::size_t pointsCount()
const;
59 template<
typename... Types>
60 inline std::tuple<Types...> get(std::size_t _index)
const;
61 Point get(std::size_t _index)
const;
67 QByteArray
toPGWKB(PGWKBFlags _flags = PGWKBFlag::Default)
const;
68 static cres_qresult<Patch> fromPGWKB(
const QByteArray&,
70 PGWKBFlags _flags = PGWKBFlag::Default);
78 static cres_qresult<Patch> fromPGWKB(
const QByteArray& _data,
80 PGWKBFlags _flags = PGWKBFlag::Default);
88 QByteArray
data()
const;
92 Patch transform(
const Cartography::CoordinateSystem& _coordinateSystem,
double _tx = 0.0,
93 double _ty = 0.0,
double _tz = 0.0)
const;
94 cres_qresult<QByteArray> md5()
const;
110 static Patch create(
const knowValues::Values::PointCloud& _rhs);
116 std::size_t prepareNextPointInsertion();
117 std::size_t pointSize()
const;
118 QByteArray& data_ref();
121 QSharedDataPointer<Private> d;
124 template<
typename... Types>
125 void Patch::append(
const std::tuple<Types...>& _values)
127 Point::setter<
sizeof...(Types)>::doit(prepareNextPointInsertion(), data_ref(), _values);
129 template<
typename... Types>
130 inline std::tuple<Types...> Patch::get(std::size_t _index)
const
132 std::tuple<Types...> values;
133 Point::getter<
sizeof...(Types)>::doit(_index * pointSize(),
data(), values);
138#include <knowCore/MetaType.h>
139KNOWCORE_DECLARE_FULL_METATYPE(kDBPointClouds, Patch);
bool isValid() const
Definition Patch.cpp:212
static Patch create(const knowValues::Values::PointCloud &_rhs)
Definition Patch.cpp:327
Cartography::CoordinateSystem coordinateSystem() const
bool synchroniseSpecification(const kDB::Repository::Connection &_connection)
Definition Patch.cpp:62
knowValues::Values::PointCloud toValuesPointCloud(const knowGIS::Pose &_pose, const knowGIS::GeometryObject &_geometry, const knowCore::Timestamp &_timestamp)
Definition Patch.cpp:311
QByteArray toPGWKB(PGWKBFlags _flags=PGWKBFlag::Default) const
Definition Patch.cpp:181
QByteArray data() const
Definition Patch.cpp:104
void reserve(std::size_t _pts)
Definition Patch.cpp:67
Patch transform(const Cartography::CoordinateSystem &_coordinateSystem, double _tx=0.0, double _ty=0.0, double _tz=0.0) const
Definition Patch.cpp:214
PointSpecification specification() const
Definition Patch.cpp:60
knowValues::Values::Lidar3DScan toValuesLidar3DScan(const knowGIS::Pose &_pose, const knowCore::Timestamp &_timestamp)
Definition Patch.cpp:320
Definition PointSpecification.h:13
Definition Connection.h:26
Definition Timestamp.h:39
Definition GeometryObject.h:24