26template <MetadataKey metadataKey>
27struct MetadataKeyTraits;
37 using type = uint64_t;
42 static constexpr const char*
Name()
44 return "DeviceTimestamp";
54 using type = uint64_t;
59 static constexpr const char*
Name()
61 return "DeviceFrameID";
71 using type = uint64_t;
76 static constexpr const char*
Name()
78 return "BinningHorizontal";
88 using type = uint64_t;
93 static constexpr const char*
Name()
95 return "BinningVertical";
110 static constexpr const char*
Name()
127 static constexpr const char*
Name()
129 return "DeviceExposureTime";
139 using type = std::vector<double>;
144 static constexpr const char*
Name()
146 return "DeviceExposureTimeSequence";
156 using type = uint64_t;
161 static constexpr const char*
Name()
163 return "SystemTimestamp";
178 static constexpr const char*
Name()
190 using type = std::vector<double>;
195 static constexpr const char*
Name()
197 return "DeviceGainSequence";
209template <
typename T,
typename Tuple>
213struct is_in_tuple<T, std::tuple<>> : std::false_type
216template <
typename T,
typename First,
typename... Rest>
217struct is_in_tuple<T, std::tuple<First, Rest...>>
218 : std::integral_constant<bool, std::is_same<T, First>::value || is_in_tuple<T, std::tuple<Rest...>>::value>
221template <
typename T,
typename Enable =
void>
228struct NormalizeType<T, typename std::enable_if_t<!std::is_same<T, bool>::value && std::is_integral<T>::value && std::is_signed<T>::value>>
230 using type = int64_t;
234struct NormalizeType<T, typename std::enable_if_t<std::is_floating_point<T>::value>>
240struct NormalizeType<T, typename std::enable_if_t<!std::is_same<T, bool>::value && std::is_integral<T>::value && !std::is_signed<T>::value>>
242 using type = uint64_t;
246using normalize_t =
typename NormalizeType<typename std::decay_t<T>>::type;
detail::RectangleT< uint32_t, uint32_t > RectangleU
Rectangle with unsigned coordinates and unsigned dimensions.
Definition peak_common_rectangle.hpp:267
Namespace for internal implementation details and low-level types.
Definition peak_common_math.hpp:24
constexpr std::array< MetadataKey, 10 > allMetadataKeys
Definition peak_common_metadata_traits.hpp:204
Root namespace for common types and interfaces shared across multiple libraries.
Definition peak_common_math.hpp:22
MetadataKey
Enumerates all compile-time known metadata keys.
Definition peak_common_metadata_key.hpp:31
@ Roi
Region of interest applied to the image.
Definition peak_common_metadata_key.hpp:85
@ DeviceGain
Device gain the image was captured with.
Definition peak_common_metadata_key.hpp:131
@ DeviceExposureTime
Device exposure time the image was captured with.
Definition peak_common_metadata_key.hpp:94
@ BinningHorizontal
Horizontal pixel binning factor.
Definition peak_common_metadata_key.hpp:65
@ DeviceExposureTimeSequence
Device exposure time sequence the image was captured with.
Definition peak_common_metadata_key.hpp:124
@ DeviceTimestamp
Device-provided image acquisition timestamp in nanoseconds.
Definition peak_common_metadata_key.hpp:43
@ SystemTimestamp
Timestamp of the system since unix epoch in nanoseconds.
Definition peak_common_metadata_key.hpp:110
@ DeviceGainSequence
Device gain sequence the image was captured with.
Definition peak_common_metadata_key.hpp:143
@ BinningVertical
Vertical pixel binning factor.
Definition peak_common_metadata_key.hpp:74
@ DeviceFrameID
A sequentially incremented identifier for the frame.
Definition peak_common_metadata_key.hpp:56