kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Point.h
1#pragma once
2
3#include <clog_qt>
4#include <cres_qt>
5
6#include "EuclidSystem.h"
7#include <Cartography/Point.h>
8
9namespace knowGIS
10{
11 class Point : public Cartography::Point
12 {
13 public:
14 using Cartography::Point::Point;
15 Point(const Cartography::Point& _rhs) : Cartography::Point(_rhs) {}
16 QByteArray md5() const;
17 QJsonValue toJsonValue() const;
18 static cres_qresult<Point> fromJsonValue(const QJsonValue& _value);
19 QCborValue toCborValue() const;
20 static cres_qresult<Point> fromCborValue(const QCborValue& _value);
21 };
22} // namespace knowGIS
23
24#include <Cartography/CoordinateSystem.h>
25#include <knowCore/Formatter.h>
26clog_format_declare_formatter(knowGIS::Point)
27{
28 if(p.isValid())
29 {
30 int srid = p.coordinateSystem().isValid() ? p.coordinateSystem().srid() : -1;
31 return std::format_to(ctx.out(), "[{} {} {}]@{}", p.x(), p.y(), p.z(), srid);
32 }
33 else
34 {
35 return std::format_to(ctx.out(), "[invalid point]");
36 }
37}
38
39#include <knowCore/MetaType.h>
40KNOWCORE_DECLARE_FULL_METATYPE(knowGIS, Point);
Definition Point.h:12