69# pragma warning(disable : 4251)
85 static constexpr const char *
path{
"" };
88 static constexpr const char *
name{
"Settings2D" };
92 R
"description(Settings used when capturing 2D images with a Zivid camera.)description"
105 static constexpr std::array<uint8_t, 3> binaryId{
's',
't',
'2' };
123 static constexpr const char *
path{
"Acquisition" };
126 static constexpr const char *
name{
"Acquisition" };
129 static constexpr const char *
description{ R
"description(Settings for one 2D acquisition.
131When capturing 2D HDR, all 2D acquisitions must have the same Aperture setting. Use Exposure Time
132or Gain to control the exposure instead.
150 static constexpr const char *
path{
"Acquisition/Aperture" };
153 static constexpr const char *
name{
"Aperture" };
157 R
"description(Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to
158the effective aperture diameter).
160When capturing 2D HDR, all 2D acquisitions must have the same Aperture setting. Use Exposure Time
161or Gain to control the exposure instead.
171 return { 1.4, 32.0 };
179 : m_opt{ verifyValue(
value) }
200 return m_opt == other.m_opt;
206 return m_opt != other.m_opt;
212 return m_opt < other.m_opt;
218 return m_opt > other.m_opt;
224 return m_opt <= other.m_opt;
230 return m_opt >= other.m_opt;
236 return stream <<
value.toString();
240 void setFromString(
const std::string &value);
242 constexpr ValueType
static verifyValue(
const ValueType &value)
244 return validRange().isInRange(value)
246 :
throw std::out_of_range{
"Aperture{ " + std::to_string(value) +
" } is not in range ["
247 + std::to_string(validRange().min()) +
", "
248 + std::to_string(validRange().max()) +
"]" };
251 std::optional<double> m_opt;
253 friend struct DataModel::Detail::Befriend<
Aperture>;
276 static constexpr const char *
path{
"Acquisition/Brightness" };
279 static constexpr const char *
name{
"Brightness" };
283 R
"description(Brightness controls the light output from the projector.
285Brightness above 1.0 may be needed when the distance between the camera and the scene is large,
286or in case of high levels of ambient lighting.
288When brightness is above 1.0 the duty cycle of the camera (the percentage of time the camera
289can capture) will be reduced. The duty cycle in boost mode is 50%. The duty cycle is calculated
290over a 10 second period. This limitation is enforced automatically by the camera. Calling capture
291when the duty cycle limit has been reached will cause the camera to first wait (sleep) for a
292duration of time to cool down, before capture will start.
310 : m_opt{ verifyValue(
value) }
331 return m_opt == other.m_opt;
337 return m_opt != other.m_opt;
343 return m_opt < other.m_opt;
349 return m_opt > other.m_opt;
355 return m_opt <= other.m_opt;
361 return m_opt >= other.m_opt;
367 return stream <<
value.toString();
371 void setFromString(
const std::string &value);
373 constexpr ValueType
static verifyValue(
const ValueType &value)
375 return validRange().isInRange(value)
377 :
throw std::out_of_range{
"Brightness{ " + std::to_string(value)
378 +
" } is not in range [" + std::to_string(validRange().min())
379 +
", " + std::to_string(validRange().max()) +
"]" };
382 std::optional<double> m_opt;
384 friend struct DataModel::Detail::Befriend<
Brightness>;
397 static constexpr const char *
path{
"Acquisition/ExposureTime" };
400 static constexpr const char *
name{
"ExposureTime" };
403 static constexpr const char *
description{ R
"description(Exposure time for the image.)description" };
411 return { std::chrono::microseconds{ 200 }, std::chrono::microseconds{ 100000 } };
419 : m_opt{ verifyValue(
value) }
426 std::chrono::microseconds
value()
const;
440 return m_opt == other.m_opt;
446 return m_opt != other.m_opt;
452 return m_opt < other.m_opt;
458 return m_opt > other.m_opt;
464 return m_opt <= other.m_opt;
470 return m_opt >= other.m_opt;
476 return stream <<
value.toString();
480 void setFromString(
const std::string &value);
482 constexpr ValueType
static verifyValue(
const ValueType &value)
484 return validRange().isInRange(value)
486 :
throw std::out_of_range{
"ExposureTime{ " + std::to_string(value.count())
487 +
" } is not in range ["
488 + std::to_string(validRange().min().count()) +
", "
489 + std::to_string(validRange().max().count()) +
"]" };
492 std::optional<std::chrono::microseconds> m_opt;
494 friend struct DataModel::Detail::Befriend<
ExposureTime>;
507 static constexpr const char *
path{
"Acquisition/Gain" };
510 static constexpr const char *
name{
"Gain" };
513 static constexpr const char *
description{ R
"description(Analog gain in the camera.)description" };
529 : m_opt{ verifyValue(
value) }
550 return m_opt == other.m_opt;
556 return m_opt != other.m_opt;
562 return m_opt < other.m_opt;
568 return m_opt > other.m_opt;
574 return m_opt <= other.m_opt;
580 return m_opt >= other.m_opt;
586 return stream <<
value.toString();
590 void setFromString(
const std::string &value);
592 constexpr ValueType
static verifyValue(
const ValueType &value)
594 return validRange().isInRange(value)
596 :
throw std::out_of_range{
"Gain{ " + std::to_string(value) +
" } is not in range ["
597 + std::to_string(validRange().min()) +
", "
598 + std::to_string(validRange().max()) +
"]" };
601 std::optional<double> m_opt;
603 friend struct DataModel::Detail::Befriend<
Gain>;
632 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
633 typename std::enable_if<
634 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
638 template<typename... Args>
642 using namespace Zivid::Detail::TypeTraits;
645 AllArgsDecayedAreUnique<Args...>::value,
646 "Found duplicate types among the arguments passed to Acquisition(...). "
647 "Types should be listed at most once.");
649 set(std::forward<Args>(args)...);
666 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
668 template<typename... Args>
672 using namespace Zivid::Detail::TypeTraits;
674 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
676 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
679 AllArgsDecayedAreUnique<Args...>::value,
680 "Found duplicate types among the arguments passed to set(...). "
681 "Types should be listed at most once.");
683 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
701 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
703 template<typename... Args>
707 using namespace Zivid::Detail::TypeTraits;
709 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
711 AllArgsAreDescendantNodes::value,
712 "All arguments passed to copyWith(...) must be descendant nodes.");
715 AllArgsDecayedAreUnique<Args...>::value,
716 "Found duplicate types among the arguments passed to copyWith(...). "
717 "Types should be listed at most once.");
720 copy.set(std::forward<Args>(args)...);
758 m_brightness = value;
765 return m_exposureTime;
771 return m_exposureTime;
777 m_exposureTime = value;
802 typename std::enable_if<std::is_same<T, Settings2D::Acquisition::Aperture>::value,
int>::type = 0>
810 typename std::enable_if<std::is_same<T, Settings2D::Acquisition::Brightness>::value,
int>::type = 0>
818 typename std::enable_if<std::is_same<T, Settings2D::Acquisition::ExposureTime>::value,
int>::type = 0>
821 return m_exposureTime;
826 typename std::enable_if<std::is_same<T, Settings2D::Acquisition::Gain>::value,
int>::type = 0>
832 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
838 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
844 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
847 return m_exposureTime;
850 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
892 void setFromString(
const std::string &value);
894 void setFromString(
const std::string &fullPath,
const std::string &value);
896 std::string getString(
const std::string &fullPath)
const;
899 Brightness m_brightness;
900 ExposureTime m_exposureTime;
903 friend struct DataModel::Detail::Befriend<
Acquisition>;
916 static constexpr const char *
path{
"Acquisitions" };
919 static constexpr const char *
name{
"Acquisitions" };
923 R
"description(List of acquisitions used for 2D capture.)description"
932 return { 0, std::numeric_limits<ValueType::size_type>::max() };
940 : m_value{ std::move(
value) }
949 const std::vector<Settings2D::Acquisition> &
value()
const;
955 std::size_t
size() const noexcept;
965 template<typename... Args>
968 m_value.emplace_back(std::forward<Args>(args)...);
1000 template<
typename F>
1003 for(
auto &child : m_value)
1010 template<
typename F>
1013 for(
const auto &child : m_value)
1020 using Iterator = std::vector<Settings2D::Acquisition>::iterator;
1046 return m_value == other.m_value;
1052 return m_value != other.m_value;
1058 return stream <<
value.toString();
1062 void setFromString(
const std::string &value);
1064 std::vector<Settings2D::Acquisition> m_value{};
1066 friend struct DataModel::Detail::Befriend<
Acquisitions>;
1079 static constexpr const char *
path{
"Processing" };
1082 static constexpr const char *
name{
"Processing" };
1085 static constexpr const char *
description{ R
"description(2D processing settings.)description" };
1097 static constexpr const char *
path{
"Processing/Color" };
1100 static constexpr const char *
name{
"Color" };
1103 static constexpr const char *
description{ R
"description(Color settings.)description" };
1115 static constexpr const char *
path{
"Processing/Color/Balance" };
1118 static constexpr const char *
name{
"Balance" };
1121 static constexpr const char *
description{ R
"description(Color balance settings.)description" };
1133 static constexpr const char *
path{
"Processing/Color/Balance/Blue" };
1136 static constexpr const char *
name{
"Blue" };
1140 R
"description(Digital gain applied to blue channel.)description"
1149 return { 1.0, 8.0 };
1157 : m_opt{ verifyValue(
value) }
1178 return m_opt == other.m_opt;
1184 return m_opt != other.m_opt;
1190 return m_opt < other.m_opt;
1196 return m_opt > other.m_opt;
1202 return m_opt <= other.m_opt;
1208 return m_opt >= other.m_opt;
1214 return stream <<
value.toString();
1218 void setFromString(
const std::string &value);
1220 constexpr ValueType
static verifyValue(
const ValueType &value)
1222 return validRange().isInRange(value)
1224 :
throw std::out_of_range{
"Blue{ " + std::to_string(value)
1225 +
" } is not in range ["
1226 + std::to_string(validRange().min()) +
", "
1227 + std::to_string(validRange().max()) +
"]" };
1230 std::optional<double> m_opt;
1232 friend struct DataModel::Detail::Befriend<
Blue>;
1245 static constexpr const char *
path{
"Processing/Color/Balance/Green" };
1248 static constexpr const char *
name{
"Green" };
1252 R
"description(Digital gain applied to green channel.)description"
1261 return { 1.0, 8.0 };
1269 : m_opt{ verifyValue(
value) }
1290 return m_opt == other.m_opt;
1296 return m_opt != other.m_opt;
1302 return m_opt < other.m_opt;
1308 return m_opt > other.m_opt;
1314 return m_opt <= other.m_opt;
1320 return m_opt >= other.m_opt;
1326 return stream <<
value.toString();
1330 void setFromString(
const std::string &value);
1332 constexpr ValueType
static verifyValue(
const ValueType &value)
1334 return validRange().isInRange(value)
1336 :
throw std::out_of_range{
"Green{ " + std::to_string(value)
1337 +
" } is not in range ["
1338 + std::to_string(validRange().min()) +
", "
1339 + std::to_string(validRange().max()) +
"]" };
1342 std::optional<double> m_opt;
1344 friend struct DataModel::Detail::Befriend<
Green>;
1357 static constexpr const char *
path{
"Processing/Color/Balance/Red" };
1360 static constexpr const char *
name{
"Red" };
1364 R
"description(Digital gain applied to red channel.)description"
1373 return { 1.0, 8.0 };
1381 : m_opt{ verifyValue(
value) }
1402 return m_opt == other.m_opt;
1408 return m_opt != other.m_opt;
1414 return m_opt < other.m_opt;
1420 return m_opt > other.m_opt;
1426 return m_opt <= other.m_opt;
1432 return m_opt >= other.m_opt;
1438 return stream <<
value.toString();
1442 void setFromString(
const std::string &value);
1444 constexpr ValueType
static verifyValue(
const ValueType &value)
1446 return validRange().isInRange(value)
1448 :
throw std::out_of_range{
"Red{ " + std::to_string(value)
1449 +
" } is not in range ["
1450 + std::to_string(validRange().min()) +
", "
1451 + std::to_string(validRange().max()) +
"]" };
1454 std::optional<double> m_opt;
1456 friend struct DataModel::Detail::Befriend<
Red>;
1483 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1484 typename std::enable_if<
1485 Zivid::Detail::TypeTraits::
1486 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
1489 template<typename... Args>
1493 using namespace Zivid::Detail::TypeTraits;
1496 AllArgsDecayedAreUnique<Args...>::value,
1497 "Found duplicate types among the arguments passed to Balance(...). "
1498 "Types should be listed at most once.");
1500 set(std::forward<Args>(args)...);
1516 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1518 template<typename... Args>
1522 using namespace Zivid::Detail::TypeTraits;
1524 using AllArgsAreDescendantNodes =
1525 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1527 AllArgsAreDescendantNodes::value,
1528 "All arguments passed to set(...) must be descendant nodes.");
1531 AllArgsDecayedAreUnique<Args...>::value,
1532 "Found duplicate types among the arguments passed to set(...). "
1533 "Types should be listed at most once.");
1535 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1552 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1554 template<typename... Args>
1558 using namespace Zivid::Detail::TypeTraits;
1560 using AllArgsAreDescendantNodes =
1561 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1563 AllArgsAreDescendantNodes::value,
1564 "All arguments passed to copyWith(...) must be descendant nodes.");
1567 AllArgsDecayedAreUnique<Args...>::value,
1568 "Found duplicate types among the arguments passed to copyWith(...). "
1569 "Types should be listed at most once.");
1572 copy.set(std::forward<Args>(args)...);
1635 typename std::enable_if<
1636 std::is_same<T, Settings2D::Processing::Color::Balance::Blue>::value,
1645 typename std::enable_if<
1646 std::is_same<T, Settings2D::Processing::Color::Balance::Green>::value,
1655 typename std::enable_if<
1656 std::is_same<T, Settings2D::Processing::Color::Balance::Red>::value,
1663 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1669 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
1675 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
1682 template<
typename F>
1691 template<
typename F>
1715 void setFromString(
const std::string &value);
1717 void setFromString(
const std::string &fullPath,
const std::string &value);
1719 std::string getString(
const std::string &fullPath)
const;
1725 friend struct DataModel::Detail::Befriend<
Balance>;
1738 static constexpr const char *
path{
"Processing/Color/Experimental" };
1741 static constexpr const char *
name{
"Experimental" };
1745 R
"description(Experimental color settings. These may be renamed, moved or deleted in the future.)description"
1772 static constexpr const char *
path{
"Processing/Color/Experimental/Mode" };
1775 static constexpr const char *
name{
"Mode" };
1779 R
"description(This setting controls how the color image is computed.
1781`automatic` is the default option. It performs tone mapping for HDR captures, but not for
1782single-acquisition captures. Use this mode with a single acquisition if you want to have
1783the most control over the colors in the image.
1785`toneMapping` uses all the acquisitions to create one merged and normalized color image. For
1786HDR captures the dynamic range of the captured images is usually higher than the 8-bit color
1787image range. `toneMapping` will map the HDR color data to the 8-bit color output range by
1788applying a scaling factor. `toneMapping` can also be used for single-acquisition captures to
1789normalize the captured color image to the full 8-bit output. Note that when using `toneMapping`
1790mode the color values can be inconsistent over repeated captures if you move, add or remove
1791objects in the scene. For the most control over the colors in the single-acquisition case,
1792select the `automatic` mode.
1816 : m_opt{ verifyValue(
value) }
1837 return stream <<
Mode{
value }.toString();
1843 return m_opt == other.m_opt;
1849 return m_opt != other.m_opt;
1855 return stream <<
value.toString();
1859 void setFromString(
const std::string &value);
1861 constexpr ValueType
static verifyValue(
const ValueType &value)
1863 return value == ValueType::automatic || value == ValueType::toneMapping
1865 :
throw std::invalid_argument{
1866 "Invalid value: Mode{ "
1867 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
1872 std::optional<ValueType> m_opt;
1874 friend struct DataModel::Detail::Befriend<
Mode>;
1877 using Descendants = std::tuple<Settings2D::Processing::Color::Experimental::Mode>;
1896 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1897 typename std::enable_if<
1898 Zivid::Detail::TypeTraits::
1899 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
1902 template<typename... Args>
1906 using namespace Zivid::Detail::TypeTraits;
1909 AllArgsDecayedAreUnique<Args...>::value,
1910 "Found duplicate types among the arguments passed to Experimental(...). "
1911 "Types should be listed at most once.");
1913 set(std::forward<Args>(args)...);
1927 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1929 template<typename... Args>
1933 using namespace Zivid::Detail::TypeTraits;
1935 using AllArgsAreDescendantNodes =
1936 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1938 AllArgsAreDescendantNodes::value,
1939 "All arguments passed to set(...) must be descendant nodes.");
1942 AllArgsDecayedAreUnique<Args...>::value,
1943 "Found duplicate types among the arguments passed to set(...). "
1944 "Types should be listed at most once.");
1946 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1961 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1963 template<typename... Args>
1967 using namespace Zivid::Detail::TypeTraits;
1969 using AllArgsAreDescendantNodes =
1970 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1972 AllArgsAreDescendantNodes::value,
1973 "All arguments passed to copyWith(...) must be descendant nodes.");
1976 AllArgsDecayedAreUnique<Args...>::value,
1977 "Found duplicate types among the arguments passed to copyWith(...). "
1978 "Types should be listed at most once.");
1981 copy.set(std::forward<Args>(args)...);
2006 typename std::enable_if<
2007 std::is_same<T, Settings2D::Processing::Color::Experimental::Mode>::value,
2014 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2021 template<
typename F>
2028 template<
typename F>
2050 void setFromString(
const std::string &value);
2052 void setFromString(
const std::string &fullPath,
const std::string &value);
2054 std::string getString(
const std::string &fullPath)
const;
2058 friend struct DataModel::Detail::Befriend<
Experimental>;
2073 static constexpr const char *
path{
"Processing/Color/Gamma" };
2076 static constexpr const char *
name{
"Gamma" };
2080 R
"description(Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma
2081greater than 1 makes the colors darker.
2091 return { 0.25, 1.5 };
2099 : m_opt{ verifyValue(
value) }
2120 return m_opt == other.m_opt;
2126 return m_opt != other.m_opt;
2132 return m_opt < other.m_opt;
2138 return m_opt > other.m_opt;
2144 return m_opt <= other.m_opt;
2150 return m_opt >= other.m_opt;
2156 return stream <<
value.toString();
2160 void setFromString(
const std::string &value);
2162 constexpr ValueType
static verifyValue(
const ValueType &value)
2164 return validRange().isInRange(value)
2166 :
throw std::out_of_range{
"Gamma{ " + std::to_string(value) +
" } is not in range ["
2167 + std::to_string(validRange().min()) +
", "
2168 + std::to_string(validRange().max()) +
"]" };
2171 std::optional<double> m_opt;
2173 friend struct DataModel::Detail::Befriend<
Gamma>;
2208 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2209 typename std::enable_if<
2210 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2214 template<typename... Args>
2218 using namespace Zivid::Detail::TypeTraits;
2221 AllArgsDecayedAreUnique<Args...>::value,
2222 "Found duplicate types among the arguments passed to Color(...). "
2223 "Types should be listed at most once.");
2225 set(std::forward<Args>(args)...);
2245 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2247 template<typename... Args>
2251 using namespace Zivid::Detail::TypeTraits;
2253 using AllArgsAreDescendantNodes =
2254 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2256 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2259 AllArgsDecayedAreUnique<Args...>::value,
2260 "Found duplicate types among the arguments passed to set(...). "
2261 "Types should be listed at most once.");
2263 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2284 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2286 template<typename... Args>
2290 using namespace Zivid::Detail::TypeTraits;
2292 using AllArgsAreDescendantNodes =
2293 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2295 AllArgsAreDescendantNodes::value,
2296 "All arguments passed to copyWith(...) must be descendant nodes.");
2299 AllArgsDecayedAreUnique<Args...>::value,
2300 "Found duplicate types among the arguments passed to copyWith(...). "
2301 "Types should be listed at most once.");
2304 copy.set(std::forward<Args>(args)...);
2330 m_balance.
set(value);
2337 m_balance.
set(value);
2344 m_balance.
set(value);
2351 return m_experimental;
2357 return m_experimental;
2363 m_experimental = value;
2370 m_experimental.
set(value);
2395 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance>::value,
int>::type =
2404 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Blue>::value,
int>::
2414 enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Green>::value,
int>::type = 0>
2422 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Red>::value,
int>::
2431 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Experimental>::value,
int>::
2435 return m_experimental;
2440 typename std::enable_if<
2441 std::is_same<T, Settings2D::Processing::Color::Experimental::Mode>::value,
2450 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Gamma>::value,
int>::type =
2457 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2463 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2466 return m_experimental;
2469 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2476 template<
typename F>
2485 template<
typename F>
2509 void setFromString(
const std::string &value);
2511 void setFromString(
const std::string &fullPath,
const std::string &value);
2513 std::string getString(
const std::string &fullPath)
const;
2519 friend struct DataModel::Detail::Befriend<
Color>;
2556 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2557 typename std::enable_if<
2558 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2562 template<typename... Args>
2566 using namespace Zivid::Detail::TypeTraits;
2569 AllArgsDecayedAreUnique<Args...>::value,
2570 "Found duplicate types among the arguments passed to Processing(...). "
2571 "Types should be listed at most once.");
2573 set(std::forward<Args>(args)...);
2594 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2596 template<typename... Args>
2600 using namespace Zivid::Detail::TypeTraits;
2602 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2604 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2607 AllArgsDecayedAreUnique<Args...>::value,
2608 "Found duplicate types among the arguments passed to set(...). "
2609 "Types should be listed at most once.");
2611 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2633 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2635 template<typename... Args>
2639 using namespace Zivid::Detail::TypeTraits;
2641 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2643 AllArgsAreDescendantNodes::value,
2644 "All arguments passed to copyWith(...) must be descendant nodes.");
2647 AllArgsDecayedAreUnique<Args...>::value,
2648 "Found duplicate types among the arguments passed to copyWith(...). "
2649 "Types should be listed at most once.");
2652 copy.set(std::forward<Args>(args)...);
2726 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color>::value,
int>::type = 0>
2734 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance>::value,
int>::type = 0>
2742 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Blue>::value,
int>::
2751 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Green>::value,
int>::
2760 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Red>::value,
int>::
2769 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Experimental>::value,
int>::
2779 enable_if<std::is_same<T, Settings2D::Processing::Color::Experimental::Mode>::value,
int>::type = 0>
2787 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Gamma>::value,
int>::type = 0>
2793 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2800 template<
typename F>
2807 template<
typename F>
2829 void setFromString(
const std::string &value);
2831 void setFromString(
const std::string &fullPath,
const std::string &value);
2833 std::string getString(
const std::string &fullPath)
const;
2837 friend struct DataModel::Detail::Befriend<
Processing>;
2851 static constexpr const char *
path{
"Sampling" };
2854 static constexpr const char *
name{
"Sampling" };
2857 static constexpr const char *
description{ R
"description(Sampling settings.
2886 static constexpr const char *
path{
"Sampling/Color" };
2889 static constexpr const char *
name{
"Color" };
2892 static constexpr const char *
description{ R
"description(Choose how to sample colors for the 2D image.
2894- `rgb` option gives an image with full colors.
2895- `grayscale` option gives a grayscale (r=g=b) image, which
2896 can be acquired faster than full colors.
2897- `rgbStrongAmbientLight` option gives an image with full colors and reduced
2898 color noise. This option should be chosen only for applications which
2899 suffer from high color noise and with high amounts of ambient light in the
2901- `rgbAmbientSuppression` option gives an image with full colors while
2902 suppressing the ambient light. The Zivid 2+R and Zivid 3 cameras suppress ambient
2903 light by default, and therefore do not need the additional option
2904 `rgbAmbientSuppression`.
2907The `grayscale`, `rgbStrongAmbientLight` and `rgbAmbientSuppression` options are not available on all camera models.
2937 : m_opt{ verifyValue(
value) }
2964 return m_opt == other.m_opt;
2970 return m_opt != other.m_opt;
2976 return stream <<
value.toString();
2980 void setFromString(
const std::string &value);
2982 constexpr ValueType
static verifyValue(
const ValueType &value)
2984 return value == ValueType::rgb || value == ValueType::grayscale
2985 || value == ValueType::rgbStrongAmbientLight
2986 || value == ValueType::rgbAmbientSuppression
2988 :
throw std::invalid_argument{
2989 "Invalid value: Color{ "
2990 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
2994 std::optional<ValueType> m_opt;
2996 friend struct DataModel::Detail::Befriend<
Color>;
3016 static constexpr const char *
path{
"Sampling/Interval" };
3019 static constexpr const char *
name{
"Interval" };
3023 R
"description(Sampling interval controls the interval between successive sensor operations (e.g.,
3024structured light pattern projection and image exposure), aligned to external
3025frequencies (e.g., 50 Hz, 60 Hz grid) or to other devices (e.g., barcode scanners
3026at 100 Hz). The requested interval is a target: the sensor operations will happen
3027at this rate if the it can fit the chosen exposure time plus some processing overhead.
3028Otherwise, the sampling interval is rounded up to the nearest suitable integer multiple
3029(e.g., n * 10 ms for 100 Hz and n * 8.33 ms for 120 Hz).
3046 static constexpr const char *
path{
"Sampling/Interval/Duration" };
3049 static constexpr const char *
name{
"Duration" };
3053 R
"description(Duration between successive sensor operations, in microseconds. The effective interval
3054might be rounded up to the nearest suitable integer multiple and will never be shorter
3055than exposure time plus some processing overhead.
3065 return { std::chrono::microseconds{ 1000 }, std::chrono::microseconds{ 10000 } };
3073 : m_opt{ verifyValue(
value) }
3080 std::chrono::microseconds
value()
const;
3094 return m_opt == other.m_opt;
3100 return m_opt != other.m_opt;
3106 return m_opt < other.m_opt;
3112 return m_opt > other.m_opt;
3118 return m_opt <= other.m_opt;
3124 return m_opt >= other.m_opt;
3130 return stream <<
value.toString();
3134 void setFromString(
const std::string &value);
3136 constexpr ValueType
static verifyValue(
const ValueType &value)
3138 return validRange().isInRange(value)
3140 :
throw std::out_of_range{
"Duration{ " + std::to_string(value.count())
3141 +
" } is not in range ["
3142 + std::to_string(validRange().min().count()) +
", "
3143 + std::to_string(validRange().max().count()) +
"]" };
3146 std::optional<std::chrono::microseconds> m_opt;
3148 friend struct DataModel::Detail::Befriend<
Duration>;
3161 static constexpr const char *
path{
"Sampling/Interval/Enabled" };
3164 static constexpr const char *
name{
"Enabled" };
3168 R
"description(Enable or disable sampling interval.)description"
3179 return {
false,
true };
3208 return m_opt == other.m_opt;
3214 return m_opt != other.m_opt;
3220 return stream <<
value.toString();
3224 void setFromString(
const std::string &value);
3226 std::optional<bool> m_opt;
3228 friend struct DataModel::Detail::Befriend<
Enabled>;
3232 std::tuple<Settings2D::Sampling::Interval::Duration, Settings2D::Sampling::Interval::Enabled>;
3252 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3253 typename std::enable_if<
3254 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
3258 template<typename... Args>
3262 using namespace Zivid::Detail::TypeTraits;
3265 AllArgsDecayedAreUnique<Args...>::value,
3266 "Found duplicate types among the arguments passed to Interval(...). "
3267 "Types should be listed at most once.");
3269 set(std::forward<Args>(args)...);
3284 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3286 template<typename... Args>
3290 using namespace Zivid::Detail::TypeTraits;
3292 using AllArgsAreDescendantNodes =
3293 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3295 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
3298 AllArgsDecayedAreUnique<Args...>::value,
3299 "Found duplicate types among the arguments passed to set(...). "
3300 "Types should be listed at most once.");
3302 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3318 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3320 template<typename... Args>
3324 using namespace Zivid::Detail::TypeTraits;
3326 using AllArgsAreDescendantNodes =
3327 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3329 AllArgsAreDescendantNodes::value,
3330 "All arguments passed to copyWith(...) must be descendant nodes.");
3333 AllArgsDecayedAreUnique<Args...>::value,
3334 "Found duplicate types among the arguments passed to copyWith(...). "
3335 "Types should be listed at most once.");
3338 copy.set(std::forward<Args>(args)...);
3382 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Interval::Duration>::value,
int>::
3391 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Interval::Enabled>::value,
int>::
3398 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3404 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3411 template<
typename F>
3419 template<
typename F>
3442 void setFromString(
const std::string &value);
3444 void setFromString(
const std::string &fullPath,
const std::string &value);
3446 std::string getString(
const std::string &fullPath)
const;
3448 Duration m_duration;
3451 friend struct DataModel::Detail::Befriend<
Interval>;
3466 static constexpr const char *
path{
"Sampling/Pixel" };
3469 static constexpr const char *
name{
"Pixel" };
3473 R
"description(Set the pixel sampling to use for the 2D capture. This setting defines how the camera sensor is sampled.
3474When doing 2D+3D capture, picking the same value that is used for 3D is generally recommended.
3514 : m_opt{ verifyValue(
value) }
3541 return m_opt == other.m_opt;
3547 return m_opt != other.m_opt;
3553 return stream <<
value.toString();
3557 void setFromString(
const std::string &value);
3559 constexpr ValueType
static verifyValue(
const ValueType &value)
3561 return value == ValueType::all || value == ValueType::blueSubsample2x2
3562 || value == ValueType::redSubsample2x2 || value == ValueType::blueSubsample4x4
3563 || value == ValueType::redSubsample4x4 || value == ValueType::by2x2
3564 || value == ValueType::by4x4
3566 :
throw std::invalid_argument{
3567 "Invalid value: Pixel{ "
3568 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
3572 std::optional<ValueType> m_opt;
3574 friend struct DataModel::Detail::Befriend<
Pixel>;
3605 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3606 typename std::enable_if<
3607 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
3611 template<typename... Args>
3615 using namespace Zivid::Detail::TypeTraits;
3618 AllArgsDecayedAreUnique<Args...>::value,
3619 "Found duplicate types among the arguments passed to Sampling(...). "
3620 "Types should be listed at most once.");
3622 set(std::forward<Args>(args)...);
3640 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3642 template<typename... Args>
3646 using namespace Zivid::Detail::TypeTraits;
3648 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3650 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
3653 AllArgsDecayedAreUnique<Args...>::value,
3654 "Found duplicate types among the arguments passed to set(...). "
3655 "Types should be listed at most once.");
3657 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3676 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3678 template<typename... Args>
3682 using namespace Zivid::Detail::TypeTraits;
3684 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3686 AllArgsAreDescendantNodes::value,
3687 "All arguments passed to copyWith(...) must be descendant nodes.");
3690 AllArgsDecayedAreUnique<Args...>::value,
3691 "Found duplicate types among the arguments passed to copyWith(...). "
3692 "Types should be listed at most once.");
3695 copy.set(std::forward<Args>(args)...);
3740 m_interval.
set(value);
3747 m_interval.
set(value);
3772 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Color>::value,
int>::type = 0>
3780 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Interval>::value,
int>::type = 0>
3788 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Interval::Duration>::value,
int>::type =
3797 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Interval::Enabled>::value,
int>::type = 0>
3805 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Pixel>::value,
int>::type = 0>
3811 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3817 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3823 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3830 template<
typename F>
3839 template<
typename F>
3863 void setFromString(
const std::string &value);
3865 void setFromString(
const std::string &fullPath,
const std::string &value);
3867 std::string getString(
const std::string &fullPath)
const;
3870 Interval m_interval;
3873 friend struct DataModel::Detail::Befriend<
Sampling>;
3943 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3944 typename std::enable_if<
3945 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
3948 template<typename... Args>
3952 using namespace Zivid::Detail::TypeTraits;
3955 AllArgsDecayedAreUnique<Args...>::value,
3956 "Found duplicate types among the arguments passed to Settings2D(...). "
3957 "Types should be listed at most once.");
3959 set(std::forward<Args>(args)...);
3988 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3990 template<typename... Args>
3994 using namespace Zivid::Detail::TypeTraits;
3996 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3998 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
4001 AllArgsDecayedAreUnique<Args...>::value,
4002 "Found duplicate types among the arguments passed to set(...). "
4003 "Types should be listed at most once.");
4005 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4035 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4037 template<typename... Args>
4041 using namespace Zivid::Detail::TypeTraits;
4043 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4045 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
4048 AllArgsDecayedAreUnique<Args...>::value,
4049 "Found duplicate types among the arguments passed to copyWith(...). "
4050 "Types should be listed at most once.");
4053 copy.set(std::forward<Args>(args)...);
4060 return m_acquisitions;
4066 return m_acquisitions;
4072 m_acquisitions = value;
4079 return m_processing;
4085 return m_processing;
4091 m_processing = value;
4098 m_processing.
set(value);
4105 m_processing.
set(value);
4112 m_processing.
set(value);
4119 m_processing.
set(value);
4126 m_processing.
set(value);
4133 m_processing.
set(value);
4140 m_processing.
set(value);
4147 m_processing.
set(value);
4173 m_sampling.
set(value);
4180 m_sampling.
set(value);
4187 m_sampling.
set(value);
4194 m_sampling.
set(value);
4201 m_sampling.
set(value);
4205 template<typename T, typename std::enable_if<std::is_same<T, Settings2D::Acquisitions>::value,
int>::type = 0>
4208 return m_acquisitions;
4211 template<typename T, typename std::enable_if<std::is_same<T, Settings2D::Processing>::value,
int>::type = 0>
4214 return m_processing;
4219 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color>::value,
int>::type = 0>
4227 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance>::value,
int>::type = 0>
4235 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Blue>::value,
int>::type =
4244 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Green>::value,
int>::type =
4253 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Balance::Red>::value,
int>::type = 0>
4261 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Experimental>::value,
int>::type = 0>
4269 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Experimental::Mode>::value,
int>::
4278 typename std::enable_if<std::is_same<T, Settings2D::Processing::Color::Gamma>::value,
int>::type = 0>
4284 template<typename T, typename std::enable_if<std::is_same<T, Settings2D::Sampling>::value,
int>::type = 0>
4292 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Color>::value,
int>::type = 0>
4300 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Interval>::value,
int>::type = 0>
4308 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Interval::Duration>::value,
int>::type = 0>
4316 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Interval::Enabled>::value,
int>::type = 0>
4324 typename std::enable_if<std::is_same<T, Settings2D::Sampling::Pixel>::value,
int>::type = 0>
4330 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4333 return m_acquisitions;
4336 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4339 return m_processing;
4342 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
4349 template<
typename F>
4358 template<
typename F>
4382 void save(
const std::string &fileName)
const;
4385 void load(
const std::string &fileName);
4388 void setFromString(
const std::string &value);
4390 void setFromString(
const std::string &fullPath,
const std::string &value);
4392 std::string getString(
const std::string &fullPath)
const;
4398 friend struct DataModel::Detail::Befriend<
Settings2D>;
4403 struct Settings2D::Version<8>
4416 ZIVID_CORE_EXPORT void save(
const Zivid::Settings2D &dataModel, std::ostream &ostream);
4417 ZIVID_CORE_EXPORT void load(Zivid::Settings2D &dataModel, std::istream &istream);
4419 ZIVID_CORE_EXPORT std::vector<uint8_t> serializeToBinaryVector(
const Zivid::Settings2D &source);
4420 ZIVID_CORE_EXPORT void deserializeFromBinaryVector(Zivid::Settings2D &dest,
const std::vector<uint8_t> &data);
4426# pragma warning(pop)
4430# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
4435 struct tuple_size<Zivid::Settings2D::Processing> : integral_constant<size_t, 1>
4439 struct tuple_element<i, Zivid::Settings2D::Processing>
4441 static_assert(i < tuple_size<Zivid::Settings2D::Processing>::value,
"Index must be less than 1");
4444 =
decltype(declval<Zivid::Settings2D::Processing>().get<i>());
4448 struct tuple_size<Zivid::Settings2D::Processing::Color> : integral_constant<size_t, 3>
4452 struct tuple_element<i, Zivid::Settings2D::Processing::Color>
4454 static_assert(i < tuple_size<Zivid::Settings2D::Processing::Color>::value,
"Index must be less than 3");
4457 =
decltype(declval<Zivid::Settings2D::Processing::Color>().get<i>());
4461 struct tuple_size<Zivid::Settings2D::Processing::Color::Balance> : integral_constant<size_t, 3>
4465 struct tuple_element<i, Zivid::Settings2D::Processing::Color::Balance>
4468 i < tuple_size<Zivid::Settings2D::Processing::Color::Balance>::value,
4469 "Index must be less than 3");
4472 =
decltype(declval<Zivid::Settings2D::Processing::Color::Balance>().get<i>());
4476 struct tuple_size<Zivid::Settings2D::Processing::Color::Experimental> : integral_constant<size_t, 1>
4480 struct tuple_element<i, Zivid::Settings2D::Processing::Color::Experimental>
4483 i < tuple_size<Zivid::Settings2D::Processing::Color::Experimental>::value,
4484 "Index must be less than 1");
4487 =
decltype(declval<Zivid::Settings2D::Processing::Color::Experimental>().get<i>());
4491 struct tuple_size<Zivid::Settings2D::Sampling> : integral_constant<size_t, 3>
4495 struct tuple_element<i, Zivid::Settings2D::Sampling>
4497 static_assert(i < tuple_size<Zivid::Settings2D::Sampling>::value,
"Index must be less than 3");
4500 =
decltype(declval<Zivid::Settings2D::Sampling>().get<i>());
4504 struct tuple_size<Zivid::Settings2D::Sampling::Interval> : integral_constant<size_t, 2>
4508 struct tuple_element<i, Zivid::Settings2D::Sampling::Interval>
4510 static_assert(i < tuple_size<Zivid::Settings2D::Sampling::Interval>::value,
"Index must be less than 2");
4513 =
decltype(declval<Zivid::Settings2D::Sampling::Interval>().get<i>());
4517 struct tuple_size<Zivid::Settings2D> : integral_constant<size_t, 3>
4521 struct tuple_element<i, Zivid::Settings2D>
4523 static_assert(i < tuple_size<Zivid::Settings2D>::value,
"Index must be less than 3");
4526 =
decltype(declval<Zivid::Settings2D>().get<i>());
4535#if defined(__has_include) && !defined(NO_DOC)
4536# if __has_include("Zivid/Settings2DInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
4537# include "Zivid/Settings2DInternal.h"
#define ZIVID_CORE_EXPORT
Definition CoreExport.h:56
Class describing a range of values for a given type T.
Definition Range.h:75
Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to the effe...
Definition Settings2D.h:144
void reset()
Reset the node to unset state.
bool operator!=(const Aperture &other) const
Comparison operator.
Definition Settings2D.h:204
static constexpr const char * name
The name of this value.
Definition Settings2D.h:153
friend std::ostream & operator<<(std::ostream &stream, const Aperture &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:234
bool operator<(const Aperture &other) const
Comparison operator.
Definition Settings2D.h:210
constexpr Aperture(double value)
Constructor.
Definition Settings2D.h:178
static constexpr Range< double > validRange()
The range of valid values for Aperture.
Definition Settings2D.h:169
bool operator>=(const Aperture &other) const
Comparison operator.
Definition Settings2D.h:228
bool operator<=(const Aperture &other) const
Comparison operator.
Definition Settings2D.h:222
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:150
std::string toString() const
Get the value as string.
double value() const
Get the value.
bool operator>(const Aperture &other) const
Comparison operator.
Definition Settings2D.h:216
Aperture()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings2D.h:166
bool operator==(const Aperture &other) const
Comparison operator.
Definition Settings2D.h:198
static constexpr const char * description
The description for this value.
Definition Settings2D.h:156
bool hasValue() const
Check if the value is set.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:147
Brightness controls the light output from the projector.
Definition Settings2D.h:270
bool operator==(const Brightness &other) const
Comparison operator.
Definition Settings2D.h:329
bool operator<=(const Brightness &other) const
Comparison operator.
Definition Settings2D.h:353
bool operator>(const Brightness &other) const
Comparison operator.
Definition Settings2D.h:347
bool operator<(const Brightness &other) const
Comparison operator.
Definition Settings2D.h:341
static constexpr Range< double > validRange()
The range of valid values for Brightness.
Definition Settings2D.h:300
static constexpr const char * name
The name of this value.
Definition Settings2D.h:279
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:273
constexpr Brightness(double value)
Constructor.
Definition Settings2D.h:309
std::string toString() const
Get the value as string.
bool operator!=(const Brightness &other) const
Comparison operator.
Definition Settings2D.h:335
bool operator>=(const Brightness &other) const
Comparison operator.
Definition Settings2D.h:359
friend std::ostream & operator<<(std::ostream &stream, const Brightness &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:365
static constexpr const char * description
The description for this value.
Definition Settings2D.h:282
double value() const
Get the value.
Brightness()=default
Default constructor.
bool hasValue() const
Check if the value is set.
void reset()
Reset the node to unset state.
double ValueType
The type of the underlying value.
Definition Settings2D.h:297
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:276
Exposure time for the image.
Definition Settings2D.h:391
static constexpr const char * description
The description for this value.
Definition Settings2D.h:403
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:394
bool operator>(const ExposureTime &other) const
Comparison operator.
Definition Settings2D.h:456
static constexpr const char * name
The name of this value.
Definition Settings2D.h:400
std::chrono::microseconds ValueType
The type of the underlying value.
Definition Settings2D.h:406
bool operator>=(const ExposureTime &other) const
Comparison operator.
Definition Settings2D.h:468
void reset()
Reset the node to unset state.
constexpr ExposureTime(std::chrono::microseconds value)
Constructor.
Definition Settings2D.h:418
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:397
std::chrono::microseconds value() const
Get the value.
bool operator<(const ExposureTime &other) const
Comparison operator.
Definition Settings2D.h:450
bool operator<=(const ExposureTime &other) const
Comparison operator.
Definition Settings2D.h:462
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for ExposureTime.
Definition Settings2D.h:409
bool operator!=(const ExposureTime &other) const
Comparison operator.
Definition Settings2D.h:444
std::string toString() const
Get the value as string.
ExposureTime()=default
Default constructor.
bool operator==(const ExposureTime &other) const
Comparison operator.
Definition Settings2D.h:438
friend std::ostream & operator<<(std::ostream &stream, const ExposureTime &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:474
bool hasValue() const
Check if the value is set.
Analog gain in the camera.
Definition Settings2D.h:501
bool operator>(const Gain &other) const
Comparison operator.
Definition Settings2D.h:566
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:504
bool operator!=(const Gain &other) const
Comparison operator.
Definition Settings2D.h:554
bool operator==(const Gain &other) const
Comparison operator.
Definition Settings2D.h:548
friend std::ostream & operator<<(std::ostream &stream, const Gain &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:584
double ValueType
The type of the underlying value.
Definition Settings2D.h:516
Gain()=default
Default constructor.
std::string toString() const
Get the value as string.
static constexpr const char * description
The description for this value.
Definition Settings2D.h:513
void reset()
Reset the node to unset state.
static constexpr const char * name
The name of this value.
Definition Settings2D.h:510
constexpr Gain(double value)
Constructor.
Definition Settings2D.h:528
double value() const
Get the value.
bool hasValue() const
Check if the value is set.
bool operator>=(const Gain &other) const
Comparison operator.
Definition Settings2D.h:578
bool operator<=(const Gain &other) const
Comparison operator.
Definition Settings2D.h:572
static constexpr Range< double > validRange()
The range of valid values for Gain.
Definition Settings2D.h:519
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:507
bool operator<(const Gain &other) const
Comparison operator.
Definition Settings2D.h:560
Settings for one 2D acquisition.
Definition Settings2D.h:117
const Settings2D::Acquisition::Gain & get() const
Definition Settings2D.h:827
const ExposureTime & exposureTime() const
Get ExposureTime.
Definition Settings2D.h:763
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:858
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:868
const Settings2D::Acquisition::Aperture & get() const
Definition Settings2D.h:803
ExposureTime & exposureTime()
Get ExposureTime.
Definition Settings2D.h:769
friend std::ostream & operator<<(std::ostream &stream, const Acquisition &value)
Operator to send the value as string to a stream.
Definition Settings2D.h:886
bool operator!=(const Acquisition &other) const
Inequality operator.
Acquisition & set(const Gain &value)
Set Gain.
Definition Settings2D.h:794
std::string toString() const
Get the value as string.
static constexpr const char * name
The name of this value.
Definition Settings2D.h:126
Acquisition & set(const Aperture &value)
Set Aperture.
Definition Settings2D.h:737
Gain & gain()
Get Gain.
Definition Settings2D.h:788
bool operator==(const Acquisition &other) const
Equality operator.
Acquisition copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings2D.h:705
void set(Args &&...args)
Set multiple arguments.
Definition Settings2D.h:670
const Settings2D::Acquisition::ExposureTime & get() const
Definition Settings2D.h:819
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:123
Acquisition()
Default constructor.
Aperture & aperture()
Get Aperture.
Definition Settings2D.h:731
static constexpr const char * description
The description for this value.
Definition Settings2D.h:129
const Aperture & aperture() const
Get Aperture.
Definition Settings2D.h:725
Acquisition & set(const Brightness &value)
Set Brightness.
Definition Settings2D.h:756
const Brightness & brightness() const
Get Brightness.
Definition Settings2D.h:744
Brightness & brightness()
Get Brightness.
Definition Settings2D.h:750
std::tuple< Settings2D::Acquisition::Aperture, Settings2D::Acquisition::Brightness, Settings2D::Acquisition::ExposureTime, Settings2D::Acquisition::Gain > Descendants
Definition Settings2D.h:606
const Gain & gain() const
Get Gain.
Definition Settings2D.h:782
const Settings2D::Acquisition::Brightness & get() const
Definition Settings2D.h:811
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:120
Acquisition & set(const ExposureTime &value)
Set ExposureTime.
Definition Settings2D.h:775
List of acquisitions used for 2D capture.
Definition Settings2D.h:910
const Settings2D::Acquisition & at(std::size_t pos) const
Returns a const reference to the element at position pos in the list.
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Acquisitions.
Definition Settings2D.h:930
Acquisitions(std::initializer_list< Settings2D::Acquisition > value)
Constructor.
Definition Settings2D.h:944
static constexpr const char * description
The description for this value.
Definition Settings2D.h:922
Settings2D::Acquisition & operator[](std::size_t pos)
Returns a reference to the element at position pos in the list.
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:916
const Settings2D::Acquisition & operator[](std::size_t pos) const
Returns a const reference to the element at position pos in the list.
ConstIterator cbegin() const noexcept
Returns a constant iterator to the first element of the list.
Acquisitions(std::vector< Settings2D::Acquisition > value)
Constructor.
Definition Settings2D.h:939
void forEach(const F &f)
Run the given function on each element in the list.
Definition Settings2D.h:1001
ConstIterator cend() const noexcept
Returns a constant iterator to the element following the last element of the list.
Settings2D::Acquisition & at(std::size_t pos)
Returns a reference to the element at position pos in the list.
void forEach(const F &f) const
Run the given function on each element in the list.
Definition Settings2D.h:1011
std::vector< Settings2D::Acquisition > ValueType
The type of the underlying value.
Definition Settings2D.h:927
Iterator begin() noexcept
Returns an iterator to the first element of the list.
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const Acquisitions &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:1056
std::vector< Settings2D::Acquisition >::iterator Iterator
Iterator type for Acquisitions.
Definition Settings2D.h:1020
std::vector< Settings2D::Acquisition >::const_iterator ConstIterator
Constant iterator type for Acquisitions.
Definition Settings2D.h:1029
std::size_t size() const noexcept
Get the size of the list.
bool operator!=(const Acquisitions &other) const
Comparison operator.
Definition Settings2D.h:1050
Acquisitions()=default
Default constructor.
void emplaceBack(Args &&...args)
Appends a new element to the end of the list.
Definition Settings2D.h:966
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:913
static constexpr const char * name
The name of this value.
Definition Settings2D.h:919
Iterator end() noexcept
Returns an iterator to the element following the last element of the list.
bool isEmpty() const noexcept
Check if the list is empty.
const std::vector< Settings2D::Acquisition > & value() const
Get the value.
Digital gain applied to blue channel.
Definition Settings2D.h:1127
double value() const
Get the value.
static constexpr const char * name
The name of this value.
Definition Settings2D.h:1136
friend std::ostream & operator<<(std::ostream &stream, const Blue &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:1212
bool operator<=(const Blue &other) const
Comparison operator.
Definition Settings2D.h:1200
bool operator==(const Blue &other) const
Comparison operator.
Definition Settings2D.h:1176
void reset()
Reset the node to unset state.
double ValueType
The type of the underlying value.
Definition Settings2D.h:1144
bool operator>(const Blue &other) const
Comparison operator.
Definition Settings2D.h:1194
std::string toString() const
Get the value as string.
constexpr Blue(double value)
Constructor.
Definition Settings2D.h:1156
bool operator!=(const Blue &other) const
Comparison operator.
Definition Settings2D.h:1182
static constexpr const char * description
The description for this value.
Definition Settings2D.h:1139
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:1130
bool hasValue() const
Check if the value is set.
static constexpr Range< double > validRange()
The range of valid values for Blue.
Definition Settings2D.h:1147
bool operator<(const Blue &other) const
Comparison operator.
Definition Settings2D.h:1188
bool operator>=(const Blue &other) const
Comparison operator.
Definition Settings2D.h:1206
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:1133
Blue()=default
Default constructor.
Digital gain applied to green channel.
Definition Settings2D.h:1239
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:1242
double ValueType
The type of the underlying value.
Definition Settings2D.h:1256
static constexpr Range< double > validRange()
The range of valid values for Green.
Definition Settings2D.h:1259
bool operator==(const Green &other) const
Comparison operator.
Definition Settings2D.h:1288
std::string toString() const
Get the value as string.
constexpr Green(double value)
Constructor.
Definition Settings2D.h:1268
static constexpr const char * name
The name of this value.
Definition Settings2D.h:1248
friend std::ostream & operator<<(std::ostream &stream, const Green &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:1324
static constexpr const char * description
The description for this value.
Definition Settings2D.h:1251
bool operator<(const Green &other) const
Comparison operator.
Definition Settings2D.h:1300
bool hasValue() const
Check if the value is set.
bool operator<=(const Green &other) const
Comparison operator.
Definition Settings2D.h:1312
Green()=default
Default constructor.
bool operator>=(const Green &other) const
Comparison operator.
Definition Settings2D.h:1318
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:1245
bool operator!=(const Green &other) const
Comparison operator.
Definition Settings2D.h:1294
bool operator>(const Green &other) const
Comparison operator.
Definition Settings2D.h:1306
double value() const
Get the value.
void reset()
Reset the node to unset state.
Digital gain applied to red channel.
Definition Settings2D.h:1351
double ValueType
The type of the underlying value.
Definition Settings2D.h:1368
friend std::ostream & operator<<(std::ostream &stream, const Red &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:1436
bool operator>=(const Red &other) const
Comparison operator.
Definition Settings2D.h:1430
Red()=default
Default constructor.
bool operator<(const Red &other) const
Comparison operator.
Definition Settings2D.h:1412
bool operator<=(const Red &other) const
Comparison operator.
Definition Settings2D.h:1424
std::string toString() const
Get the value as string.
static constexpr Range< double > validRange()
The range of valid values for Red.
Definition Settings2D.h:1371
bool hasValue() const
Check if the value is set.
bool operator!=(const Red &other) const
Comparison operator.
Definition Settings2D.h:1406
static constexpr const char * name
The name of this value.
Definition Settings2D.h:1360
double value() const
Get the value.
constexpr Red(double value)
Constructor.
Definition Settings2D.h:1380
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:1354
bool operator==(const Red &other) const
Comparison operator.
Definition Settings2D.h:1400
void reset()
Reset the node to unset state.
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:1357
bool operator>(const Red &other) const
Comparison operator.
Definition Settings2D.h:1418
static constexpr const char * description
The description for this value.
Definition Settings2D.h:1363
Color balance settings.
Definition Settings2D.h:1109
const Settings2D::Processing::Color::Balance::Red & get() const
Definition Settings2D.h:1658
Blue & blue()
Get Blue.
Definition Settings2D.h:1583
bool operator!=(const Balance &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 Settings2D.h:1692
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:1683
std::tuple< Settings2D::Processing::Color::Balance::Blue, Settings2D::Processing::Color::Balance::Green, Settings2D::Processing::Color::Balance::Red > Descendants
Definition Settings2D.h:1459
const Blue & blue() const
Get Blue.
Definition Settings2D.h:1577
bool operator==(const Balance &other) const
Equality operator.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:1112
Balance & set(const Blue &value)
Set Blue.
Definition Settings2D.h:1589
Red & red()
Get Red.
Definition Settings2D.h:1621
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:1115
Green & green()
Get Green.
Definition Settings2D.h:1602
Balance & set(const Green &value)
Set Green.
Definition Settings2D.h:1608
Balance copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings2D.h:1556
const Green & green() const
Get Green.
Definition Settings2D.h:1596
Balance()
Default constructor.
static constexpr const char * description
The description for this value.
Definition Settings2D.h:1121
Balance & set(const Red &value)
Set Red.
Definition Settings2D.h:1627
const Settings2D::Processing::Color::Balance::Green & get() const
Definition Settings2D.h:1648
const Red & red() const
Get Red.
Definition Settings2D.h:1615
std::string toString() const
Get the value as string.
void set(Args &&...args)
Set multiple arguments.
Definition Settings2D.h:1520
friend std::ostream & operator<<(std::ostream &stream, const Balance &value)
Operator to send the value as string to a stream.
Definition Settings2D.h:1709
const Settings2D::Processing::Color::Balance::Blue & get() const
Definition Settings2D.h:1638
static constexpr const char * name
The name of this value.
Definition Settings2D.h:1118
This setting controls how the color image is computed.
Definition Settings2D.h:1766
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:1772
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:1769
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:1853
static constexpr const char * name
The name of this value.
Definition Settings2D.h:1775
static constexpr const char * description
The description for this value.
Definition Settings2D.h:1778
static const Mode toneMapping
toneMapping
Definition Settings2D.h:1803
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings2D.h:1841
static const Mode automatic
automatic
Definition Settings2D.h:1802
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings2D.h:1847
Mode()=default
Default constructor.
void reset()
Reset the node to unset state.
constexpr Mode(ValueType value)
Constructor.
Definition Settings2D.h:1815
bool hasValue() const
Check if the value is set.
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings2D.h:1806
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings2D.h:1835
ValueType value() const
Get the value.
std::string toString() const
Get the value as string.
ValueType
The type of the underlying value.
Definition Settings2D.h:1798
@ automatic
Definition Settings2D.h:1799
@ toneMapping
Definition Settings2D.h:1800
Experimental color settings. These may be renamed, moved or deleted in the future.
Definition Settings2D.h:1732
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:1738
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:2029
Mode & mode()
Get Mode.
Definition Settings2D.h:1992
const Mode & mode() const
Get Mode.
Definition Settings2D.h:1986
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:1735
static constexpr const char * description
The description for this value.
Definition Settings2D.h:1744
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream.
Definition Settings2D.h:2044
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:2022
void set(Args &&...args)
Set multiple arguments.
Definition Settings2D.h:1931
Experimental()
Default constructor.
std::tuple< Settings2D::Processing::Color::Experimental::Mode > Descendants
Definition Settings2D.h:1877
std::string toString() const
Get the value as string.
static constexpr const char * name
The name of this value.
Definition Settings2D.h:1741
const Settings2D::Processing::Color::Experimental::Mode & get() const
Definition Settings2D.h:2009
bool operator!=(const Experimental &other) const
Inequality operator.
bool operator==(const Experimental &other) const
Equality operator.
Experimental & set(const Mode &value)
Set Mode.
Definition Settings2D.h:1998
Experimental copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings2D.h:1965
Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma greater t...
Definition Settings2D.h:2067
double ValueType
The type of the underlying value.
Definition Settings2D.h:2086
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:2070
static constexpr Range< double > validRange()
The range of valid values for Gamma.
Definition Settings2D.h:2089
bool operator>(const Gamma &other) const
Comparison operator.
Definition Settings2D.h:2136
bool operator==(const Gamma &other) const
Comparison operator.
Definition Settings2D.h:2118
friend std::ostream & operator<<(std::ostream &stream, const Gamma &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:2154
bool operator!=(const Gamma &other) const
Comparison operator.
Definition Settings2D.h:2124
static constexpr const char * description
The description for this value.
Definition Settings2D.h:2079
bool hasValue() const
Check if the value is set.
std::string toString() const
Get the value as string.
bool operator<(const Gamma &other) const
Comparison operator.
Definition Settings2D.h:2130
static constexpr const char * name
The name of this value.
Definition Settings2D.h:2076
void reset()
Reset the node to unset state.
bool operator>=(const Gamma &other) const
Comparison operator.
Definition Settings2D.h:2148
constexpr Gamma(double value)
Constructor.
Definition Settings2D.h:2098
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:2073
Gamma()=default
Default constructor.
bool operator<=(const Gamma &other) const
Comparison operator.
Definition Settings2D.h:2142
double value() const
Get the value.
Color settings.
Definition Settings2D.h:1091
void set(Args &&...args)
Set multiple arguments.
Definition Settings2D.h:2249
Color & set(const Balance::Green &value)
Set Balance::Green.
Definition Settings2D.h:2335
bool operator!=(const Color &other) const
Inequality operator.
bool operator==(const Color &other) const
Equality operator.
const Experimental & experimental() const
Get Experimental.
Definition Settings2D.h:2349
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:1097
std::string toString() const
Get the value as string.
const Balance & balance() const
Get Balance.
Definition Settings2D.h:2309
Color & set(const Balance::Blue &value)
Set Balance::Blue.
Definition Settings2D.h:2328
Balance & balance()
Get Balance.
Definition Settings2D.h:2315
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:2477
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to send the value as string to a stream.
Definition Settings2D.h:2503
Experimental & experimental()
Get Experimental.
Definition Settings2D.h:2355
const Settings2D::Processing::Color::Experimental::Mode & get() const
Definition Settings2D.h:2443
const Settings2D::Processing::Color::Gamma & get() const
Definition Settings2D.h:2452
Color & set(const Experimental::Mode &value)
Set Experimental::Mode.
Definition Settings2D.h:2368
const Settings2D::Processing::Color::Balance::Green & get() const
Definition Settings2D.h:2415
static constexpr const char * name
The name of this value.
Definition Settings2D.h:1100
Gamma & gamma()
Get Gamma.
Definition Settings2D.h:2381
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:1094
const Settings2D::Processing::Color::Balance::Red & get() const
Definition Settings2D.h:2424
const Settings2D::Processing::Color::Experimental & get() const
Definition Settings2D.h:2433
Color copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings2D.h:2288
const Settings2D::Processing::Color::Balance & get() const
Definition Settings2D.h:2397
std::tuple< Settings2D::Processing::Color::Balance, Settings2D::Processing::Color::Balance::Blue, Settings2D::Processing::Color::Balance::Green, Settings2D::Processing::Color::Balance::Red, Settings2D::Processing::Color::Experimental, Settings2D::Processing::Color::Experimental::Mode, Settings2D::Processing::Color::Gamma > Descendants
Definition Settings2D.h:2176
Color()
Default constructor.
const Gamma & gamma() const
Get Gamma.
Definition Settings2D.h:2375
const Settings2D::Processing::Color::Balance::Blue & get() const
Definition Settings2D.h:2406
static constexpr const char * description
The description for this value.
Definition Settings2D.h:1103
Color & set(const Balance &value)
Set Balance.
Definition Settings2D.h:2321
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:2486
Color & set(const Gamma &value)
Set Gamma.
Definition Settings2D.h:2387
Color & set(const Experimental &value)
Set Experimental.
Definition Settings2D.h:2361
Color & set(const Balance::Red &value)
Set Balance::Red.
Definition Settings2D.h:2342
2D processing settings.
Definition Settings2D.h:1073
const Settings2D::Processing::Color & get() const
Definition Settings2D.h:2727
static constexpr const char * description
The description for this value.
Definition Settings2D.h:1085
Processing & set(const Color::Gamma &value)
Set Color::Gamma.
Definition Settings2D.h:2718
bool operator!=(const Processing &other) const
Inequality operator.
bool operator==(const Processing &other) const
Equality operator.
Processing & set(const Color &value)
Set Color.
Definition Settings2D.h:2669
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:1076
Processing & set(const Color::Experimental &value)
Set Color::Experimental.
Definition Settings2D.h:2704
const Settings2D::Processing::Color::Balance & get() const
Definition Settings2D.h:2735
Processing & set(const Color::Experimental::Mode &value)
Set Color::Experimental::Mode.
Definition Settings2D.h:2711
friend std::ostream & operator<<(std::ostream &stream, const Processing &value)
Operator to send the value as string to a stream.
Definition Settings2D.h:2823
const Settings2D::Processing::Color::Experimental & get() const
Definition Settings2D.h:2771
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:2801
Color & color()
Get Color.
Definition Settings2D.h:2663
void set(Args &&...args)
Set multiple arguments.
Definition Settings2D.h:2598
std::tuple< Settings2D::Processing::Color, Settings2D::Processing::Color::Balance, Settings2D::Processing::Color::Balance::Blue, Settings2D::Processing::Color::Balance::Green, Settings2D::Processing::Color::Balance::Red, Settings2D::Processing::Color::Experimental, Settings2D::Processing::Color::Experimental::Mode, Settings2D::Processing::Color::Gamma > Descendants
Definition Settings2D.h:2522
Processing & set(const Color::Balance::Blue &value)
Set Color::Balance::Blue.
Definition Settings2D.h:2683
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:1079
const Settings2D::Processing::Color::Experimental::Mode & get() const
Definition Settings2D.h:2780
Processing & set(const Color::Balance &value)
Set Color::Balance.
Definition Settings2D.h:2676
const Color & color() const
Get Color.
Definition Settings2D.h:2657
Processing & set(const Color::Balance::Red &value)
Set Color::Balance::Red.
Definition Settings2D.h:2697
const Settings2D::Processing::Color::Gamma & get() const
Definition Settings2D.h:2788
const Settings2D::Processing::Color::Balance::Red & get() const
Definition Settings2D.h:2762
Processing copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings2D.h:2637
const Settings2D::Processing::Color::Balance::Blue & get() const
Definition Settings2D.h:2744
const Settings2D::Processing::Color::Balance::Green & get() const
Definition Settings2D.h:2753
std::string toString() const
Get the value as string.
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:2808
Processing()
Default constructor.
Processing & set(const Color::Balance::Green &value)
Set Color::Balance::Green.
Definition Settings2D.h:2690
static constexpr const char * name
The name of this value.
Definition Settings2D.h:1082
Choose how to sample colors for the 2D image.
Definition Settings2D.h:2880
ValueType
The type of the underlying value.
Definition Settings2D.h:2912
@ grayscale
Definition Settings2D.h:2914
@ rgbStrongAmbientLight
Definition Settings2D.h:2915
@ rgbAmbientSuppression
Definition Settings2D.h:2916
@ rgb
Definition Settings2D.h:2913
Color()=default
Default constructor.
void reset()
Reset the node to unset state.
static const Color grayscale
grayscale
Definition Settings2D.h:2919
static std::set< ValueType > validValues()
All valid values of Color.
Definition Settings2D.h:2924
static const Color rgbAmbientSuppression
rgbAmbientSuppression
Definition Settings2D.h:2921
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:2883
ValueType value() const
Get the value.
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:2974
constexpr Color(ValueType value)
Constructor.
Definition Settings2D.h:2936
static constexpr const char * description
The description for this value.
Definition Settings2D.h:2892
bool hasValue() const
Check if the value is set.
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:2886
static const Color rgb
rgb
Definition Settings2D.h:2918
bool operator==(const Color &other) const
Comparison operator.
Definition Settings2D.h:2962
bool operator!=(const Color &other) const
Comparison operator.
Definition Settings2D.h:2968
static constexpr const char * name
The name of this value.
Definition Settings2D.h:2889
std::string toString() const
Get the value as string.
static const Color rgbStrongAmbientLight
rgbStrongAmbientLight
Definition Settings2D.h:2920
friend std::ostream & operator<<(std::ostream &stream, const Color::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings2D.h:2956
Duration between successive sensor operations, in microseconds. The effective interval might be round...
Definition Settings2D.h:3040
friend std::ostream & operator<<(std::ostream &stream, const Duration &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:3128
std::chrono::microseconds ValueType
The type of the underlying value.
Definition Settings2D.h:3060
bool operator<(const Duration &other) const
Comparison operator.
Definition Settings2D.h:3104
static constexpr const char * name
The name of this value.
Definition Settings2D.h:3049
bool operator==(const Duration &other) const
Comparison operator.
Definition Settings2D.h:3092
std::chrono::microseconds value() const
Get the value.
void reset()
Reset the node to unset state.
bool operator>(const Duration &other) const
Comparison operator.
Definition Settings2D.h:3110
Duration()=default
Default constructor.
bool operator!=(const Duration &other) const
Comparison operator.
Definition Settings2D.h:3098
constexpr Duration(std::chrono::microseconds value)
Constructor.
Definition Settings2D.h:3072
bool operator>=(const Duration &other) const
Comparison operator.
Definition Settings2D.h:3122
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:3046
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for Duration.
Definition Settings2D.h:3063
std::string toString() const
Get the value as string.
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:3043
bool operator<=(const Duration &other) const
Comparison operator.
Definition Settings2D.h:3116
static constexpr const char * description
The description for this value.
Definition Settings2D.h:3052
bool hasValue() const
Check if the value is set.
Enable or disable sampling interval.
Definition Settings2D.h:3155
bool value() const
Get the value.
static const Enabled no
Off/disabled.
Definition Settings2D.h:3174
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:3158
static constexpr const char * description
The description for this value.
Definition Settings2D.h:3167
Enabled()=default
Default constructor.
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:3161
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings2D.h:3206
void reset()
Reset the node to unset state.
static constexpr const char * name
The name of this value.
Definition Settings2D.h:3164
constexpr Enabled(bool value)
Constructor.
Definition Settings2D.h:3186
std::string toString() const
Get the value as string.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings2D.h:3177
bool hasValue() const
Check if the value is set.
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:3218
static const Enabled yes
On/enabled.
Definition Settings2D.h:3173
bool ValueType
The type of the underlying value.
Definition Settings2D.h:3172
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings2D.h:3212
Sampling interval controls the interval between successive sensor operations (e.g....
Definition Settings2D.h:3010
friend std::ostream & operator<<(std::ostream &stream, const Interval &value)
Operator to send the value as string to a stream.
Definition Settings2D.h:3436
std::string toString() const
Get the value as string.
static constexpr const char * description
The description for this value.
Definition Settings2D.h:3022
Enabled & isEnabled()
Get Enabled.
Definition Settings2D.h:3368
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:3016
Interval copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings2D.h:3322
bool operator==(const Interval &other) const
Equality operator.
Interval & set(const Duration &value)
Set Duration.
Definition Settings2D.h:3355
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:3420
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:3412
Duration & duration()
Get Duration.
Definition Settings2D.h:3349
std::tuple< Settings2D::Sampling::Interval::Duration, Settings2D::Sampling::Interval::Enabled > Descendants
Definition Settings2D.h:3231
const Settings2D::Sampling::Interval::Enabled & get() const
Definition Settings2D.h:3393
bool operator!=(const Interval &other) const
Inequality operator.
const Duration & duration() const
Get Duration.
Definition Settings2D.h:3343
Interval & set(const Enabled &value)
Set Enabled.
Definition Settings2D.h:3374
Interval()
Default constructor.
static constexpr const char * name
The name of this value.
Definition Settings2D.h:3019
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:3013
const Enabled & isEnabled() const
Get Enabled.
Definition Settings2D.h:3362
void set(Args &&...args)
Set multiple arguments.
Definition Settings2D.h:3288
const Settings2D::Sampling::Interval::Duration & get() const
Definition Settings2D.h:3384
Set the pixel sampling to use for the 2D capture. This setting defines how the camera sensor is sampl...
Definition Settings2D.h:3460
static const Pixel redSubsample4x4
redSubsample4x4
Definition Settings2D.h:3493
static const Pixel by2x2
by2x2
Definition Settings2D.h:3494
Pixel()=default
Default constructor.
constexpr Pixel(ValueType value)
Constructor.
Definition Settings2D.h:3513
ValueType
The type of the underlying value.
Definition Settings2D.h:3480
@ by4x4
Definition Settings2D.h:3487
@ redSubsample2x2
Definition Settings2D.h:3483
@ blueSubsample4x4
Definition Settings2D.h:3484
@ blueSubsample2x2
Definition Settings2D.h:3482
@ by2x2
Definition Settings2D.h:3486
@ redSubsample4x4
Definition Settings2D.h:3485
@ all
Definition Settings2D.h:3481
static const Pixel by4x4
by4x4
Definition Settings2D.h:3495
bool operator!=(const Pixel &other) const
Comparison operator.
Definition Settings2D.h:3545
ValueType value() const
Get the value.
bool operator==(const Pixel &other) const
Comparison operator.
Definition Settings2D.h:3539
static const Pixel redSubsample2x2
redSubsample2x2
Definition Settings2D.h:3491
static const Pixel all
all
Definition Settings2D.h:3489
static std::set< ValueType > validValues()
All valid values of Pixel.
Definition Settings2D.h:3498
static constexpr const char * name
The name of this value.
Definition Settings2D.h:3469
std::string toString() const
Get the value as string.
static const Pixel blueSubsample2x2
blueSubsample2x2
Definition Settings2D.h:3490
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:3463
friend std::ostream & operator<<(std::ostream &stream, const Pixel::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings2D.h:3533
friend std::ostream & operator<<(std::ostream &stream, const Pixel &value)
Operator to serialize the value to a stream.
Definition Settings2D.h:3551
static constexpr const char * description
The description for this value.
Definition Settings2D.h:3472
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:3466
void reset()
Reset the node to unset state.
static const Pixel blueSubsample4x4
blueSubsample4x4
Definition Settings2D.h:3492
bool hasValue() const
Check if the value is set.
Sampling settings.
Definition Settings2D.h:2845
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:3840
bool operator==(const Sampling &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings2D.h:3644
const Settings2D::Sampling::Interval::Duration & get() const
Definition Settings2D.h:3790
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:2848
const Settings2D::Sampling::Pixel & get() const
Definition Settings2D.h:3806
const Settings2D::Sampling::Interval::Enabled & get() const
Definition Settings2D.h:3798
Sampling & set(const Interval::Enabled &value)
Set Interval::Enabled.
Definition Settings2D.h:3745
Sampling & set(const Pixel &value)
Set Pixel.
Definition Settings2D.h:3764
const Pixel & pixel() const
Get Pixel.
Definition Settings2D.h:3752
Pixel & pixel()
Get Pixel.
Definition Settings2D.h:3758
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:2851
std::string toString() const
Get the value as string.
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:3831
const Settings2D::Sampling::Color & get() const
Definition Settings2D.h:3773
friend std::ostream & operator<<(std::ostream &stream, const Sampling &value)
Operator to send the value as string to a stream.
Definition Settings2D.h:3857
bool operator!=(const Sampling &other) const
Inequality operator.
static constexpr const char * description
The description for this value.
Definition Settings2D.h:2857
Sampling & set(const Interval::Duration &value)
Set Interval::Duration.
Definition Settings2D.h:3738
const Color & color() const
Get Color.
Definition Settings2D.h:3700
Sampling & set(const Interval &value)
Set Interval.
Definition Settings2D.h:3731
Sampling & set(const Color &value)
Set Color.
Definition Settings2D.h:3712
Sampling copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings2D.h:3680
Color & color()
Get Color.
Definition Settings2D.h:3706
const Interval & interval() const
Get Interval.
Definition Settings2D.h:3719
const Settings2D::Sampling::Interval & get() const
Definition Settings2D.h:3781
Interval & interval()
Get Interval.
Definition Settings2D.h:3725
Sampling()
Default constructor.
std::tuple< Settings2D::Sampling::Color, Settings2D::Sampling::Interval, Settings2D::Sampling::Interval::Duration, Settings2D::Sampling::Interval::Enabled, Settings2D::Sampling::Pixel > Descendants
Definition Settings2D.h:3577
static constexpr const char * name
The name of this value.
Definition Settings2D.h:2854
Settings used when capturing 2D images with a Zivid camera.
Definition Settings2D.h:79
Settings2D & set(const Processing &value)
Set Processing.
Definition Settings2D.h:4089
const Settings2D::Sampling::Pixel & get() const
Definition Settings2D.h:4325
static constexpr size_t version
Definition Settings2D.h:95
const Settings2D::Processing::Color & get() const
Definition Settings2D.h:4220
Settings2D & set(const Sampling::Interval::Enabled &value)
Set Sampling::Interval::Enabled.
Definition Settings2D.h:4192
Sampling & sampling()
Get Sampling.
Definition Settings2D.h:4158
const Settings2D::Sampling::Color & get() const
Definition Settings2D.h:4293
const Settings2D::Processing::Color::Balance::Red & get() const
Definition Settings2D.h:4254
const Settings2D::Processing::Color::Balance::Green & get() const
Definition Settings2D.h:4246
Settings2D & set(const Sampling::Color &value)
Set Sampling::Color.
Definition Settings2D.h:4171
void save(const std::string &fileName) const
Save to the given file.
std::string serialize() const
Serialize to a string.
const Settings2D::Processing::Color::Balance::Blue & get() const
Definition Settings2D.h:4237
const Acquisitions & acquisitions() const
Get Acquisitions.
Definition Settings2D.h:4058
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:4359
std::tuple< Settings2D::Acquisitions, Settings2D::Processing, Settings2D::Processing::Color, Settings2D::Processing::Color::Balance, Settings2D::Processing::Color::Balance::Blue, Settings2D::Processing::Color::Balance::Green, Settings2D::Processing::Color::Balance::Red, Settings2D::Processing::Color::Experimental, Settings2D::Processing::Color::Experimental::Mode, Settings2D::Processing::Color::Gamma, Settings2D::Sampling, Settings2D::Sampling::Color, Settings2D::Sampling::Interval, Settings2D::Sampling::Interval::Duration, Settings2D::Sampling::Interval::Enabled, Settings2D::Sampling::Pixel > Descendants
Definition Settings2D.h:3876
Settings2D & set(const Sampling::Interval &value)
Set Sampling::Interval.
Definition Settings2D.h:4178
Settings2D & set(const Sampling &value)
Set Sampling.
Definition Settings2D.h:4164
Settings2D(Args &&...args)
Constructor taking variadic number of arguments.
Definition Settings2D.h:3950
const Settings2D::Sampling::Interval & get() const
Definition Settings2D.h:4301
const Settings2D::Acquisitions & get() const
Definition Settings2D.h:4206
Settings2D()
Default constructor.
const Settings2D::Processing::Color::Gamma & get() const
Definition Settings2D.h:4279
Settings2D & set(const Acquisitions &value)
Set Acquisitions.
Definition Settings2D.h:4070
Settings2D(const std::string &fileName)
Construct Settings2D by loading from file.
Settings2D & set(const Sampling::Interval::Duration &value)
Set Sampling::Interval::Duration.
Definition Settings2D.h:4185
const Settings2D::Sampling & get() const
Definition Settings2D.h:4285
const Settings2D::Sampling::Interval::Duration & get() const
Definition Settings2D.h:4309
void load(const std::string &fileName)
Load from the given file.
const Settings2D::Processing::Color::Balance & get() const
Definition Settings2D.h:4228
Settings2D & set(const Processing::Color::Balance::Green &value)
Set Processing::Color::Balance::Green.
Definition Settings2D.h:4117
bool operator!=(const Settings2D &other) const
Inequality operator.
Settings2D & set(const Processing::Color::Balance &value)
Set Processing::Color::Balance.
Definition Settings2D.h:4103
const Settings2D::Processing::Color::Experimental & get() const
Definition Settings2D.h:4262
const Settings2D::Processing & get() const
Definition Settings2D.h:4212
static Settings2D fromSerialized(const std::string &value)
Construct a new Settings2D instance from a previously serialized string.
Settings2D & set(const Processing::Color::Balance::Red &value)
Set Processing::Color::Balance::Red.
Definition Settings2D.h:4124
void set(Args &&...args)
Set multiple arguments.
Definition Settings2D.h:3992
Processing & processing()
Get Processing.
Definition Settings2D.h:4083
const Processing & processing() const
Get Processing.
Definition Settings2D.h:4077
Settings2D copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings2D.h:4039
Settings2D & set(const Processing::Color::Balance::Blue &value)
Set Processing::Color::Balance::Blue.
Definition Settings2D.h:4110
Settings2D & set(const Processing::Color::Experimental::Mode &value)
Set Processing::Color::Experimental::Mode.
Definition Settings2D.h:4138
Acquisitions & acquisitions()
Get Acquisitions.
Definition Settings2D.h:4064
static constexpr DataModel::NodeType nodeType
The type of this node.
Definition Settings2D.h:82
std::string toString() const
Get the value as string.
Settings2D & set(const Processing::Color::Experimental &value)
Set Processing::Color::Experimental.
Definition Settings2D.h:4131
Settings2D & set(const Sampling::Pixel &value)
Set Sampling::Pixel.
Definition Settings2D.h:4199
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings2D.h:4350
const Settings2D::Sampling::Interval::Enabled & get() const
Definition Settings2D.h:4317
const Settings2D::Processing::Color::Experimental::Mode & get() const
Definition Settings2D.h:4271
bool operator==(const Settings2D &other) const
Equality operator.
static constexpr const char * path
The full path for this value.
Definition Settings2D.h:85
const Sampling & sampling() const
Get Sampling.
Definition Settings2D.h:4152
friend std::ostream & operator<<(std::ostream &stream, const Settings2D &value)
Operator to send the value as string to a stream.
Definition Settings2D.h:4376
static constexpr const char * description
The description for this value.
Definition Settings2D.h:91
static constexpr const char * name
The name of this value.
Definition Settings2D.h:88
Settings2D & set(const Processing::Color &value)
Set Processing::Color.
Definition Settings2D.h:4096
Settings2D & set(const Processing::Color::Gamma &value)
Set Processing::Color::Gamma.
Definition Settings2D.h:4145
NodeType
Definition NodeType.h:49
@ leafDataModelList
Definition NodeType.h:51
@ leafValue
Definition NodeType.h:52
@ group
Definition NodeType.h:50
Definition EnvironmentInfo.h:74
Definition Calibration.h:59
Get version information for the library.
Definition Version.h:58
The main Zivid namespace. All Zivid code is found here.
Definition Application.h:84