IOLink IOL_v1.8.0_release
Loading...
Searching...
No Matches
ImageProperties.h
1#pragma once
2
3#include <memory>
4
5#include <iolink/IOLinkAPI.h>
6#include <iolink/property/ImageInfoProperty.h>
7#include <iolink/property/SpatialCalibrationProperty.h>
8
9namespace iolink
10{
11
15class IOLINK_API ImageProperties
16{
17public:
26 static std::shared_ptr<ImageProperties> fromDataType(DataType dataType);
27
35 static std::shared_ptr<ImageProperties> fromProperties(const SpatialCalibrationProperty& calibration,
36 const ImageInfoProperty& imageInfo);
37
45 static std::shared_ptr<ImageProperties> fromProperties(std::shared_ptr<const ImageProperties> properties,
46 const SpatialCalibrationProperty& calibration);
47
55 static std::shared_ptr<ImageProperties> fromProperties(std::shared_ptr<const ImageProperties> properties,
56 const ImageInfoProperty& imageInfo);
57
63 ImageProperties(const SpatialCalibrationProperty& calibration, const ImageInfoProperty& imageInfo);
64
65 ImageProperties(const ImageProperties& other);
66 ImageProperties& operator=(const ImageProperties& other);
67
68 ImageProperties(ImageProperties&& other) noexcept;
69 ImageProperties& operator=(ImageProperties&& other) noexcept;
70
74 std::string toString() const;
75
77
81 std::shared_ptr<ImageProperties> clone() const;
82
89
96
101
106
113 bool isCompatibleWith(const VectorXu64& shape, DataType type) const;
114
118 bool operator==(const ImageProperties& other) const;
119
120private:
121 class Private;
122 Private* m_private;
123};
124
125} // end namespace iolink