knowL: Knowledge Libraries
Loading...
Searching...
No Matches
GeoPose.h
1#pragma once
2
3#include <knowGIS/GeoPoint.h>
4
5#include "Pose.h"
6
7namespace knowGIS
8{
9 class GeoPose
10 {
11 public:
12 static GeoPose zero() { GeoPose p; p.m_set = true; return p; }
13 GeoPose() : m_set(false) {}
14 GeoPose(const Pose& _pose) : m_set(true), m_position(_pose.position()), m_orientation(_pose.orientation()) {}
15 GeoPose(const knowGIS::GeoPoint& _position, const Quaternion& _orientation) : m_set(true), m_position(_position), m_orientation(_orientation) {}
16 ~GeoPose() {}
17 knowGIS::GeoPoint position() const { return m_position; }
18 Quaternion orientation() const { return m_orientation; }
19 bool operator==(const GeoPose& _rhs) const { return m_position == _rhs.m_position and m_orientation == _rhs.m_orientation; }
20 Pose transform(const Cartography::CoordinateSystem& _coordinateSystem) const;
21 operator Pose() const;
25 bool isSet() const { return m_set; }
26 private:
27 bool m_set;
28 knowGIS::GeoPoint m_position;
29 Quaternion m_orientation;
30 };
31}
32
33#include <knowCore/Formatter.h>
34KNOWCORE_CORE_DECLARE_FORMATTER(knowGIS::GeoPose)
35{
36 return format_to(ctx.out(), "(pos: {} quat: {})", p.position(), p.orientation());
37}
38
39#include <knowCore/MetaType.h>
40KNOWCORE_DECLARE_FULL_METATYPE(knowGIS, GeoPose)
Definition GeoPoint.h:14
Definition GeoPose.h:10
bool isSet() const
Definition GeoPose.h:25
Definition Pose.h:10
Definition Quaternion.h:10