IOLink IOL_v1.8.0_release
Loading...
Searching...
No Matches
SpatialDirections.h
1#pragma once
2
3#include <iolink/IOLinkAPI.h>
4#include <iolink/Vector.h>
5
6namespace iolink
7{
8
15class IOLINK_API SpatialDirections final
16{
17public:
27
37 SpatialDirections(const Vector3d& columnDirection, const Vector3d& rowDirection);
38
39 SpatialDirections(const SpatialDirections& other) = default;
40 SpatialDirections& operator=(const SpatialDirections& other) = default;
41
42 SpatialDirections(SpatialDirections&& other) noexcept = default;
43 SpatialDirections& operator=(SpatialDirections&& other) noexcept = default;
44
45 bool operator==(const SpatialDirections& other) const;
46 bool operator!=(const SpatialDirections& other) const;
47
51 inline const Vector3d& columnDirection() const { return m_columnDir; }
52
56 inline const Vector3d& rowDirection() const { return m_rowDir; }
57
61 inline const Vector3d& sliceDirection() const { return m_sliceDir; }
62
66 std::string toString() const;
67
68private:
69 Vector3d m_columnDir;
70 Vector3d m_rowDir;
71 Vector3d m_sliceDir;
72};
73
74} // end namespace iolink