69# pragma warning(disable : 4251)
85 static constexpr const char *path{
"" };
88 static constexpr const char *name{
"FrameInfo" };
91 static constexpr const char *description{ R
"description(Various information for a frame)description" };
93 static constexpr size_t version{ 5 };
103 static constexpr std::array<uint8_t, 3> binaryId{
'f',
'i',
'f' };
117 static constexpr const char *path{
"Metrics" };
120 static constexpr const char *name{
"Metrics" };
123 static constexpr const char *description{ R
"description(Metrics related to this capture.)description" };
139 static constexpr const char *path{
"Metrics/AcquisitionTime" };
142 static constexpr const char *name{
"AcquisitionTime" };
145 static constexpr const char *description{
146 R
"description(Acquisition Time is the duration from the start of the capture to when the camera has acquired the
147last image. After this time, the camera has finished its acquisition and you can move the robot,
148or capture with another camera with overlapping field of view. Acquisition Time is equal to the
149time it takes for the Camera::capture(settings) API function call to return.
159 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
171 std::chrono::microseconds
value()
const;
179 return m_value == other.m_value;
185 return m_value != other.m_value;
191 return m_value < other.m_value;
197 return m_value > other.m_value;
203 return m_value <= other.m_value;
209 return m_value >= other.m_value;
219 void setFromString(
const std::string &value);
221 std::chrono::microseconds m_value{ -1 };
239 static constexpr const char *path{
"Metrics/CaptureTime" };
242 static constexpr const char *name{
"CaptureTime" };
245 static constexpr const char *description{
246 R
"description(Capture Time is the duration from the start of the capture to when all of the data transfer and
247processing has completed. After this time the 3D point cloud and/or 2D color image is ready and
248available on the GPU memory, and can be copied to the system memory (RAM).
258 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
270 std::chrono::microseconds
value()
const;
278 return m_value == other.m_value;
284 return m_value != other.m_value;
290 return m_value < other.m_value;
296 return m_value > other.m_value;
302 return m_value <= other.m_value;
308 return m_value >= other.m_value;
318 void setFromString(
const std::string &value);
320 std::chrono::microseconds m_value{ -1 };
322 friend struct DataModel::Detail::Befriend<
CaptureTime>;
350 static constexpr const char *path{
"Metrics/ReprocessingTime" };
353 static constexpr const char *name{
"ReprocessingTime" };
356 static constexpr const char *description{
357 R
"description(Reprocessing re-runs the entire processing pipeline (including filters, color balance etc.) on a
358previously acquired frame. Reprocessing is available in Zivid Studio for captures with Diagnostics Mode
359enabled. The ReprocessingTime field is only set if this frame was reprocessed after it was initially
360captured, otherwise it will be unset.
362Reprocessing Time is the duration from the start of the reprocessing action and until all processing
363of the new frame has finished. After this time the 3D point cloud and/or 2D color image is ready and
364available on the GPU memory and can be copied to the system memory (RAM).
366Reprocessing Time depends on the processing settings that are enabled, which capture engine that was
367used, the pixel sampling setting and the number of acquisitions used. Reprocessing Time also depends on
368the compute power of the compute device.
370Note that for a frame that has been re-processed, the Acquisition Time and Capture Time refers to
371the originally captured frame. Only Reprocessing Time is updated in a reprocessed frame.
381 return { std::chrono::microseconds::min(), std::chrono::microseconds::max() };
396 std::chrono::microseconds
value()
const;
410 return m_opt == other.m_opt;
416 return m_opt != other.m_opt;
422 return m_opt < other.m_opt;
428 return m_opt > other.m_opt;
434 return m_opt <= other.m_opt;
440 return m_opt >= other.m_opt;
450 void setFromString(
const std::string &value);
452 std::optional<std::chrono::microseconds> m_opt;
481 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
482 typename std::enable_if<
483 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
487 template<typename... Args>
491 using namespace Zivid::Detail::TypeTraits;
494 AllArgsDecayedAreUnique<Args...>::value,
495 "Found duplicate types among the arguments passed to Metrics(...). "
496 "Types should be listed at most once.");
498 set(std::forward<Args>(args)...);
514 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
516 template<typename... Args>
520 using namespace Zivid::Detail::TypeTraits;
522 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
524 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
527 AllArgsDecayedAreUnique<Args...>::value,
528 "Found duplicate types among the arguments passed to set(...). "
529 "Types should be listed at most once.");
531 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
548 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
550 template<typename... Args>
554 using namespace Zivid::Detail::TypeTraits;
556 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
558 AllArgsAreDescendantNodes::value,
559 "All arguments passed to copyWith(...) must be descendant nodes.");
562 AllArgsDecayedAreUnique<Args...>::value,
563 "Found duplicate types among the arguments passed to copyWith(...). "
564 "Types should be listed at most once.");
567 copy.set(std::forward<Args>(args)...);
574 return m_acquisitionTime;
580 return m_acquisitionTime;
586 m_acquisitionTime = value;
593 return m_captureTime;
599 return m_captureTime;
605 m_captureTime = value;
612 return m_reprocessingTime;
618 return m_reprocessingTime;
624 m_reprocessingTime = value;
630 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::AcquisitionTime>::value,
int>::type = 0>
633 return m_acquisitionTime;
638 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::CaptureTime>::value,
int>::type = 0>
641 return m_captureTime;
646 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ReprocessingTime>::value,
int>::type = 0>
649 return m_reprocessingTime;
652 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
655 return m_acquisitionTime;
658 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
661 return m_captureTime;
664 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
667 return m_reprocessingTime;
674 f(m_acquisitionTime);
676 f(m_reprocessingTime);
683 f(m_acquisitionTime);
685 f(m_reprocessingTime);
704 void setFromString(
const std::string &value);
706 void setFromString(
const std::string &fullPath,
const std::string &value);
708 std::string getString(
const std::string &fullPath)
const;
710 AcquisitionTime m_acquisitionTime;
711 CaptureTime m_captureTime;
714 friend struct DataModel::Detail::Befriend<
Metrics>;
727 static constexpr const char *path{
"SoftwareVersion" };
730 static constexpr const char *name{
"SoftwareVersion" };
733 static constexpr const char *description{
734 R
"description(The version information for installed software at the time of image capture)description"
747 static constexpr const char *path{
"SoftwareVersion/Core" };
750 static constexpr const char *name{
"Core" };
753 static constexpr const char *description{ R
"description(Core version)description" };
761 return { 0, std::numeric_limits<ValueType::size_type>::max() };
768 explicit Core(std::string value)
769 : m_value{ std::move(value) }
781 return m_value == other.m_value;
787 return m_value != other.m_value;
793 return m_value < other.m_value;
799 return m_value > other.m_value;
805 return m_value <= other.m_value;
811 return m_value >= other.m_value;
821 void setFromString(
const std::string &value);
823 std::string m_value{
"No-version" };
825 friend struct DataModel::Detail::Befriend<
Core>;
847 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
848 typename std::enable_if<
849 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
853 template<typename... Args>
857 using namespace Zivid::Detail::TypeTraits;
860 AllArgsDecayedAreUnique<Args...>::value,
861 "Found duplicate types among the arguments passed to SoftwareVersion(...). "
862 "Types should be listed at most once.");
864 set(std::forward<Args>(args)...);
878 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
880 template<typename... Args>
884 using namespace Zivid::Detail::TypeTraits;
886 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
888 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
891 AllArgsDecayedAreUnique<Args...>::value,
892 "Found duplicate types among the arguments passed to set(...). "
893 "Types should be listed at most once.");
895 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
910 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
912 template<typename... Args>
916 using namespace Zivid::Detail::TypeTraits;
918 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
920 AllArgsAreDescendantNodes::value,
921 "All arguments passed to copyWith(...) must be descendant nodes.");
924 AllArgsDecayedAreUnique<Args...>::value,
925 "Found duplicate types among the arguments passed to copyWith(...). "
926 "Types should be listed at most once.");
929 copy.set(std::forward<Args>(args)...);
954 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
960 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
996 void setFromString(
const std::string &value);
998 void setFromString(
const std::string &fullPath,
const std::string &value);
1000 std::string getString(
const std::string &fullPath)
const;
1017 static constexpr const char *path{
"SystemInfo" };
1020 static constexpr const char *name{
"SystemInfo" };
1023 static constexpr const char *description{
1024 R
"description(Information about the system that captured this frame)description"
1037 static constexpr const char *path{
"SystemInfo/CPU" };
1040 static constexpr const char *name{
"CPU" };
1043 static constexpr const char *description{ R
"description(CPU)description" };
1055 static constexpr const char *path{
"SystemInfo/CPU/Model" };
1058 static constexpr const char *name{
"Model" };
1061 static constexpr const char *description{ R
"description(CPU model)description" };
1069 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1077 : m_value{ std::move(value) }
1089 return m_value == other.m_value;
1095 return m_value != other.m_value;
1101 return m_value < other.m_value;
1107 return m_value > other.m_value;
1113 return m_value <= other.m_value;
1119 return m_value >= other.m_value;
1129 void setFromString(
const std::string &value);
1131 std::string m_value{};
1133 friend struct DataModel::Detail::Befriend<
Model>;
1155 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1156 typename std::enable_if<
1157 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1161 template<typename... Args>
1165 using namespace Zivid::Detail::TypeTraits;
1168 AllArgsDecayedAreUnique<Args...>::value,
1169 "Found duplicate types among the arguments passed to CPU(...). "
1170 "Types should be listed at most once.");
1172 set(std::forward<Args>(args)...);
1186 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1188 template<typename... Args>
1192 using namespace Zivid::Detail::TypeTraits;
1194 using AllArgsAreDescendantNodes =
1195 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1197 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1200 AllArgsDecayedAreUnique<Args...>::value,
1201 "Found duplicate types among the arguments passed to set(...). "
1202 "Types should be listed at most once.");
1204 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1219 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1221 template<typename... Args>
1225 using namespace Zivid::Detail::TypeTraits;
1227 using AllArgsAreDescendantNodes =
1228 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1230 AllArgsAreDescendantNodes::value,
1231 "All arguments passed to copyWith(...) must be descendant nodes.");
1234 AllArgsDecayedAreUnique<Args...>::value,
1235 "Found duplicate types among the arguments passed to copyWith(...). "
1236 "Types should be listed at most once.");
1239 copy.set(std::forward<Args>(args)...);
1264 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
1270 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1277 template<
typename F>
1284 template<
typename F>
1306 void setFromString(
const std::string &value);
1308 void setFromString(
const std::string &fullPath,
const std::string &value);
1310 std::string getString(
const std::string &fullPath)
const;
1314 friend struct DataModel::Detail::Befriend<
CPU>;
1327 static constexpr const char *path{
"SystemInfo/ComputeDevice" };
1330 static constexpr const char *name{
"ComputeDevice" };
1333 static constexpr const char *description{ R
"description(Compute device)description" };
1345 static constexpr const char *path{
"SystemInfo/ComputeDevice/Model" };
1348 static constexpr const char *name{
"Model" };
1351 static constexpr const char *description{ R
"description(Compute device model)description" };
1359 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1367 : m_value{ std::move(value) }
1379 return m_value == other.m_value;
1385 return m_value != other.m_value;
1391 return m_value < other.m_value;
1397 return m_value > other.m_value;
1403 return m_value <= other.m_value;
1409 return m_value >= other.m_value;
1419 void setFromString(
const std::string &value);
1421 std::string m_value{};
1423 friend struct DataModel::Detail::Befriend<
Model>;
1436 static constexpr const char *path{
"SystemInfo/ComputeDevice/Vendor" };
1439 static constexpr const char *name{
"Vendor" };
1442 static constexpr const char *description{ R
"description(Compute device vendor)description" };
1450 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1458 : m_value{ std::move(value) }
1470 return m_value == other.m_value;
1476 return m_value != other.m_value;
1482 return m_value < other.m_value;
1488 return m_value > other.m_value;
1494 return m_value <= other.m_value;
1500 return m_value >= other.m_value;
1510 void setFromString(
const std::string &value);
1512 std::string m_value{};
1514 friend struct DataModel::Detail::Befriend<
Vendor>;
1518 tuple<FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor>;
1538 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1539 typename std::enable_if<
1540 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1544 template<typename... Args>
1548 using namespace Zivid::Detail::TypeTraits;
1551 AllArgsDecayedAreUnique<Args...>::value,
1552 "Found duplicate types among the arguments passed to ComputeDevice(...). "
1553 "Types should be listed at most once.");
1555 set(std::forward<Args>(args)...);
1570 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1572 template<typename... Args>
1576 using namespace Zivid::Detail::TypeTraits;
1578 using AllArgsAreDescendantNodes =
1579 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1581 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1584 AllArgsDecayedAreUnique<Args...>::value,
1585 "Found duplicate types among the arguments passed to set(...). "
1586 "Types should be listed at most once.");
1588 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1604 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1606 template<typename... Args>
1610 using namespace Zivid::Detail::TypeTraits;
1612 using AllArgsAreDescendantNodes =
1613 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1615 AllArgsAreDescendantNodes::value,
1616 "All arguments passed to copyWith(...) must be descendant nodes.");
1619 AllArgsDecayedAreUnique<Args...>::value,
1620 "Found duplicate types among the arguments passed to copyWith(...). "
1621 "Types should be listed at most once.");
1624 copy.set(std::forward<Args>(args)...);
1668 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
1677 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
1684 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1690 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1697 template<
typename F>
1705 template<
typename F>
1728 void setFromString(
const std::string &value);
1730 void setFromString(
const std::string &fullPath,
const std::string &value);
1732 std::string getString(
const std::string &fullPath)
const;
1750 static constexpr const char *path{
"SystemInfo/OperatingSystem" };
1753 static constexpr const char *name{
"OperatingSystem" };
1756 static constexpr const char *description{ R
"description(Operating system)description" };
1764 return { 0, std::numeric_limits<ValueType::size_type>::max() };
1772 : m_value{ std::move(value) }
1784 return m_value == other.m_value;
1790 return m_value != other.m_value;
1796 return m_value < other.m_value;
1802 return m_value > other.m_value;
1808 return m_value <= other.m_value;
1814 return m_value >= other.m_value;
1824 void setFromString(
const std::string &value);
1826 std::string m_value{};
1861 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1862 typename std::enable_if<
1863 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1867 template<typename... Args>
1871 using namespace Zivid::Detail::TypeTraits;
1874 AllArgsDecayedAreUnique<Args...>::value,
1875 "Found duplicate types among the arguments passed to SystemInfo(...). "
1876 "Types should be listed at most once.");
1878 set(std::forward<Args>(args)...);
1897 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1899 template<typename... Args>
1903 using namespace Zivid::Detail::TypeTraits;
1905 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1907 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1910 AllArgsDecayedAreUnique<Args...>::value,
1911 "Found duplicate types among the arguments passed to set(...). "
1912 "Types should be listed at most once.");
1914 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1934 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1936 template<typename... Args>
1940 using namespace Zivid::Detail::TypeTraits;
1942 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1944 AllArgsAreDescendantNodes::value,
1945 "All arguments passed to copyWith(...) must be descendant nodes.");
1948 AllArgsDecayedAreUnique<Args...>::value,
1949 "Found duplicate types among the arguments passed to copyWith(...). "
1950 "Types should be listed at most once.");
1953 copy.set(std::forward<Args>(args)...);
1986 return m_computeDevice;
1992 return m_computeDevice;
1998 m_computeDevice = value;
2005 m_computeDevice.
set(value);
2012 m_computeDevice.
set(value);
2019 return m_operatingSystem;
2025 return m_operatingSystem;
2031 m_operatingSystem = value;
2037 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
2045 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
2053 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
2056 return m_computeDevice;
2061 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::
2070 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::
2079 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
2082 return m_operatingSystem;
2085 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2091 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2094 return m_computeDevice;
2097 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2100 return m_operatingSystem;
2104 template<
typename F>
2109 f(m_operatingSystem);
2113 template<
typename F>
2118 f(m_operatingSystem);
2137 void setFromString(
const std::string &value);
2139 void setFromString(
const std::string &fullPath,
const std::string &value);
2141 std::string getString(
const std::string &fullPath)
const;
2147 friend struct DataModel::Detail::Befriend<
SystemInfo>;
2160 static constexpr const char *path{
"TimeStamp" };
2163 static constexpr const char *name{
"TimeStamp" };
2166 static constexpr const char *description{ R
"description(The time of frame capture)description" };
2174 return { std::chrono::system_clock::time_point::min(), std::chrono::system_clock::time_point::max() };
2181 explicit constexpr TimeStamp(std::chrono::system_clock::time_point value)
2186 std::chrono::system_clock::time_point
value()
const;
2194 return m_value == other.m_value;
2200 return m_value != other.m_value;
2206 return m_value < other.m_value;
2212 return m_value > other.m_value;
2218 return m_value <= other.m_value;
2224 return m_value >= other.m_value;
2234 void setFromString(
const std::string &value);
2236 std::chrono::system_clock::time_point m_value{};
2238 friend struct DataModel::Detail::Befriend<
TimeStamp>;
2304 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2305 typename std::enable_if<
2306 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
2309 template<typename... Args>
2313 using namespace Zivid::Detail::TypeTraits;
2316 AllArgsDecayedAreUnique<Args...>::value,
2317 "Found duplicate types among the arguments passed to FrameInfo(...). "
2318 "Types should be listed at most once.");
2320 set(std::forward<Args>(args)...);
2347 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2349 template<typename... Args>
2353 using namespace Zivid::Detail::TypeTraits;
2355 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2357 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2360 AllArgsDecayedAreUnique<Args...>::value,
2361 "Found duplicate types among the arguments passed to set(...). "
2362 "Types should be listed at most once.");
2364 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2392 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2394 template<typename... Args>
2398 using namespace Zivid::Detail::TypeTraits;
2400 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2402 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
2405 AllArgsDecayedAreUnique<Args...>::value,
2406 "Found duplicate types among the arguments passed to copyWith(...). "
2407 "Types should be listed at most once.");
2410 copy.set(std::forward<Args>(args)...);
2436 m_metrics.
set(value);
2443 m_metrics.
set(value);
2450 m_metrics.
set(value);
2457 return m_softwareVersion;
2463 return m_softwareVersion;
2469 m_softwareVersion = value;
2476 m_softwareVersion.
set(value);
2483 return m_systemInfo;
2489 return m_systemInfo;
2495 m_systemInfo = value;
2502 m_systemInfo.
set(value);
2509 m_systemInfo.
set(value);
2516 m_systemInfo.
set(value);
2523 m_systemInfo.
set(value);
2530 m_systemInfo.
set(value);
2537 m_systemInfo.
set(value);
2556 m_timeStamp = value;
2560 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::Metrics>::value,
int>::type = 0>
2568 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::AcquisitionTime>::value,
int>::type = 0>
2576 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::CaptureTime>::value,
int>::type = 0>
2584 typename std::enable_if<std::is_same<T, FrameInfo::Metrics::ReprocessingTime>::value,
int>::type = 0>
2590 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion>::value,
int>::type = 0>
2593 return m_softwareVersion;
2598 typename std::enable_if<std::is_same<T, FrameInfo::SoftwareVersion::Core>::value,
int>::type = 0>
2604 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo>::value,
int>::type = 0>
2607 return m_systemInfo;
2610 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU>::value,
int>::type = 0>
2618 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::CPU::Model>::value,
int>::type = 0>
2626 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice>::value,
int>::type = 0>
2634 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Model>::value,
int>::type = 0>
2642 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::ComputeDevice::Vendor>::value,
int>::type =
2651 typename std::enable_if<std::is_same<T, FrameInfo::SystemInfo::OperatingSystem>::value,
int>::type = 0>
2657 template<typename T, typename std::enable_if<std::is_same<T, FrameInfo::TimeStamp>::value,
int>::type = 0>
2663 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2669 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2672 return m_softwareVersion;
2675 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2678 return m_systemInfo;
2681 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
2688 template<
typename F>
2692 f(m_softwareVersion);
2698 template<
typename F>
2702 f(m_softwareVersion);
2723 void save(
const std::string &fileName)
const;
2726 void load(
const std::string &fileName);
2729 void setFromString(
const std::string &value);
2731 void setFromString(
const std::string &fullPath,
const std::string &value);
2733 std::string getString(
const std::string &fullPath)
const;
2740 friend struct DataModel::Detail::Befriend<
FrameInfo>;
2745 struct FrameInfo::Version<5>
2768# pragma warning(pop)
2772# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
2777 struct tuple_size<
Zivid::FrameInfo::Metrics> : integral_constant<size_t, 3>
2781 struct tuple_element<i,
Zivid::FrameInfo::Metrics>
2783 static_assert(i < tuple_size<Zivid::FrameInfo::Metrics>::value,
"Index must be less than 3");
2786 =
decltype(declval<Zivid::FrameInfo::Metrics>().get<i>());
2790 struct tuple_size<
Zivid::FrameInfo::SoftwareVersion> : integral_constant<size_t, 1>
2794 struct tuple_element<i,
Zivid::FrameInfo::SoftwareVersion>
2796 static_assert(i < tuple_size<Zivid::FrameInfo::SoftwareVersion>::value,
"Index must be less than 1");
2799 =
decltype(declval<Zivid::FrameInfo::SoftwareVersion>().get<i>());
2803 struct tuple_size<
Zivid::FrameInfo::SystemInfo> : integral_constant<size_t, 3>
2807 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo>
2809 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo>::value,
"Index must be less than 3");
2812 =
decltype(declval<Zivid::FrameInfo::SystemInfo>().get<i>());
2816 struct tuple_size<
Zivid::FrameInfo::SystemInfo::CPU> : integral_constant<size_t, 1>
2820 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo::CPU>
2822 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::CPU>::value,
"Index must be less than 1");
2825 =
decltype(declval<Zivid::FrameInfo::SystemInfo::CPU>().get<i>());
2829 struct tuple_size<
Zivid::FrameInfo::SystemInfo::ComputeDevice> : integral_constant<size_t, 2>
2833 struct tuple_element<i,
Zivid::FrameInfo::SystemInfo::ComputeDevice>
2835 static_assert(i < tuple_size<Zivid::FrameInfo::SystemInfo::ComputeDevice>::value,
"Index must be less than 2");
2838 =
decltype(declval<Zivid::FrameInfo::SystemInfo::ComputeDevice>().get<i>());
2842 struct tuple_size<
Zivid::FrameInfo> : integral_constant<size_t, 4>
2846 struct tuple_element<i,
Zivid::FrameInfo>
2848 static_assert(i < tuple_size<Zivid::FrameInfo>::value,
"Index must be less than 4");
2851 =
decltype(declval<Zivid::FrameInfo>().get<i>());
2860#if defined(__has_include) && !defined(NO_DOC)
2861# if __has_include("Zivid/FrameInfoInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
2862# include "Zivid/FrameInfoInternal.h"
#define ZIVID_CORE_EXPORT
Definition CoreExport.h:56
Contains information about the compute device used by Zivid::Application.
Definition ComputeDevice.h:58
Acquisition Time is the duration from the start of the capture to when the camera has acquired the la...
Definition FrameInfo.h:133
AcquisitionTime()=default
Default constructor.
bool operator<(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:189
bool operator<=(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:201
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:154
bool operator>=(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:207
std::chrono::microseconds value() const
Get the value.
bool operator>(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:195
bool operator==(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:177
bool operator!=(const AcquisitionTime &other) const
Comparison operator.
Definition FrameInfo.h:183
constexpr AcquisitionTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:166
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for AcquisitionTime.
Definition FrameInfo.h:157
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const AcquisitionTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:213
Capture Time is the duration from the start of the capture to when all of the data transfer and proce...
Definition FrameInfo.h:233
constexpr CaptureTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:265
std::string toString() const
Get the value as string.
CaptureTime()=default
Default constructor.
bool operator<(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:288
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:253
bool operator>(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:294
bool operator==(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:276
bool operator<=(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:300
bool operator>=(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:306
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for CaptureTime.
Definition FrameInfo.h:256
bool operator!=(const CaptureTime &other) const
Comparison operator.
Definition FrameInfo.h:282
std::chrono::microseconds value() const
Get the value.
friend std::ostream & operator<<(std::ostream &stream, const CaptureTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:312
Reprocessing re-runs the entire processing pipeline (including filters, color balance etc....
Definition FrameInfo.h:344
bool operator<(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:420
constexpr ReprocessingTime(std::chrono::microseconds value)
Constructor.
Definition FrameInfo.h:388
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for ReprocessingTime.
Definition FrameInfo.h:379
bool operator>=(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:438
bool hasValue() const
Check if the value is set.
bool operator>(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:426
std::string toString() const
Get the value as string.
void reset()
Reset the node to unset state.
std::chrono::microseconds value() const
Get the value.
bool operator<=(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:432
friend std::ostream & operator<<(std::ostream &stream, const ReprocessingTime &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:444
std::chrono::microseconds ValueType
The type of the underlying value.
Definition FrameInfo.h:376
bool operator==(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:408
ReprocessingTime()=default
Default constructor.
bool operator!=(const ReprocessingTime &other) const
Comparison operator.
Definition FrameInfo.h:414
Metrics related to this capture.
Definition FrameInfo.h:111
std::tuple< FrameInfo::Metrics::AcquisitionTime, FrameInfo::Metrics::CaptureTime, FrameInfo::Metrics::ReprocessingTime > Descendants
Definition FrameInfo.h:457
friend std::ostream & operator<<(std::ostream &stream, const Metrics &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:698
bool operator!=(const Metrics &other) const
Inequality operator.
Metrics()
Default constructor.
const FrameInfo::Metrics::ReprocessingTime & get() const
Definition FrameInfo.h:647
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:672
Metrics copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition FrameInfo.h:552
const CaptureTime & captureTime() const
Get CaptureTime.
Definition FrameInfo.h:591
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:681
CaptureTime & captureTime()
Get CaptureTime.
Definition FrameInfo.h:597
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:518
Metrics & set(const CaptureTime &value)
Set CaptureTime.
Definition FrameInfo.h:603
const AcquisitionTime & acquisitionTime() const
Get AcquisitionTime.
Definition FrameInfo.h:572
const ReprocessingTime & reprocessingTime() const
Get ReprocessingTime.
Definition FrameInfo.h:610
const FrameInfo::Metrics::CaptureTime & get() const
Definition FrameInfo.h:639
AcquisitionTime & acquisitionTime()
Get AcquisitionTime.
Definition FrameInfo.h:578
std::string toString() const
Get the value as string.
Metrics & set(const AcquisitionTime &value)
Set AcquisitionTime.
Definition FrameInfo.h:584
Metrics & set(const ReprocessingTime &value)
Set ReprocessingTime.
Definition FrameInfo.h:622
bool operator==(const Metrics &other) const
Equality operator.
ReprocessingTime & reprocessingTime()
Get ReprocessingTime.
Definition FrameInfo.h:616
const FrameInfo::Metrics::AcquisitionTime & get() const
Definition FrameInfo.h:631
Core version.
Definition FrameInfo.h:741
std::string toString() const
Get the value as string.
bool operator>=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:809
const std::string & value() const
Get the value.
bool operator!=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:785
Core(std::string value)
Constructor.
Definition FrameInfo.h:768
bool operator==(const Core &other) const
Comparison operator.
Definition FrameInfo.h:779
Core()=default
Default constructor.
bool operator>(const Core &other) const
Comparison operator.
Definition FrameInfo.h:797
bool operator<(const Core &other) const
Comparison operator.
Definition FrameInfo.h:791
friend std::ostream & operator<<(std::ostream &stream, const Core &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:815
bool operator<=(const Core &other) const
Comparison operator.
Definition FrameInfo.h:803
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:756
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Core.
Definition FrameInfo.h:759
The version information for installed software at the time of image capture.
Definition FrameInfo.h:721
const Core & core() const
Get Core.
Definition FrameInfo.h:934
friend std::ostream & operator<<(std::ostream &stream, const SoftwareVersion &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:990
bool operator!=(const SoftwareVersion &other) const
Inequality operator.
bool operator==(const SoftwareVersion &other) const
Equality operator.
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:975
SoftwareVersion()
Default constructor.
const FrameInfo::SoftwareVersion::Core & get() const
Definition FrameInfo.h:955
SoftwareVersion copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition FrameInfo.h:914
Core & core()
Get Core.
Definition FrameInfo.h:940
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:968
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:882
std::tuple< FrameInfo::SoftwareVersion::Core > Descendants
Definition FrameInfo.h:828
SoftwareVersion & set(const Core &value)
Set Core.
Definition FrameInfo.h:946
std::string toString() const
Get the value as string.
CPU model.
Definition FrameInfo.h:1049
const std::string & value() const
Get the value.
bool operator!=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1093
Model()=default
Default constructor.
bool operator<(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1099
std::string toString() const
Get the value as string.
bool operator==(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1087
bool operator>=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1117
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1123
bool operator<=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1111
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model.
Definition FrameInfo.h:1067
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1064
Model(std::string value)
Constructor.
Definition FrameInfo.h:1076
bool operator>(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1105
CPU.
Definition FrameInfo.h:1031
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1285
const Model & model() const
Get Model.
Definition FrameInfo.h:1244
std::tuple< FrameInfo::SystemInfo::CPU::Model > Descendants
Definition FrameInfo.h:1136
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1278
bool operator!=(const CPU &other) const
Inequality operator.
std::string toString() const
Get the value as string.
bool operator==(const CPU &other) const
Equality operator.
CPU()
Default constructor.
friend std::ostream & operator<<(std::ostream &stream, const CPU &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:1300
CPU & set(const Model &value)
Set Model.
Definition FrameInfo.h:1256
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1190
CPU copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition FrameInfo.h:1223
Model & model()
Get Model.
Definition FrameInfo.h:1250
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:1265
Compute device model.
Definition FrameInfo.h:1339
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Model.
Definition FrameInfo.h:1357
std::string toString() const
Get the value as string.
bool operator<=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1401
Model(std::string value)
Constructor.
Definition FrameInfo.h:1366
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1354
const std::string & value() const
Get the value.
bool operator==(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1377
bool operator!=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1383
bool operator>=(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1407
bool operator>(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1395
friend std::ostream & operator<<(std::ostream &stream, const Model &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1413
bool operator<(const Model &other) const
Comparison operator.
Definition FrameInfo.h:1389
Model()=default
Default constructor.
Compute device vendor.
Definition FrameInfo.h:1430
bool operator>(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1486
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Vendor.
Definition FrameInfo.h:1448
friend std::ostream & operator<<(std::ostream &stream, const Vendor &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1504
bool operator>=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1498
bool operator<(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1480
bool operator==(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1468
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1445
Vendor()=default
Default constructor.
std::string toString() const
Get the value as string.
bool operator<=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1492
const std::string & value() const
Get the value.
bool operator!=(const Vendor &other) const
Comparison operator.
Definition FrameInfo.h:1474
Vendor(std::string value)
Constructor.
Definition FrameInfo.h:1457
Compute device.
Definition FrameInfo.h:1321
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1574
ComputeDevice & set(const Model &value)
Set Model.
Definition FrameInfo.h:1641
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1698
const Vendor & vendor() const
Get Vendor.
Definition FrameInfo.h:1648
std:: tuple< FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor > Descendants
Definition FrameInfo.h:1517
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:1706
Model & model()
Get Model.
Definition FrameInfo.h:1635
Vendor & vendor()
Get Vendor.
Definition FrameInfo.h:1654
bool operator==(const ComputeDevice &other) const
Equality operator.
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:1679
const Model & model() const
Get Model.
Definition FrameInfo.h:1629
friend std::ostream & operator<<(std::ostream &stream, const ComputeDevice &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:1722
bool operator!=(const ComputeDevice &other) const
Inequality operator.
std::string toString() const
Get the value as string.
ComputeDevice()
Default constructor.
ComputeDevice & set(const Vendor &value)
Set Vendor.
Definition FrameInfo.h:1660
ComputeDevice copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition FrameInfo.h:1608
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:1670
Operating system.
Definition FrameInfo.h:1744
bool operator>(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1800
OperatingSystem(std::string value)
Constructor.
Definition FrameInfo.h:1771
bool operator!=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1788
bool operator<(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1794
bool operator>=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1812
bool operator==(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1782
std::string ValueType
The type of the underlying value.
Definition FrameInfo.h:1759
OperatingSystem()=default
Default constructor.
bool operator<=(const OperatingSystem &other) const
Comparison operator.
Definition FrameInfo.h:1806
const std::string & value() const
Get the value.
friend std::ostream & operator<<(std::ostream &stream, const OperatingSystem &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:1818
std::string toString() const
Get the value as string.
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for OperatingSystem.
Definition FrameInfo.h:1762
Information about the system that captured this frame.
Definition FrameInfo.h:1011
SystemInfo & set(const CPU::Model &value)
Set CPU::Model.
Definition FrameInfo.h:1977
std::string toString() const
Get the value as string.
const FrameInfo::SystemInfo::CPU & get() const
Definition FrameInfo.h:2038
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:2105
ComputeDevice & computeDevice()
Get ComputeDevice.
Definition FrameInfo.h:1990
SystemInfo & set(const ComputeDevice &value)
Set ComputeDevice.
Definition FrameInfo.h:1996
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:2072
SystemInfo & set(const CPU &value)
Set CPU.
Definition FrameInfo.h:1970
bool operator==(const SystemInfo &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:1901
friend std::ostream & operator<<(std::ostream &stream, const SystemInfo &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:2131
const ComputeDevice & computeDevice() const
Get ComputeDevice.
Definition FrameInfo.h:1984
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:2114
SystemInfo & set(const ComputeDevice::Vendor &value)
Set ComputeDevice::Vendor.
Definition FrameInfo.h:2010
SystemInfo & set(const OperatingSystem &value)
Set OperatingSystem.
Definition FrameInfo.h:2029
SystemInfo copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition FrameInfo.h:1938
bool operator!=(const SystemInfo &other) const
Inequality operator.
SystemInfo & set(const ComputeDevice::Model &value)
Set ComputeDevice::Model.
Definition FrameInfo.h:2003
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition FrameInfo.h:2080
CPU & cpu()
Get CPU.
Definition FrameInfo.h:1964
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition FrameInfo.h:2054
const OperatingSystem & operatingSystem() const
Get OperatingSystem.
Definition FrameInfo.h:2017
OperatingSystem & operatingSystem()
Get OperatingSystem.
Definition FrameInfo.h:2023
SystemInfo()
Default constructor.
const CPU & cpu() const
Get CPU.
Definition FrameInfo.h:1958
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:2063
std::tuple< FrameInfo::SystemInfo::CPU, FrameInfo::SystemInfo::CPU::Model, FrameInfo::SystemInfo::ComputeDevice, FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor, FrameInfo::SystemInfo::OperatingSystem > Descendants
Definition FrameInfo.h:1831
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:2046
The time of frame capture.
Definition FrameInfo.h:2154
std::chrono::system_clock::time_point value() const
Get the value.
bool operator>(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2210
bool operator<(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2204
bool operator<=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2216
static constexpr Range< std::chrono::system_clock::time_point > validRange()
The range of valid values for TimeStamp.
Definition FrameInfo.h:2172
bool operator>=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2222
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const TimeStamp &value)
Operator to serialize the value to a stream.
Definition FrameInfo.h:2228
TimeStamp()=default
Default constructor.
constexpr TimeStamp(std::chrono::system_clock::time_point value)
Constructor.
Definition FrameInfo.h:2181
bool operator!=(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2198
bool operator==(const TimeStamp &other) const
Comparison operator.
Definition FrameInfo.h:2192
std::chrono::system_clock::time_point ValueType
The type of the underlying value.
Definition FrameInfo.h:2169
Various information for a frame.
Definition FrameInfo.h:79
const FrameInfo::Metrics::ReprocessingTime & get() const
Definition FrameInfo.h:2585
TimeStamp & timeStamp()
Get TimeStamp.
Definition FrameInfo.h:2548
std::string toString() const
Get the value as string.
Metrics & metrics()
Get Metrics.
Definition FrameInfo.h:2421
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:2689
const FrameInfo::SoftwareVersion::Core & get() const
Definition FrameInfo.h:2599
const FrameInfo::Metrics & get() const
Definition FrameInfo.h:2561
const FrameInfo::Metrics::CaptureTime & get() const
Definition FrameInfo.h:2577
FrameInfo & set(const SystemInfo::ComputeDevice &value)
Set SystemInfo::ComputeDevice.
Definition FrameInfo.h:2514
FrameInfo()
Default constructor.
void set(Args &&...args)
Set multiple arguments.
Definition FrameInfo.h:2351
const FrameInfo::SystemInfo::ComputeDevice::Model & get() const
Definition FrameInfo.h:2635
const FrameInfo::Metrics::AcquisitionTime & get() const
Definition FrameInfo.h:2569
FrameInfo & set(const SystemInfo::OperatingSystem &value)
Set SystemInfo::OperatingSystem.
Definition FrameInfo.h:2535
void save(const std::string &fileName) const
Save to the given file.
const SystemInfo & systemInfo() const
Get SystemInfo.
Definition FrameInfo.h:2481
FrameInfo & set(const Metrics::CaptureTime &value)
Set Metrics::CaptureTime.
Definition FrameInfo.h:2441
FrameInfo & set(const SystemInfo &value)
Set SystemInfo.
Definition FrameInfo.h:2493
const TimeStamp & timeStamp() const
Get TimeStamp.
Definition FrameInfo.h:2542
SoftwareVersion & softwareVersion()
Get SoftwareVersion.
Definition FrameInfo.h:2461
FrameInfo(const std::string &fileName)
Construct FrameInfo by loading from file.
std::string serialize() const
Serialize to a string.
FrameInfo & set(const SystemInfo::ComputeDevice::Vendor &value)
Set SystemInfo::ComputeDevice::Vendor.
Definition FrameInfo.h:2528
const FrameInfo::SoftwareVersion & get() const
Definition FrameInfo.h:2591
friend std::ostream & operator<<(std::ostream &stream, const FrameInfo &value)
Operator to send the value as string to a stream.
Definition FrameInfo.h:2717
FrameInfo & set(const TimeStamp &value)
Set TimeStamp.
Definition FrameInfo.h:2554
FrameInfo(Args &&...args)
Constructor taking variadic number of arguments.
Definition FrameInfo.h:2311
const FrameInfo::TimeStamp & get() const
Definition FrameInfo.h:2658
const SoftwareVersion & softwareVersion() const
Get SoftwareVersion.
Definition FrameInfo.h:2455
FrameInfo & set(const SystemInfo::CPU::Model &value)
Set SystemInfo::CPU::Model.
Definition FrameInfo.h:2507
static FrameInfo fromSerialized(const std::string &value)
Construct a new FrameInfo instance from a previously serialized string.
FrameInfo & set(const SystemInfo::ComputeDevice::Model &value)
Set SystemInfo::ComputeDevice::Model.
Definition FrameInfo.h:2521
const FrameInfo::SystemInfo::CPU::Model & get() const
Definition FrameInfo.h:2619
const FrameInfo::SystemInfo::ComputeDevice::Vendor & get() const
Definition FrameInfo.h:2644
FrameInfo & set(const SoftwareVersion &value)
Set SoftwareVersion.
Definition FrameInfo.h:2467
const FrameInfo::SystemInfo & get() const
Definition FrameInfo.h:2605
FrameInfo & set(const Metrics::ReprocessingTime &value)
Set Metrics::ReprocessingTime.
Definition FrameInfo.h:2448
std::tuple< FrameInfo::Metrics, FrameInfo::Metrics::AcquisitionTime, FrameInfo::Metrics::CaptureTime, FrameInfo::Metrics::ReprocessingTime, FrameInfo::SoftwareVersion, FrameInfo::SoftwareVersion::Core, FrameInfo::SystemInfo, FrameInfo::SystemInfo::CPU, FrameInfo::SystemInfo::CPU::Model, FrameInfo::SystemInfo::ComputeDevice, FrameInfo::SystemInfo::ComputeDevice::Model, FrameInfo::SystemInfo::ComputeDevice::Vendor, FrameInfo::SystemInfo::OperatingSystem, FrameInfo::TimeStamp > Descendants
Definition FrameInfo.h:2241
const FrameInfo::SystemInfo::ComputeDevice & get() const
Definition FrameInfo.h:2627
FrameInfo & set(const SoftwareVersion::Core &value)
Set SoftwareVersion::Core.
Definition FrameInfo.h:2474
SystemInfo & systemInfo()
Get SystemInfo.
Definition FrameInfo.h:2487
bool operator!=(const FrameInfo &other) const
Inequality operator.
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition FrameInfo.h:2699
FrameInfo & set(const Metrics::AcquisitionTime &value)
Set Metrics::AcquisitionTime.
Definition FrameInfo.h:2434
bool operator==(const FrameInfo &other) const
Equality operator.
FrameInfo & set(const SystemInfo::CPU &value)
Set SystemInfo::CPU.
Definition FrameInfo.h:2500
const FrameInfo::SystemInfo::CPU & get() const
Definition FrameInfo.h:2611
void load(const std::string &fileName)
Load from the given file.
FrameInfo copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition FrameInfo.h:2396
FrameInfo & set(const Metrics &value)
Set Metrics.
Definition FrameInfo.h:2427
const Metrics & metrics() const
Get Metrics.
Definition FrameInfo.h:2415
const FrameInfo::SystemInfo::OperatingSystem & get() const
Definition FrameInfo.h:2652
Class describing a range of values for a given type T.
Definition Range.h:75
NodeType
Definition NodeType.h:49
Definition EnvironmentInfo.h:74
The main Zivid namespace. All Zivid code is found here.
Definition Application.h:84