112# pragma warning(push)
113# pragma warning(disable : 4251)
127 static constexpr const char *path{
"" };
130 static constexpr const char *name{
"Settings" };
133 static constexpr const char *description{
134 R
"description(Settings used when capturing with a Zivid camera)description"
137 static constexpr size_t version{ 12 };
147 static constexpr std::array<uint8_t, 3> binaryId{
's',
'e',
't' };
159 static constexpr const char *path{
"Acquisition" };
162 static constexpr const char *name{
"Acquisition" };
165 static constexpr const char *description{ R
"description(Settings for a single acquisition)description" };
177 static constexpr const char *path{
"Acquisition/Aperture" };
180 static constexpr const char *name{
"Aperture" };
183 static constexpr const char *description{
184 R
"description(Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to
185the effective aperture diameter).
195 return { 1.4, 32.0 };
203 : m_opt{ verifyValue(value) }
224 return m_opt == other.m_opt;
230 return m_opt != other.m_opt;
236 return m_opt < other.m_opt;
242 return m_opt > other.m_opt;
252 void setFromString(
const std::string &value);
254 constexpr ValueType
static verifyValue(
const ValueType &value)
258 :
throw std::out_of_range{
"Aperture{ " + std::to_string(value) +
" } is not in range ["
263 Zivid::DataModel::Detail::Optional<double> m_opt;
265 friend struct DataModel::Detail::Befriend<
Aperture>;
286 static constexpr const char *path{
"Acquisition/Brightness" };
289 static constexpr const char *name{
"Brightness" };
292 static constexpr const char *description{
293 R
"description(Brightness controls the light output from the projector.
295Brightness above 1.0 may be needed when the distance between the camera and the scene is large,
296or in case of high levels of ambient lighting.
298When brightness is above 1.0 the duty cycle of the camera (the percentage of time the camera
299can capture) will be reduced. The duty cycle in boost mode is 50%. The duty cycle is calculated
300over a 10 second period. This limitation is enforced automatically by the camera. Calling capture
301when the duty cycle limit has been reached will cause the camera to first wait (sleep) for a
302duration of time to cool down, before capture will start.
320 : m_opt{ verifyValue(value) }
341 return m_opt == other.m_opt;
347 return m_opt != other.m_opt;
353 return m_opt < other.m_opt;
359 return m_opt > other.m_opt;
369 void setFromString(
const std::string &value);
371 constexpr ValueType
static verifyValue(
const ValueType &value)
375 :
throw std::out_of_range{
"Brightness{ " + std::to_string(value)
376 +
" } is not in range [" + std::to_string(
validRange().min())
377 +
", " + std::to_string(
validRange().max()) +
"]" };
380 Zivid::DataModel::Detail::Optional<double> m_opt;
382 friend struct DataModel::Detail::Befriend<
Brightness>;
393 static constexpr const char *path{
"Acquisition/ExposureTime" };
396 static constexpr const char *name{
"ExposureTime" };
399 static constexpr const char *description{
400 R
"description(Exposure time for each single image in the measurement. Affects frame rate.)description"
409 return { std::chrono::microseconds{ 1677 }, std::chrono::microseconds{ 100000 } };
417 : m_opt{ verifyValue(value) }
424 std::chrono::microseconds
value()
const;
438 return m_opt == other.m_opt;
444 return m_opt != other.m_opt;
450 return m_opt < other.m_opt;
456 return m_opt > other.m_opt;
466 void setFromString(
const std::string &value);
468 constexpr ValueType
static verifyValue(
const ValueType &value)
472 :
throw std::out_of_range{
"ExposureTime{ " + std::to_string(value.count())
473 +
" } is not in range ["
474 + std::to_string(
validRange().min().count()) +
", "
475 + std::to_string(
validRange().max().count()) +
"]" };
478 Zivid::DataModel::Detail::Optional<std::chrono::microseconds> m_opt;
480 friend struct DataModel::Detail::Befriend<
ExposureTime>;
491 static constexpr const char *path{
"Acquisition/Gain" };
494 static constexpr const char *name{
"Gain" };
497 static constexpr const char *description{ R
"description(Analog gain in the camera)description" };
512 explicit constexpr Gain(
double value)
513 : m_opt{ verifyValue(value) }
534 return m_opt == other.m_opt;
540 return m_opt != other.m_opt;
546 return m_opt < other.m_opt;
552 return m_opt > other.m_opt;
562 void setFromString(
const std::string &value);
564 constexpr ValueType
static verifyValue(
const ValueType &value)
568 :
throw std::out_of_range{
"Gain{ " + std::to_string(value) +
" } is not in range ["
573 Zivid::DataModel::Detail::Optional<double> m_opt;
575 friend struct DataModel::Detail::Befriend<
Gain>;
604 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
605 typename std::enable_if<
606 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
610 template<typename... Args>
614 using namespace Zivid::Detail::TypeTraits;
617 AllArgsDecayedAreUnique<Args...>::value,
618 "Found duplicate types among the arguments passed to Acquisition(...). "
619 "Types should be listed at most once.");
621 set(std::forward<Args>(args)...);
638 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
640 template<typename... Args>
644 using namespace Zivid::Detail::TypeTraits;
646 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
648 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
651 AllArgsDecayedAreUnique<Args...>::value,
652 "Found duplicate types among the arguments passed to set(...). "
653 "Types should be listed at most once.");
655 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
673 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
675 template<typename... Args>
679 using namespace Zivid::Detail::TypeTraits;
681 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
683 AllArgsAreDescendantNodes::value,
684 "All arguments passed to copyWith(...) must be descendant nodes.");
687 AllArgsDecayedAreUnique<Args...>::value,
688 "Found duplicate types among the arguments passed to copyWith(...). "
689 "Types should be listed at most once.");
692 copy.
set(std::forward<Args>(args)...);
730 m_brightness = value;
737 return m_exposureTime;
743 return m_exposureTime;
749 m_exposureTime = value;
774 typename std::enable_if<std::is_same<T, Settings::Acquisition::Aperture>::value,
int>::type = 0>
782 typename std::enable_if<std::is_same<T, Settings::Acquisition::Brightness>::value,
int>::type = 0>
790 typename std::enable_if<std::is_same<T, Settings::Acquisition::ExposureTime>::value,
int>::type = 0>
793 return m_exposureTime;
798 typename std::enable_if<std::is_same<T, Settings::Acquisition::Gain>::value,
int>::type = 0>
804 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
810 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
816 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
819 return m_exposureTime;
822 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
864 void setFromString(
const std::string &value);
866 void setFromString(
const std::string &fullPath,
const std::string &value);
868 std::string getString(
const std::string &fullPath)
const;
871 Brightness m_brightness;
872 ExposureTime m_exposureTime;
875 friend struct DataModel::Detail::Befriend<
Acquisition>;
886 static constexpr const char *path{
"Acquisitions" };
889 static constexpr const char *name{
"Acquisitions" };
892 static constexpr const char *description{ R
"description(List of Acquisition objects)description" };
900 return { 0, std::numeric_limits<ValueType::size_type>::max() };
908 : m_value{ std::move(value) }
912 explicit Acquisitions(std::initializer_list<Settings::Acquisition> value)
917 const std::vector<Settings::Acquisition> &
value()
const;
923 std::size_t
size() const noexcept;
926 bool isEmpty() const noexcept;
933 template<typename... Args>
934 void emplaceBack(Args &&...args)
936 m_value.emplace_back(std::forward<Args>(args)...);
971 for(
auto &child : m_value)
981 for(
const auto &child : m_value)
990 return m_value == other.m_value;
996 return m_value != other.m_value;
1006 void setFromString(
const std::string &value);
1008 std::vector<Settings::Acquisition> m_value{};
1010 friend struct DataModel::Detail::Befriend<
Acquisitions>;
1027 static constexpr const char *path{
"Diagnostics" };
1030 static constexpr const char *name{
"Diagnostics" };
1033 static constexpr const char *description{
1034 R
"description(When Diagnostics is enabled, extra diagnostic information is recorded during capture. This extra
1035information is included when saving the frame to a .zdf file, and will help Zivid's support team
1036to provide better assistance.
1038Enabling Diagnostics increases the capture time and the RAM usage. It will also increase the size of the
1039.zdf file. It is recommended to enable Diagnostics only when reporting issues to Zivid's support team.
1051 static constexpr const char *path{
"Diagnostics/Enabled" };
1054 static constexpr const char *name{
"Enabled" };
1057 static constexpr const char *description{ R
"description(Enable diagnostics)description" };
1067 return {
false,
true };
1096 return m_opt == other.m_opt;
1102 return m_opt != other.m_opt;
1112 void setFromString(
const std::string &value);
1114 Zivid::DataModel::Detail::Optional<bool> m_opt;
1116 friend struct DataModel::Detail::Befriend<
Enabled>;
1138 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1139 typename std::enable_if<
1140 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1144 template<typename... Args>
1148 using namespace Zivid::Detail::TypeTraits;
1151 AllArgsDecayedAreUnique<Args...>::value,
1152 "Found duplicate types among the arguments passed to Diagnostics(...). "
1153 "Types should be listed at most once.");
1155 set(std::forward<Args>(args)...);
1169 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1171 template<typename... Args>
1175 using namespace Zivid::Detail::TypeTraits;
1177 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1179 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1182 AllArgsDecayedAreUnique<Args...>::value,
1183 "Found duplicate types among the arguments passed to set(...). "
1184 "Types should be listed at most once.");
1186 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1201 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1203 template<typename... Args>
1207 using namespace Zivid::Detail::TypeTraits;
1209 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1211 AllArgsAreDescendantNodes::value,
1212 "All arguments passed to copyWith(...) must be descendant nodes.");
1215 AllArgsDecayedAreUnique<Args...>::value,
1216 "Found duplicate types among the arguments passed to copyWith(...). "
1217 "Types should be listed at most once.");
1220 copy.
set(std::forward<Args>(args)...);
1245 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
1251 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1258 template<
typename F>
1265 template<
typename F>
1287 void setFromString(
const std::string &value);
1289 void setFromString(
const std::string &fullPath,
const std::string &value);
1291 std::string getString(
const std::string &fullPath)
const;
1295 friend struct DataModel::Detail::Befriend<
Diagnostics>;
1306 static constexpr const char *path{
"Experimental" };
1309 static constexpr const char *name{
"Experimental" };
1312 static constexpr const char *description{
1313 R
"description(Experimental features. These settings may be changed, renamed, moved or deleted in the future.)description"
1332 static constexpr const char *path{
"Experimental/Engine" };
1335 static constexpr const char *name{
"Engine" };
1338 static constexpr const char *description{ R
"description(Set the Zivid Vision Engine to use.
1340The Phase Engine is the current default Zivid Vision Engine.
1342The Stripe Engine uses anti-reflection technology to suppress interreflection artifacts
1343and improve data quality on shiny objects like cylinders and chrome-plated parts.
1344Additional acquisition and processing time are required for the Stripe Engine.
1345The Stripe Engine is currently experimental, and may be changed and improved in the future.
1360 return { ValueType::phase, ValueType::stripe };
1368 : m_opt{ verifyValue(value) }
1395 return m_opt == other.m_opt;
1401 return m_opt != other.m_opt;
1411 void setFromString(
const std::string &value);
1413 constexpr ValueType
static verifyValue(
const ValueType &value)
1415 return value == ValueType::phase || value == ValueType::stripe
1417 :
throw std::invalid_argument{
1418 "Invalid value: Engine{ "
1419 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
1423 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
1425 friend struct DataModel::Detail::Befriend<
Engine>;
1447 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1448 typename std::enable_if<
1449 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1453 template<typename... Args>
1457 using namespace Zivid::Detail::TypeTraits;
1460 AllArgsDecayedAreUnique<Args...>::value,
1461 "Found duplicate types among the arguments passed to Experimental(...). "
1462 "Types should be listed at most once.");
1464 set(std::forward<Args>(args)...);
1478 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1480 template<typename... Args>
1484 using namespace Zivid::Detail::TypeTraits;
1486 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1488 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1491 AllArgsDecayedAreUnique<Args...>::value,
1492 "Found duplicate types among the arguments passed to set(...). "
1493 "Types should be listed at most once.");
1495 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1510 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1512 template<typename... Args>
1516 using namespace Zivid::Detail::TypeTraits;
1518 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1520 AllArgsAreDescendantNodes::value,
1521 "All arguments passed to copyWith(...) must be descendant nodes.");
1524 AllArgsDecayedAreUnique<Args...>::value,
1525 "Found duplicate types among the arguments passed to copyWith(...). "
1526 "Types should be listed at most once.");
1529 copy.
set(std::forward<Args>(args)...);
1554 typename std::enable_if<std::is_same<T, Settings::Experimental::Engine>::value,
int>::type = 0>
1560 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1567 template<
typename F>
1574 template<
typename F>
1596 void setFromString(
const std::string &value);
1598 void setFromString(
const std::string &fullPath,
const std::string &value);
1600 std::string getString(
const std::string &fullPath)
const;
1604 friend struct DataModel::Detail::Befriend<
Experimental>;
1615 static constexpr const char *path{
"Processing" };
1618 static constexpr const char *name{
"Processing" };
1621 static constexpr const char *description{
1622 R
"description(Settings related to processing of a capture, including filters and color balance)description"
1633 static constexpr const char *path{
"Processing/Color" };
1636 static constexpr const char *name{
"Color" };
1639 static constexpr const char *description{ R
"description(Color settings)description" };
1649 static constexpr const char *path{
"Processing/Color/Balance" };
1652 static constexpr const char *name{
"Balance" };
1655 static constexpr const char *description{ R
"description(Color balance settings)description" };
1665 static constexpr const char *path{
"Processing/Color/Balance/Blue" };
1668 static constexpr const char *name{
"Blue" };
1671 static constexpr const char *description{
1672 R
"description(Digital gain applied to blue channel)description"
1681 return { 1.0, 8.0 };
1688 explicit constexpr Blue(
double value)
1689 : m_opt{ verifyValue(value) }
1710 return m_opt == other.m_opt;
1716 return m_opt != other.m_opt;
1722 return m_opt < other.m_opt;
1728 return m_opt > other.m_opt;
1738 void setFromString(
const std::string &value);
1740 constexpr ValueType
static verifyValue(
const ValueType &value)
1744 :
throw std::out_of_range{
"Blue{ " + std::to_string(value)
1745 +
" } is not in range ["
1747 + std::to_string(
validRange().max()) +
"]" };
1750 Zivid::DataModel::Detail::Optional<double> m_opt;
1752 friend struct DataModel::Detail::Befriend<
Blue>;
1763 static constexpr const char *path{
"Processing/Color/Balance/Green" };
1766 static constexpr const char *name{
"Green" };
1769 static constexpr const char *description{
1770 R
"description(Digital gain applied to green channel)description"
1779 return { 1.0, 8.0 };
1787 : m_opt{ verifyValue(value) }
1808 return m_opt == other.m_opt;
1814 return m_opt != other.m_opt;
1820 return m_opt < other.m_opt;
1826 return m_opt > other.m_opt;
1836 void setFromString(
const std::string &value);
1838 constexpr ValueType
static verifyValue(
const ValueType &value)
1842 :
throw std::out_of_range{
"Green{ " + std::to_string(value)
1843 +
" } is not in range ["
1845 + std::to_string(
validRange().max()) +
"]" };
1848 Zivid::DataModel::Detail::Optional<double> m_opt;
1850 friend struct DataModel::Detail::Befriend<
Green>;
1861 static constexpr const char *path{
"Processing/Color/Balance/Red" };
1864 static constexpr const char *name{
"Red" };
1867 static constexpr const char *description{
1868 R
"description(Digital gain applied to red channel)description"
1877 return { 1.0, 8.0 };
1884 explicit constexpr Red(
double value)
1885 : m_opt{ verifyValue(value) }
1906 return m_opt == other.m_opt;
1912 return m_opt != other.m_opt;
1918 return m_opt < other.m_opt;
1924 return m_opt > other.m_opt;
1934 void setFromString(
const std::string &value);
1936 constexpr ValueType
static verifyValue(
const ValueType &value)
1940 :
throw std::out_of_range{
"Red{ " + std::to_string(value)
1941 +
" } is not in range ["
1943 + std::to_string(
validRange().max()) +
"]" };
1946 Zivid::DataModel::Detail::Optional<double> m_opt;
1948 friend struct DataModel::Detail::Befriend<
Red>;
1975 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1976 typename std::enable_if<
1977 Zivid::Detail::TypeTraits::
1978 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
1981 template<typename... Args>
1985 using namespace Zivid::Detail::TypeTraits;
1988 AllArgsDecayedAreUnique<Args...>::value,
1989 "Found duplicate types among the arguments passed to Balance(...). "
1990 "Types should be listed at most once.");
1992 set(std::forward<Args>(args)...);
2008 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2010 template<typename... Args>
2014 using namespace Zivid::Detail::TypeTraits;
2016 using AllArgsAreDescendantNodes =
2017 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2019 AllArgsAreDescendantNodes::value,
2020 "All arguments passed to set(...) must be descendant nodes.");
2023 AllArgsDecayedAreUnique<Args...>::value,
2024 "Found duplicate types among the arguments passed to set(...). "
2025 "Types should be listed at most once.");
2027 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2044 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2046 template<typename... Args>
2050 using namespace Zivid::Detail::TypeTraits;
2052 using AllArgsAreDescendantNodes =
2053 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2055 AllArgsAreDescendantNodes::value,
2056 "All arguments passed to copyWith(...) must be descendant nodes.");
2059 AllArgsDecayedAreUnique<Args...>::value,
2060 "Found duplicate types among the arguments passed to copyWith(...). "
2061 "Types should be listed at most once.");
2064 copy.
set(std::forward<Args>(args)...);
2127 typename std::enable_if<
2128 std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
2137 typename std::enable_if<
2138 std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
2148 enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
2154 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2160 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2166 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2173 template<
typename F>
2182 template<
typename F>
2206 void setFromString(
const std::string &value);
2208 void setFromString(
const std::string &fullPath,
const std::string &value);
2210 std::string getString(
const std::string &fullPath)
const;
2216 friend struct DataModel::Detail::Befriend<
Balance>;
2227 static constexpr const char *path{
"Processing/Color/Experimental" };
2230 static constexpr const char *name{
"Experimental" };
2233 static constexpr const char *description{
2234 R
"description(Experimental color settings. These may be renamed, moved or deleted in the future.)description"
2266 static constexpr const char *path{
"Processing/Color/Experimental/Mode" };
2269 static constexpr const char *name{
"Mode" };
2272 static constexpr const char *description{
2273 R
"description(This setting controls how the color image is computed.
2275`automatic` is the default option. `automatic` is identical to `useFirstAcquisition` for
2276single-acquisition captures and multi-acquisition captures when all the acquisitions have
2277identical (duplicated) acquisition settings. `automatic` is identical to `toneMapping` for
2278multi-acquisition HDR captures with differing acquisition settings.
2280`useFirstAcquisition` uses the color data acquired from the first acquisition provided. If
2281the capture consists of more than one acquisition, then the remaining acquisitions are not used
2282for the color image. No tone mapping is performed. This option provides the most control of
2283the color image, and the color values will be consistent over repeated captures with the same
2286`toneMapping` uses all the acquisitions to create one merged and normalized color image. For
2287HDR captures the dynamic range of the captured images is usually higher than the 8-bit color
2288image range. `toneMapping` will map the HDR color data to the 8-bit color output range by
2289applying a scaling factor. `toneMapping` can also be used for single-acquisition captures to
2290normalize the captured color image to the full 8-bit output. Note that when using `toneMapping`
2291mode the color values can be inconsistent over repeated captures if you move, add or remove
2292objects in the scene. For the most control over the colors, select the `useFirstAcquisition`
2301 useFirstAcquisition,
2311 return { ValueType::automatic, ValueType::useFirstAcquisition, ValueType::toneMapping };
2319 : m_opt{ verifyValue(value) }
2346 return m_opt == other.m_opt;
2352 return m_opt != other.m_opt;
2362 void setFromString(
const std::string &value);
2364 constexpr ValueType
static verifyValue(
const ValueType &value)
2366 return value == ValueType::automatic || value == ValueType::useFirstAcquisition
2367 || value == ValueType::toneMapping
2369 :
throw std::invalid_argument{
2370 "Invalid value: Mode{ "
2371 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
2376 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
2378 friend struct DataModel::Detail::Befriend<
Mode>;
2381 using Descendants = std::tuple<Settings::Processing::Color::Experimental::Mode>;
2400 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2401 typename std::enable_if<
2402 Zivid::Detail::TypeTraits::
2403 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
2406 template<typename... Args>
2410 using namespace Zivid::Detail::TypeTraits;
2413 AllArgsDecayedAreUnique<Args...>::value,
2414 "Found duplicate types among the arguments passed to Experimental(...). "
2415 "Types should be listed at most once.");
2417 set(std::forward<Args>(args)...);
2431 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2433 template<typename... Args>
2437 using namespace Zivid::Detail::TypeTraits;
2439 using AllArgsAreDescendantNodes =
2440 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2442 AllArgsAreDescendantNodes::value,
2443 "All arguments passed to set(...) must be descendant nodes.");
2446 AllArgsDecayedAreUnique<Args...>::value,
2447 "Found duplicate types among the arguments passed to set(...). "
2448 "Types should be listed at most once.");
2450 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2465 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2467 template<typename... Args>
2471 using namespace Zivid::Detail::TypeTraits;
2473 using AllArgsAreDescendantNodes =
2474 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2476 AllArgsAreDescendantNodes::value,
2477 "All arguments passed to copyWith(...) must be descendant nodes.");
2480 AllArgsDecayedAreUnique<Args...>::value,
2481 "Found duplicate types among the arguments passed to copyWith(...). "
2482 "Types should be listed at most once.");
2485 copy.
set(std::forward<Args>(args)...);
2510 typename std::enable_if<
2511 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
2518 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2525 template<
typename F>
2532 template<
typename F>
2554 void setFromString(
const std::string &value);
2556 void setFromString(
const std::string &fullPath,
const std::string &value);
2558 std::string getString(
const std::string &fullPath)
const;
2562 friend struct DataModel::Detail::Befriend<
Experimental>;
2575 static constexpr const char *path{
"Processing/Color/Gamma" };
2578 static constexpr const char *name{
"Gamma" };
2581 static constexpr const char *description{
2582 R
"description(Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma
2583greater than 1 makes the colors darker.
2593 return { 0.25, 1.5 };
2601 : m_opt{ verifyValue(value) }
2622 return m_opt == other.m_opt;
2628 return m_opt != other.m_opt;
2634 return m_opt < other.m_opt;
2640 return m_opt > other.m_opt;
2650 void setFromString(
const std::string &value);
2652 constexpr ValueType
static verifyValue(
const ValueType &value)
2656 :
throw std::out_of_range{
"Gamma{ " + std::to_string(value) +
" } is not in range ["
2658 + std::to_string(
validRange().max()) +
"]" };
2661 Zivid::DataModel::Detail::Optional<double> m_opt;
2663 friend struct DataModel::Detail::Befriend<
Gamma>;
2698 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2699 typename std::enable_if<
2700 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2704 template<typename... Args>
2708 using namespace Zivid::Detail::TypeTraits;
2711 AllArgsDecayedAreUnique<Args...>::value,
2712 "Found duplicate types among the arguments passed to Color(...). "
2713 "Types should be listed at most once.");
2715 set(std::forward<Args>(args)...);
2735 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2737 template<typename... Args>
2741 using namespace Zivid::Detail::TypeTraits;
2743 using AllArgsAreDescendantNodes =
2744 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2746 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2749 AllArgsDecayedAreUnique<Args...>::value,
2750 "Found duplicate types among the arguments passed to set(...). "
2751 "Types should be listed at most once.");
2753 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2774 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2776 template<typename... Args>
2780 using namespace Zivid::Detail::TypeTraits;
2782 using AllArgsAreDescendantNodes =
2783 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2785 AllArgsAreDescendantNodes::value,
2786 "All arguments passed to copyWith(...) must be descendant nodes.");
2789 AllArgsDecayedAreUnique<Args...>::value,
2790 "Found duplicate types among the arguments passed to copyWith(...). "
2791 "Types should be listed at most once.");
2794 copy.
set(std::forward<Args>(args)...);
2820 m_balance.
set(value);
2827 m_balance.
set(value);
2834 m_balance.
set(value);
2841 return m_experimental;
2847 return m_experimental;
2853 m_experimental = value;
2860 m_experimental.
set(value);
2885 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type =
2894 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::
2903 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
2912 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::
2921 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::
2925 return m_experimental;
2930 typename std::enable_if<
2931 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
2940 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
2946 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2952 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2955 return m_experimental;
2958 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2965 template<
typename F>
2974 template<
typename F>
2998 void setFromString(
const std::string &value);
3000 void setFromString(
const std::string &fullPath,
const std::string &value);
3002 std::string getString(
const std::string &fullPath)
const;
3008 friend struct DataModel::Detail::Befriend<
Color>;
3019 static constexpr const char *path{
"Processing/Filters" };
3022 static constexpr const char *name{
"Filters" };
3025 static constexpr const char *description{ R
"description(Filters)description" };
3035 static constexpr const char *path{
"Processing/Filters/Experimental" };
3038 static constexpr const char *name{
"Experimental" };
3041 static constexpr const char *description{
3042 R
"description(Experimental filters. These may be renamed, moved or deleted in the future.)description"
3057 static constexpr const char *path{
"Processing/Filters/Experimental/ContrastDistortion" };
3060 static constexpr const char *name{
"ContrastDistortion" };
3063 static constexpr const char *description{
3064 R
"description(Corrects artifacts that appear when imaging scenes with large texture gradients
3065or high contrast. These artifacts are caused by blurring in the lens. The filter
3066works best when aperture values are chosen such that the camera has quite good focus.
3067The filter also supports removing the points that experience a large correction.
3079 static constexpr const char *path{
3080 "Processing/Filters/Experimental/ContrastDistortion/Correction"
3084 static constexpr const char *name{
"Correction" };
3087 static constexpr const char *description{ R
"description(Correction)description" };
3097 static constexpr const char *path{
3098 "Processing/Filters/Experimental/ContrastDistortion/Correction/Enabled"
3102 static constexpr const char *name{
"Enabled" };
3105 static constexpr const char *description{ R
"description(Enabled)description" };
3115 return {
false,
true };
3144 return m_opt == other.m_opt;
3150 return m_opt != other.m_opt;
3160 void setFromString(
const std::string &value);
3162 Zivid::DataModel::Detail::Optional<bool> m_opt;
3164 friend struct DataModel::Detail::Befriend<
Enabled>;
3175 static constexpr const char *path{
3176 "Processing/Filters/Experimental/ContrastDistortion/Correction/Strength"
3180 static constexpr const char *name{
"Strength" };
3183 static constexpr const char *description{
3184 R
"description(Higher values gives more correction.)description"
3193 return { 0.0, 1.0 };
3201 : m_opt{ verifyValue(value) }
3222 return m_opt == other.m_opt;
3228 return m_opt != other.m_opt;
3234 return m_opt < other.m_opt;
3240 return m_opt > other.m_opt;
3250 void setFromString(
const std::string &value);
3252 constexpr ValueType
static verifyValue(
const ValueType &value)
3256 :
throw std::out_of_range{
"Strength{ " + std::to_string(value)
3257 +
" } is not in range ["
3259 + std::to_string(
validRange().max()) +
"]" };
3262 Zivid::DataModel::Detail::Optional<double> m_opt;
3264 friend struct DataModel::Detail::Befriend<
Strength>;
3289 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3290 typename std::enable_if<
3291 Zivid::Detail::TypeTraits::
3292 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
3295 template<typename... Args>
3299 using namespace Zivid::Detail::TypeTraits;
3302 AllArgsDecayedAreUnique<Args...>::value,
3303 "Found duplicate types among the arguments passed to Correction(...). "
3304 "Types should be listed at most once.");
3306 set(std::forward<Args>(args)...);
3321 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3323 template<typename... Args>
3327 using namespace Zivid::Detail::TypeTraits;
3329 using AllArgsAreDescendantNodes =
3330 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3332 AllArgsAreDescendantNodes::value,
3333 "All arguments passed to set(...) must be descendant nodes.");
3336 AllArgsDecayedAreUnique<Args...>::value,
3337 "Found duplicate types among the arguments passed to set(...). "
3338 "Types should be listed at most once.");
3340 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3356 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3358 template<typename... Args>
3362 using namespace Zivid::Detail::TypeTraits;
3364 using AllArgsAreDescendantNodes =
3365 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3367 AllArgsAreDescendantNodes::value,
3368 "All arguments passed to copyWith(...) must be descendant nodes.");
3371 AllArgsDecayedAreUnique<Args...>::value,
3372 "Found duplicate types among the arguments passed to copyWith(...). "
3373 "Types should be listed at most once.");
3376 copy.
set(std::forward<Args>(args)...);
3420 typename std::enable_if<
3423 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
3434 typename std::enable_if<
3437 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
3447 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3454 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3463 template<
typename F>
3471 template<
typename F>
3494 void setFromString(
const std::string &value);
3496 void setFromString(
const std::string &fullPath,
const std::string &value);
3498 std::string getString(
const std::string &fullPath)
const;
3503 friend struct DataModel::Detail::Befriend<
Correction>;
3514 static constexpr const char *path{
3515 "Processing/Filters/Experimental/ContrastDistortion/Removal"
3519 static constexpr const char *name{
"Removal" };
3522 static constexpr const char *description{ R
"description(Removal)description" };
3532 static constexpr const char *path{
3533 "Processing/Filters/Experimental/ContrastDistortion/Removal/Enabled"
3537 static constexpr const char *name{
"Enabled" };
3540 static constexpr const char *description{ R
"description(Enabled)description" };
3550 return {
false,
true };
3579 return m_opt == other.m_opt;
3585 return m_opt != other.m_opt;
3595 void setFromString(
const std::string &value);
3597 Zivid::DataModel::Detail::Optional<bool> m_opt;
3599 friend struct DataModel::Detail::Befriend<
Enabled>;
3610 static constexpr const char *path{
3611 "Processing/Filters/Experimental/ContrastDistortion/Removal/Threshold"
3615 static constexpr const char *name{
"Threshold" };
3618 static constexpr const char *description{
3619 R
"description(Higher values remove more points.)description"
3628 return { 0.0, 1.0 };
3636 : m_opt{ verifyValue(value) }
3657 return m_opt == other.m_opt;
3663 return m_opt != other.m_opt;
3669 return m_opt < other.m_opt;
3675 return m_opt > other.m_opt;
3685 void setFromString(
const std::string &value);
3687 constexpr ValueType
static verifyValue(
const ValueType &value)
3691 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
3692 +
" } is not in range ["
3694 + std::to_string(
validRange().max()) +
"]" };
3697 Zivid::DataModel::Detail::Optional<double> m_opt;
3699 friend struct DataModel::Detail::Befriend<
Threshold>;
3724 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3725 typename std::enable_if<
3726 Zivid::Detail::TypeTraits::
3727 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
3730 template<typename... Args>
3734 using namespace Zivid::Detail::TypeTraits;
3737 AllArgsDecayedAreUnique<Args...>::value,
3738 "Found duplicate types among the arguments passed to Removal(...). "
3739 "Types should be listed at most once.");
3741 set(std::forward<Args>(args)...);
3756 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3758 template<typename... Args>
3762 using namespace Zivid::Detail::TypeTraits;
3764 using AllArgsAreDescendantNodes =
3765 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3767 AllArgsAreDescendantNodes::value,
3768 "All arguments passed to set(...) must be descendant nodes.");
3771 AllArgsDecayedAreUnique<Args...>::value,
3772 "Found duplicate types among the arguments passed to set(...). "
3773 "Types should be listed at most once.");
3775 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3791 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3793 template<typename... Args>
3797 using namespace Zivid::Detail::TypeTraits;
3799 using AllArgsAreDescendantNodes =
3800 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3802 AllArgsAreDescendantNodes::value,
3803 "All arguments passed to copyWith(...) must be descendant nodes.");
3806 AllArgsDecayedAreUnique<Args...>::value,
3807 "Found duplicate types among the arguments passed to copyWith(...). "
3808 "Types should be listed at most once.");
3811 copy.
set(std::forward<Args>(args)...);
3849 m_threshold = value;
3855 typename std::enable_if<
3858 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
3869 typename std::enable_if<
3872 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
3881 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3888 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3896 template<
typename F>
3904 template<
typename F>
3927 void setFromString(
const std::string &value);
3929 void setFromString(
const std::string &fullPath,
const std::string &value);
3931 std::string getString(
const std::string &fullPath)
const;
3936 friend struct DataModel::Detail::Befriend<
Removal>;
3969 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3970 typename std::enable_if<
3971 Zivid::Detail::TypeTraits::
3972 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
3975 template<typename... Args>
3979 using namespace Zivid::Detail::TypeTraits;
3982 AllArgsDecayedAreUnique<Args...>::value,
3983 "Found duplicate types among the arguments passed to ContrastDistortion(...). "
3984 "Types should be listed at most once.");
3986 set(std::forward<Args>(args)...);
4005 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4007 template<typename... Args>
4011 using namespace Zivid::Detail::TypeTraits;
4013 using AllArgsAreDescendantNodes =
4014 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4016 AllArgsAreDescendantNodes::value,
4017 "All arguments passed to set(...) must be descendant nodes.");
4020 AllArgsDecayedAreUnique<Args...>::value,
4021 "Found duplicate types among the arguments passed to set(...). "
4022 "Types should be listed at most once.");
4024 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4044 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4046 template<typename... Args>
4050 using namespace Zivid::Detail::TypeTraits;
4052 using AllArgsAreDescendantNodes =
4053 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4055 AllArgsAreDescendantNodes::value,
4056 "All arguments passed to copyWith(...) must be descendant nodes.");
4059 AllArgsDecayedAreUnique<Args...>::value,
4060 "Found duplicate types among the arguments passed to copyWith(...). "
4061 "Types should be listed at most once.");
4064 copy.
set(std::forward<Args>(args)...);
4071 return m_correction;
4077 return m_correction;
4083 m_correction = value;
4090 m_correction.
set(value);
4097 m_correction.
set(value);
4123 m_removal.
set(value);
4130 m_removal.
set(value);
4136 typename std::enable_if<
4143 return m_correction;
4148 typename std::enable_if<
4151 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4157 return m_correction.get<
4163 typename std::enable_if<
4166 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4172 return m_correction.get<Settings::Processing::Filters::Experimental::ContrastDistortion::
4173 Correction::Strength>();
4178 typename std::enable_if<
4190 typename std::enable_if<
4199 return m_removal.get<
4205 typename std::enable_if<
4208 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4214 return m_removal.get<
4218 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4221 return m_correction;
4224 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4231 template<
typename F>
4239 template<
typename F>
4262 void setFromString(
const std::string &value);
4264 void setFromString(
const std::string &fullPath,
const std::string &value);
4266 std::string getString(
const std::string &fullPath)
const;
4268 Correction m_correction;
4306 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4307 typename std::enable_if<
4308 Zivid::Detail::TypeTraits::
4309 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
4312 template<typename... Args>
4316 using namespace Zivid::Detail::TypeTraits;
4319 AllArgsDecayedAreUnique<Args...>::value,
4320 "Found duplicate types among the arguments passed to Experimental(...). "
4321 "Types should be listed at most once.");
4323 set(std::forward<Args>(args)...);
4343 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4345 template<typename... Args>
4349 using namespace Zivid::Detail::TypeTraits;
4351 using AllArgsAreDescendantNodes =
4352 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4354 AllArgsAreDescendantNodes::value,
4355 "All arguments passed to set(...) must be descendant nodes.");
4358 AllArgsDecayedAreUnique<Args...>::value,
4359 "Found duplicate types among the arguments passed to set(...). "
4360 "Types should be listed at most once.");
4362 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4383 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4385 template<typename... Args>
4389 using namespace Zivid::Detail::TypeTraits;
4391 using AllArgsAreDescendantNodes =
4392 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4394 AllArgsAreDescendantNodes::value,
4395 "All arguments passed to copyWith(...) must be descendant nodes.");
4398 AllArgsDecayedAreUnique<Args...>::value,
4399 "Found duplicate types among the arguments passed to copyWith(...). "
4400 "Types should be listed at most once.");
4403 copy.
set(std::forward<Args>(args)...);
4410 return m_contrastDistortion;
4416 return m_contrastDistortion;
4422 m_contrastDistortion = value;
4429 m_contrastDistortion.
set(value);
4436 m_contrastDistortion.
set(value);
4443 m_contrastDistortion.
set(value);
4450 m_contrastDistortion.
set(value);
4457 m_contrastDistortion.
set(value);
4464 m_contrastDistortion.
set(value);
4470 typename std::enable_if<
4471 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
4475 return m_contrastDistortion;
4480 typename std::enable_if<
4487 return m_contrastDistortion
4493 typename std::enable_if<
4502 return m_contrastDistortion.get<
4508 typename std::enable_if<
4517 return m_contrastDistortion.get<
4523 typename std::enable_if<
4524 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
4529 return m_contrastDistortion
4535 typename std::enable_if<
4543 return m_contrastDistortion
4549 typename std::enable_if<
4558 return m_contrastDistortion
4562 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4565 return m_contrastDistortion;
4569 template<
typename F>
4572 f(m_contrastDistortion);
4576 template<
typename F>
4579 f(m_contrastDistortion);
4598 void setFromString(
const std::string &value);
4600 void setFromString(
const std::string &fullPath,
const std::string &value);
4602 std::string getString(
const std::string &fullPath)
const;
4606 friend struct DataModel::Detail::Befriend<
Experimental>;
4617 static constexpr const char *path{
"Processing/Filters/Noise" };
4620 static constexpr const char *name{
"Noise" };
4623 static constexpr const char *description{
4624 R
"description(Contains a filter that removes points with low signal-to-noise ratio (SNR))description"
4635 static constexpr const char *path{
"Processing/Filters/Noise/Removal" };
4638 static constexpr const char *name{
"Removal" };
4641 static constexpr const char *description{
4642 R
"description(Discard points with signal-to-noise ratio (SNR) values below a threshold)description"
4653 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Enabled" };
4656 static constexpr const char *name{
"Enabled" };
4659 static constexpr const char *description{
4660 R
"description(Enable or disable the SNR filter)description"
4671 return {
false,
true };
4700 return m_opt == other.m_opt;
4706 return m_opt != other.m_opt;
4716 void setFromString(
const std::string &value);
4718 Zivid::DataModel::Detail::Optional<bool> m_opt;
4720 friend struct DataModel::Detail::Befriend<
Enabled>;
4731 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Threshold" };
4734 static constexpr const char *name{
"Threshold" };
4737 static constexpr const char *description{
4738 R
"description(Discard points with signal-to-noise ratio (SNR) below the given value)description"
4747 return { 0.0, 100.0 };
4755 : m_opt{ verifyValue(value) }
4776 return m_opt == other.m_opt;
4782 return m_opt != other.m_opt;
4788 return m_opt < other.m_opt;
4794 return m_opt > other.m_opt;
4804 void setFromString(
const std::string &value);
4806 constexpr ValueType
static verifyValue(
const ValueType &value)
4810 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
4811 +
" } is not in range ["
4813 + std::to_string(
validRange().max()) +
"]" };
4816 Zivid::DataModel::Detail::Optional<double> m_opt;
4818 friend struct DataModel::Detail::Befriend<
Threshold>;
4843 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4844 typename std::enable_if<
4845 Zivid::Detail::TypeTraits::
4846 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
4849 template<typename... Args>
4853 using namespace Zivid::Detail::TypeTraits;
4856 AllArgsDecayedAreUnique<Args...>::value,
4857 "Found duplicate types among the arguments passed to Removal(...). "
4858 "Types should be listed at most once.");
4860 set(std::forward<Args>(args)...);
4875 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4877 template<typename... Args>
4881 using namespace Zivid::Detail::TypeTraits;
4883 using AllArgsAreDescendantNodes =
4884 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4886 AllArgsAreDescendantNodes::value,
4887 "All arguments passed to set(...) must be descendant nodes.");
4890 AllArgsDecayedAreUnique<Args...>::value,
4891 "Found duplicate types among the arguments passed to set(...). "
4892 "Types should be listed at most once.");
4894 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4910 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4912 template<typename... Args>
4916 using namespace Zivid::Detail::TypeTraits;
4918 using AllArgsAreDescendantNodes =
4919 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4921 AllArgsAreDescendantNodes::value,
4922 "All arguments passed to copyWith(...) must be descendant nodes.");
4925 AllArgsDecayedAreUnique<Args...>::value,
4926 "Found duplicate types among the arguments passed to copyWith(...). "
4927 "Types should be listed at most once.");
4930 copy.
set(std::forward<Args>(args)...);
4968 m_threshold = value;
4974 typename std::enable_if<
4975 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
4984 typename std::enable_if<
4985 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
4992 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4998 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
5005 template<
typename F>
5013 template<
typename F>
5036 void setFromString(
const std::string &value);
5038 void setFromString(
const std::string &fullPath,
const std::string &value);
5040 std::string getString(
const std::string &fullPath)
const;
5045 friend struct DataModel::Detail::Befriend<
Removal>;
5072 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5073 typename std::enable_if<
5074 Zivid::Detail::TypeTraits::
5075 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
5078 template<typename... Args>
5082 using namespace Zivid::Detail::TypeTraits;
5085 AllArgsDecayedAreUnique<Args...>::value,
5086 "Found duplicate types among the arguments passed to Noise(...). "
5087 "Types should be listed at most once.");
5089 set(std::forward<Args>(args)...);
5105 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5107 template<typename... Args>
5111 using namespace Zivid::Detail::TypeTraits;
5113 using AllArgsAreDescendantNodes =
5114 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5116 AllArgsAreDescendantNodes::value,
5117 "All arguments passed to set(...) must be descendant nodes.");
5120 AllArgsDecayedAreUnique<Args...>::value,
5121 "Found duplicate types among the arguments passed to set(...). "
5122 "Types should be listed at most once.");
5124 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5141 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5143 template<typename... Args>
5147 using namespace Zivid::Detail::TypeTraits;
5149 using AllArgsAreDescendantNodes =
5150 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5152 AllArgsAreDescendantNodes::value,
5153 "All arguments passed to copyWith(...) must be descendant nodes.");
5156 AllArgsDecayedAreUnique<Args...>::value,
5157 "Found duplicate types among the arguments passed to copyWith(...). "
5158 "Types should be listed at most once.");
5161 copy.
set(std::forward<Args>(args)...);
5187 m_removal.
set(value);
5194 m_removal.
set(value);
5200 typename std::enable_if<
5201 std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
5210 typename std::enable_if<
5211 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
5220 typename std::enable_if<
5221 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
5228 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5235 template<
typename F>
5242 template<
typename F>
5264 void setFromString(
const std::string &value);
5266 void setFromString(
const std::string &fullPath,
const std::string &value);
5268 std::string getString(
const std::string &fullPath)
const;
5272 friend struct DataModel::Detail::Befriend<
Noise>;
5283 static constexpr const char *path{
"Processing/Filters/Outlier" };
5286 static constexpr const char *name{
"Outlier" };
5289 static constexpr const char *description{
5290 R
"description(Contains a filter that removes points with large Euclidean distance to neighboring points)description"
5301 static constexpr const char *path{
"Processing/Filters/Outlier/Removal" };
5304 static constexpr const char *name{
"Removal" };
5307 static constexpr const char *description{
5308 R
"description(Discard point if Euclidean distance to neighboring points is above a threshold)description"
5319 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Enabled" };
5322 static constexpr const char *name{
"Enabled" };
5325 static constexpr const char *description{
5326 R
"description(Enable or disable the outlier filter)description"
5337 return {
false,
true };
5366 return m_opt == other.m_opt;
5372 return m_opt != other.m_opt;
5382 void setFromString(
const std::string &value);
5384 Zivid::DataModel::Detail::Optional<bool> m_opt;
5386 friend struct DataModel::Detail::Befriend<
Enabled>;
5397 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Threshold" };
5400 static constexpr const char *name{
"Threshold" };
5403 static constexpr const char *description{
5404 R
"description(Discard point if Euclidean distance to neighboring points is above the given value)description"
5413 return { 0.0, 100.0 };
5421 : m_opt{ verifyValue(value) }
5442 return m_opt == other.m_opt;
5448 return m_opt != other.m_opt;
5454 return m_opt < other.m_opt;
5460 return m_opt > other.m_opt;
5470 void setFromString(
const std::string &value);
5472 constexpr ValueType
static verifyValue(
const ValueType &value)
5476 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
5477 +
" } is not in range ["
5479 + std::to_string(
validRange().max()) +
"]" };
5482 Zivid::DataModel::Detail::Optional<double> m_opt;
5484 friend struct DataModel::Detail::Befriend<
Threshold>;
5509 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5510 typename std::enable_if<
5511 Zivid::Detail::TypeTraits::
5512 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
5515 template<typename... Args>
5519 using namespace Zivid::Detail::TypeTraits;
5522 AllArgsDecayedAreUnique<Args...>::value,
5523 "Found duplicate types among the arguments passed to Removal(...). "
5524 "Types should be listed at most once.");
5526 set(std::forward<Args>(args)...);
5541 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5543 template<typename... Args>
5547 using namespace Zivid::Detail::TypeTraits;
5549 using AllArgsAreDescendantNodes =
5550 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5552 AllArgsAreDescendantNodes::value,
5553 "All arguments passed to set(...) must be descendant nodes.");
5556 AllArgsDecayedAreUnique<Args...>::value,
5557 "Found duplicate types among the arguments passed to set(...). "
5558 "Types should be listed at most once.");
5560 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5576 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5578 template<typename... Args>
5582 using namespace Zivid::Detail::TypeTraits;
5584 using AllArgsAreDescendantNodes =
5585 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5587 AllArgsAreDescendantNodes::value,
5588 "All arguments passed to copyWith(...) must be descendant nodes.");
5591 AllArgsDecayedAreUnique<Args...>::value,
5592 "Found duplicate types among the arguments passed to copyWith(...). "
5593 "Types should be listed at most once.");
5596 copy.
set(std::forward<Args>(args)...);
5634 m_threshold = value;
5640 typename std::enable_if<
5641 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
5650 typename std::enable_if<
5651 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
5658 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5664 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
5671 template<
typename F>
5679 template<
typename F>
5702 void setFromString(
const std::string &value);
5704 void setFromString(
const std::string &fullPath,
const std::string &value);
5706 std::string getString(
const std::string &fullPath)
const;
5711 friend struct DataModel::Detail::Befriend<
Removal>;
5738 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5739 typename std::enable_if<
5740 Zivid::Detail::TypeTraits::
5741 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
5744 template<typename... Args>
5748 using namespace Zivid::Detail::TypeTraits;
5751 AllArgsDecayedAreUnique<Args...>::value,
5752 "Found duplicate types among the arguments passed to Outlier(...). "
5753 "Types should be listed at most once.");
5755 set(std::forward<Args>(args)...);
5771 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5773 template<typename... Args>
5777 using namespace Zivid::Detail::TypeTraits;
5779 using AllArgsAreDescendantNodes =
5780 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5782 AllArgsAreDescendantNodes::value,
5783 "All arguments passed to set(...) must be descendant nodes.");
5786 AllArgsDecayedAreUnique<Args...>::value,
5787 "Found duplicate types among the arguments passed to set(...). "
5788 "Types should be listed at most once.");
5790 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5807 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5809 template<typename... Args>
5813 using namespace Zivid::Detail::TypeTraits;
5815 using AllArgsAreDescendantNodes =
5816 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5818 AllArgsAreDescendantNodes::value,
5819 "All arguments passed to copyWith(...) must be descendant nodes.");
5822 AllArgsDecayedAreUnique<Args...>::value,
5823 "Found duplicate types among the arguments passed to copyWith(...). "
5824 "Types should be listed at most once.");
5827 copy.
set(std::forward<Args>(args)...);
5853 m_removal.
set(value);
5860 m_removal.
set(value);
5866 typename std::enable_if<
5867 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
5876 typename std::enable_if<
5877 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
5886 typename std::enable_if<
5887 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
5894 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5901 template<
typename F>
5908 template<
typename F>
5930 void setFromString(
const std::string &value);
5932 void setFromString(
const std::string &fullPath,
const std::string &value);
5934 std::string getString(
const std::string &fullPath)
const;
5938 friend struct DataModel::Detail::Befriend<
Outlier>;
5949 static constexpr const char *path{
"Processing/Filters/Reflection" };
5952 static constexpr const char *name{
"Reflection" };
5955 static constexpr const char *description{
5956 R
"description(Contains a filter that removes points likely introduced by reflections (useful for shiny materials))description"
5967 static constexpr const char *path{
"Processing/Filters/Reflection/Removal" };
5970 static constexpr const char *name{
"Removal" };
5973 static constexpr const char *description{
5974 R
"description(Discard points likely introduced by reflections (useful for shiny materials))description"
5985 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Enabled" };
5988 static constexpr const char *name{
"Enabled" };
5991 static constexpr const char *description{
5992 R
"description(Enable or disable the reflection filter. Note that this filter is computationally intensive and may affect the frame rate)description"
6003 return {
false,
true };
6032 return m_opt == other.m_opt;
6038 return m_opt != other.m_opt;
6048 void setFromString(
const std::string &value);
6050 Zivid::DataModel::Detail::Optional<bool> m_opt;
6052 friend struct DataModel::Detail::Befriend<
Enabled>;
6063 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Experimental" };
6066 static constexpr const char *name{
"Experimental" };
6069 static constexpr const char *description{
6070 R
"description(Experimental reflection filter related settings)description"
6088 static constexpr const char *path{
6089 "Processing/Filters/Reflection/Removal/Experimental/Mode"
6093 static constexpr const char *name{
"Mode" };
6096 static constexpr const char *description{
6097 R
"description(The reflection filter has two modes: Local and Global. Local mode preserves more 3D data
6098on thinner objects, generally removes more reflection artifacts and processes faster than
6099the Global filter. The Global filter is generally better at removing outlier points in
6100the point cloud. It is advised to use the Outlier filter together with the Local
6103Global mode was introduced in SDK 1.0 and Local mode was introduced in SDK 2.7.
6119 return { ValueType::global, ValueType::local };
6127 : m_opt{ verifyValue(value) }
6154 return m_opt == other.m_opt;
6160 return m_opt != other.m_opt;
6170 void setFromString(
const std::string &value);
6172 constexpr ValueType
static verifyValue(
const ValueType &value)
6174 return value == ValueType::global || value == ValueType::local
6176 :
throw std::invalid_argument{
6177 "Invalid value: Mode{ "
6179 static_cast<std::underlying_type<ValueType>::type
>(value))
6184 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
6186 friend struct DataModel::Detail::Befriend<
Mode>;
6190 std::tuple<Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>;
6209 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6210 typename std::enable_if<
6211 Zivid::Detail::TypeTraits::
6212 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
6215 template<typename... Args>
6219 using namespace Zivid::Detail::TypeTraits;
6222 AllArgsDecayedAreUnique<Args...>::value,
6223 "Found duplicate types among the arguments passed to Experimental(...). "
6224 "Types should be listed at most once.");
6226 set(std::forward<Args>(args)...);
6240 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6242 template<typename... Args>
6246 using namespace Zivid::Detail::TypeTraits;
6248 using AllArgsAreDescendantNodes =
6249 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6251 AllArgsAreDescendantNodes::value,
6252 "All arguments passed to set(...) must be descendant nodes.");
6255 AllArgsDecayedAreUnique<Args...>::value,
6256 "Found duplicate types among the arguments passed to set(...). "
6257 "Types should be listed at most once.");
6259 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6274 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6276 template<typename... Args>
6280 using namespace Zivid::Detail::TypeTraits;
6282 using AllArgsAreDescendantNodes =
6283 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6285 AllArgsAreDescendantNodes::value,
6286 "All arguments passed to copyWith(...) must be descendant nodes.");
6289 AllArgsDecayedAreUnique<Args...>::value,
6290 "Found duplicate types among the arguments passed to copyWith(...). "
6291 "Types should be listed at most once.");
6294 copy.
set(std::forward<Args>(args)...);
6319 typename std::enable_if<
6329 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6336 template<
typename F>
6343 template<
typename F>
6365 void setFromString(
const std::string &value);
6367 void setFromString(
const std::string &fullPath,
const std::string &value);
6369 std::string getString(
const std::string &fullPath)
const;
6373 friend struct DataModel::Detail::Befriend<
Experimental>;
6400 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6401 typename std::enable_if<
6402 Zivid::Detail::TypeTraits::
6403 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
6406 template<typename... Args>
6410 using namespace Zivid::Detail::TypeTraits;
6413 AllArgsDecayedAreUnique<Args...>::value,
6414 "Found duplicate types among the arguments passed to Removal(...). "
6415 "Types should be listed at most once.");
6417 set(std::forward<Args>(args)...);
6433 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6435 template<typename... Args>
6439 using namespace Zivid::Detail::TypeTraits;
6441 using AllArgsAreDescendantNodes =
6442 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6444 AllArgsAreDescendantNodes::value,
6445 "All arguments passed to set(...) must be descendant nodes.");
6448 AllArgsDecayedAreUnique<Args...>::value,
6449 "Found duplicate types among the arguments passed to set(...). "
6450 "Types should be listed at most once.");
6452 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6469 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6471 template<typename... Args>
6475 using namespace Zivid::Detail::TypeTraits;
6477 using AllArgsAreDescendantNodes =
6478 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6480 AllArgsAreDescendantNodes::value,
6481 "All arguments passed to copyWith(...) must be descendant nodes.");
6484 AllArgsDecayedAreUnique<Args...>::value,
6485 "Found duplicate types among the arguments passed to copyWith(...). "
6486 "Types should be listed at most once.");
6489 copy.
set(std::forward<Args>(args)...);
6515 return m_experimental;
6521 return m_experimental;
6527 m_experimental = value;
6534 m_experimental.
set(value);
6540 typename std::enable_if<
6541 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
6550 typename std::enable_if<
6551 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::
6556 return m_experimental;
6561 typename std::enable_if<
6568 return m_experimental
6572 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6578 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6581 return m_experimental;
6585 template<
typename F>
6593 template<
typename F>
6616 void setFromString(
const std::string &value);
6618 void setFromString(
const std::string &fullPath,
const std::string &value);
6620 std::string getString(
const std::string &fullPath)
const;
6625 friend struct DataModel::Detail::Befriend<
Removal>;
6654 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6655 typename std::enable_if<
6656 Zivid::Detail::TypeTraits::
6657 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
6660 template<typename... Args>
6664 using namespace Zivid::Detail::TypeTraits;
6667 AllArgsDecayedAreUnique<Args...>::value,
6668 "Found duplicate types among the arguments passed to Reflection(...). "
6669 "Types should be listed at most once.");
6671 set(std::forward<Args>(args)...);
6688 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6690 template<typename... Args>
6694 using namespace Zivid::Detail::TypeTraits;
6696 using AllArgsAreDescendantNodes =
6697 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6699 AllArgsAreDescendantNodes::value,
6700 "All arguments passed to set(...) must be descendant nodes.");
6703 AllArgsDecayedAreUnique<Args...>::value,
6704 "Found duplicate types among the arguments passed to set(...). "
6705 "Types should be listed at most once.");
6707 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6725 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6727 template<typename... Args>
6731 using namespace Zivid::Detail::TypeTraits;
6733 using AllArgsAreDescendantNodes =
6734 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6736 AllArgsAreDescendantNodes::value,
6737 "All arguments passed to copyWith(...) must be descendant nodes.");
6740 AllArgsDecayedAreUnique<Args...>::value,
6741 "Found duplicate types among the arguments passed to copyWith(...). "
6742 "Types should be listed at most once.");
6745 copy.
set(std::forward<Args>(args)...);
6771 m_removal.
set(value);
6778 m_removal.
set(value);
6785 m_removal.
set(value);
6791 typename std::enable_if<
6792 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
6801 typename std::enable_if<
6802 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
6811 typename std::enable_if<
6812 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
6821 typename std::enable_if<
6822 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::
6830 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6837 template<
typename F>
6844 template<
typename F>
6866 void setFromString(
const std::string &value);
6868 void setFromString(
const std::string &fullPath,
const std::string &value);
6870 std::string getString(
const std::string &fullPath)
const;
6874 friend struct DataModel::Detail::Befriend<
Reflection>;
6885 static constexpr const char *path{
"Processing/Filters/Smoothing" };
6888 static constexpr const char *name{
"Smoothing" };
6891 static constexpr const char *description{ R
"description(Smoothing filters)description" };
6901 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian" };
6904 static constexpr const char *name{
"Gaussian" };
6907 static constexpr const char *description{
6908 R
"description(Gaussian smoothing of the point cloud)description"
6919 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Enabled" };
6922 static constexpr const char *name{
"Enabled" };
6925 static constexpr const char *description{
6926 R
"description(Enable or disable the smoothing filter)description"
6937 return {
false,
true };
6966 return m_opt == other.m_opt;
6972 return m_opt != other.m_opt;
6982 void setFromString(
const std::string &value);
6984 Zivid::DataModel::Detail::Optional<bool> m_opt;
6986 friend struct DataModel::Detail::Befriend<
Enabled>;
6997 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Sigma" };
7000 static constexpr const char *name{
"Sigma" };
7003 static constexpr const char *description{
7004 R
"description(Higher values result in smoother point clouds (Standard deviation of the filter coefficients))description"
7021 : m_opt{ verifyValue(value) }
7042 return m_opt == other.m_opt;
7048 return m_opt != other.m_opt;
7054 return m_opt < other.m_opt;
7060 return m_opt > other.m_opt;
7070 void setFromString(
const std::string &value);
7072 constexpr ValueType
static verifyValue(
const ValueType &value)
7076 :
throw std::out_of_range{
"Sigma{ " + std::to_string(value)
7077 +
" } is not in range ["
7079 + std::to_string(
validRange().max()) +
"]" };
7082 Zivid::DataModel::Detail::Optional<double> m_opt;
7084 friend struct DataModel::Detail::Befriend<
Sigma>;
7109 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7110 typename std::enable_if<
7111 Zivid::Detail::TypeTraits::
7112 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
7115 template<typename... Args>
7119 using namespace Zivid::Detail::TypeTraits;
7122 AllArgsDecayedAreUnique<Args...>::value,
7123 "Found duplicate types among the arguments passed to Gaussian(...). "
7124 "Types should be listed at most once.");
7126 set(std::forward<Args>(args)...);
7141 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7143 template<typename... Args>
7147 using namespace Zivid::Detail::TypeTraits;
7149 using AllArgsAreDescendantNodes =
7150 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7152 AllArgsAreDescendantNodes::value,
7153 "All arguments passed to set(...) must be descendant nodes.");
7156 AllArgsDecayedAreUnique<Args...>::value,
7157 "Found duplicate types among the arguments passed to set(...). "
7158 "Types should be listed at most once.");
7160 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7176 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7178 template<typename... Args>
7182 using namespace Zivid::Detail::TypeTraits;
7184 using AllArgsAreDescendantNodes =
7185 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7187 AllArgsAreDescendantNodes::value,
7188 "All arguments passed to copyWith(...) must be descendant nodes.");
7191 AllArgsDecayedAreUnique<Args...>::value,
7192 "Found duplicate types among the arguments passed to copyWith(...). "
7193 "Types should be listed at most once.");
7196 copy.
set(std::forward<Args>(args)...);
7240 typename std::enable_if<
7241 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
7250 typename std::enable_if<
7251 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
7258 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7264 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
7271 template<
typename F>
7279 template<
typename F>
7302 void setFromString(
const std::string &value);
7304 void setFromString(
const std::string &fullPath,
const std::string &value);
7306 std::string getString(
const std::string &fullPath)
const;
7311 friend struct DataModel::Detail::Befriend<
Gaussian>;
7338 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7339 typename std::enable_if<
7340 Zivid::Detail::TypeTraits::
7341 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
7344 template<typename... Args>
7348 using namespace Zivid::Detail::TypeTraits;
7351 AllArgsDecayedAreUnique<Args...>::value,
7352 "Found duplicate types among the arguments passed to Smoothing(...). "
7353 "Types should be listed at most once.");
7355 set(std::forward<Args>(args)...);
7371 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7373 template<typename... Args>
7377 using namespace Zivid::Detail::TypeTraits;
7379 using AllArgsAreDescendantNodes =
7380 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7382 AllArgsAreDescendantNodes::value,
7383 "All arguments passed to set(...) must be descendant nodes.");
7386 AllArgsDecayedAreUnique<Args...>::value,
7387 "Found duplicate types among the arguments passed to set(...). "
7388 "Types should be listed at most once.");
7390 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7407 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7409 template<typename... Args>
7413 using namespace Zivid::Detail::TypeTraits;
7415 using AllArgsAreDescendantNodes =
7416 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7418 AllArgsAreDescendantNodes::value,
7419 "All arguments passed to copyWith(...) must be descendant nodes.");
7422 AllArgsDecayedAreUnique<Args...>::value,
7423 "Found duplicate types among the arguments passed to copyWith(...). "
7424 "Types should be listed at most once.");
7427 copy.
set(std::forward<Args>(args)...);
7453 m_gaussian.
set(value);
7460 m_gaussian.
set(value);
7466 typename std::enable_if<
7467 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
7476 typename std::enable_if<
7477 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
7486 typename std::enable_if<
7487 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
7494 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7501 template<
typename F>
7508 template<
typename F>
7530 void setFromString(
const std::string &value);
7532 void setFromString(
const std::string &fullPath,
const std::string &value);
7534 std::string getString(
const std::string &fullPath)
const;
7538 friend struct DataModel::Detail::Befriend<
Smoothing>;
7609 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7610 typename std::enable_if<
7611 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
7615 template<typename... Args>
7619 using namespace Zivid::Detail::TypeTraits;
7622 AllArgsDecayedAreUnique<Args...>::value,
7623 "Found duplicate types among the arguments passed to Filters(...). "
7624 "Types should be listed at most once.");
7626 set(std::forward<Args>(args)...);
7664 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7666 template<typename... Args>
7670 using namespace Zivid::Detail::TypeTraits;
7672 using AllArgsAreDescendantNodes =
7673 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7675 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
7678 AllArgsDecayedAreUnique<Args...>::value,
7679 "Found duplicate types among the arguments passed to set(...). "
7680 "Types should be listed at most once.");
7682 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7721 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7723 template<typename... Args>
7727 using namespace Zivid::Detail::TypeTraits;
7729 using AllArgsAreDescendantNodes =
7730 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7732 AllArgsAreDescendantNodes::value,
7733 "All arguments passed to copyWith(...) must be descendant nodes.");
7736 AllArgsDecayedAreUnique<Args...>::value,
7737 "Found duplicate types among the arguments passed to copyWith(...). "
7738 "Types should be listed at most once.");
7741 copy.
set(std::forward<Args>(args)...);
7748 return m_experimental;
7754 return m_experimental;
7760 m_experimental = value;
7767 m_experimental.
set(value);
7774 m_experimental.
set(value);
7781 m_experimental.
set(value);
7788 m_experimental.
set(value);
7795 m_experimental.
set(value);
7802 m_experimental.
set(value);
7809 m_experimental.
set(value);
7875 m_outlier.
set(value);
7882 m_outlier.
set(value);
7889 m_outlier.
set(value);
7896 return m_reflection;
7902 return m_reflection;
7908 m_reflection = value;
7915 m_reflection.
set(value);
7922 m_reflection.
set(value);
7929 m_reflection.
set(value);
7936 m_reflection.
set(value);
7955 m_smoothing = value;
7962 m_smoothing.
set(value);
7969 m_smoothing.
set(value);
7976 m_smoothing.
set(value);
7982 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
7986 return m_experimental;
7991 typename std::enable_if<
7992 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
8001 typename std::enable_if<
8002 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::
8007 return m_experimental
8013 typename std::enable_if<
8021 return m_experimental
8027 typename std::enable_if<
8035 return m_experimental
8041 typename std::enable_if<
8042 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
8047 return m_experimental
8053 typename std::enable_if<
8060 return m_experimental
8066 typename std::enable_if<
8073 return m_experimental
8079 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type =
8089 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type = 0>
8097 typename std::enable_if<
8098 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
8107 typename std::enable_if<
8108 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
8117 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type =
8126 typename std::enable_if<
8127 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
8136 typename std::enable_if<
8137 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
8146 typename std::enable_if<
8147 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
8156 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::
8160 return m_reflection;
8165 typename std::enable_if<
8166 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
8175 typename std::enable_if<
8176 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
8185 typename std::enable_if<
8186 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
8195 typename std::enable_if<
8196 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::value,
8205 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::
8214 typename std::enable_if<
8215 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
8224 typename std::enable_if<
8225 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
8234 typename std::enable_if<
8235 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
8242 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8245 return m_experimental;
8248 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
8254 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
8260 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
8263 return m_reflection;
8266 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
8273 template<
typename F>
8284 template<
typename F>
8310 void setFromString(
const std::string &value);
8312 void setFromString(
const std::string &fullPath,
const std::string &value);
8314 std::string getString(
const std::string &fullPath)
const;
8319 Reflection m_reflection;
8322 friend struct DataModel::Detail::Befriend<
Filters>;
8411 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8412 typename std::enable_if<
8413 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
8417 template<typename... Args>
8421 using namespace Zivid::Detail::TypeTraits;
8424 AllArgsDecayedAreUnique<Args...>::value,
8425 "Found duplicate types among the arguments passed to Processing(...). "
8426 "Types should be listed at most once.");
8428 set(std::forward<Args>(args)...);
8475 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8477 template<typename... Args>
8481 using namespace Zivid::Detail::TypeTraits;
8483 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8485 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
8488 AllArgsDecayedAreUnique<Args...>::value,
8489 "Found duplicate types among the arguments passed to set(...). "
8490 "Types should be listed at most once.");
8492 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8540 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8542 template<typename... Args>
8546 using namespace Zivid::Detail::TypeTraits;
8548 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8550 AllArgsAreDescendantNodes::value,
8551 "All arguments passed to copyWith(...) must be descendant nodes.");
8554 AllArgsDecayedAreUnique<Args...>::value,
8555 "Found duplicate types among the arguments passed to copyWith(...). "
8556 "Types should be listed at most once.");
8559 copy.
set(std::forward<Args>(args)...);
8653 m_filters.
set(value);
8660 m_filters.
set(value);
8667 m_filters.
set(value);
8674 m_filters.
set(value);
8681 m_filters.
set(value);
8688 m_filters.
set(value);
8695 m_filters.
set(value);
8702 m_filters.
set(value);
8709 m_filters.
set(value);
8716 m_filters.
set(value);
8723 m_filters.
set(value);
8730 m_filters.
set(value);
8737 m_filters.
set(value);
8744 m_filters.
set(value);
8751 m_filters.
set(value);
8758 m_filters.
set(value);
8765 m_filters.
set(value);
8772 m_filters.
set(value);
8779 m_filters.
set(value);
8786 m_filters.
set(value);
8793 m_filters.
set(value);
8800 m_filters.
set(value);
8807 m_filters.
set(value);
8814 m_filters.
set(value);
8821 m_filters.
set(value);
8827 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
8835 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
8843 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type =
8852 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
8861 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type =
8870 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type =
8879 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
8888 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
8896 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
8904 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
8913 typename std::enable_if<
8914 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
8923 typename std::enable_if<
8924 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
8933 typename std::enable_if<
8946 typename std::enable_if<
8959 typename std::enable_if<
8960 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
8969 typename std::enable_if<
8970 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
8981 typename std::enable_if<
8994 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
9002 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::
9011 typename std::enable_if<
9012 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
9021 typename std::enable_if<
9022 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
9031 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
9039 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
9048 typename std::enable_if<
9049 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
9058 typename std::enable_if<
9059 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
9068 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type =
9077 typename std::enable_if<
9078 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
9087 typename std::enable_if<
9088 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
9097 typename std::enable_if<
9098 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
9107 typename std::enable_if<
9108 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::value,
9117 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type =
9126 typename std::enable_if<
9127 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
9136 typename std::enable_if<
9137 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9146 typename std::enable_if<
9147 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9154 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9160 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9167 template<
typename F>
9175 template<
typename F>
9198 void setFromString(
const std::string &value);
9200 void setFromString(
const std::string &fullPath,
const std::string &value);
9202 std::string getString(
const std::string &fullPath)
const;
9207 friend struct DataModel::Detail::Befriend<
Processing>;
9311 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9312 typename std::enable_if<
9313 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
9316 template<typename... Args>
9320 using namespace Zivid::Detail::TypeTraits;
9323 AllArgsDecayedAreUnique<Args...>::value,
9324 "Found duplicate types among the arguments passed to Settings(...). "
9325 "Types should be listed at most once.");
9327 set(std::forward<Args>(args)...);
9380 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9382 template<typename... Args>
9386 using namespace Zivid::Detail::TypeTraits;
9388 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9390 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
9393 AllArgsDecayedAreUnique<Args...>::value,
9394 "Found duplicate types among the arguments passed to set(...). "
9395 "Types should be listed at most once.");
9397 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9451 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9453 template<typename... Args>
9457 using namespace Zivid::Detail::TypeTraits;
9459 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9461 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
9464 AllArgsDecayedAreUnique<Args...>::value,
9465 "Found duplicate types among the arguments passed to copyWith(...). "
9466 "Types should be listed at most once.");
9469 copy.
set(std::forward<Args>(args)...);
9476 return m_acquisitions;
9482 return m_acquisitions;
9488 m_acquisitions = value;
9495 return m_diagnostics;
9501 return m_diagnostics;
9507 m_diagnostics = value;
9514 m_diagnostics.
set(value);
9521 return m_experimental;
9527 return m_experimental;
9533 m_experimental = value;
9540 m_experimental.
set(value);
9547 return m_processing;
9553 return m_processing;
9559 m_processing = value;
9566 m_processing.
set(value);
9573 m_processing.
set(value);
9580 m_processing.
set(value);
9587 m_processing.
set(value);
9594 m_processing.
set(value);
9601 m_processing.
set(value);
9608 m_processing.
set(value);
9615 m_processing.
set(value);
9622 m_processing.
set(value);
9629 m_processing.
set(value);
9636 m_processing.
set(value);
9643 m_processing.
set(value);
9650 m_processing.
set(value);
9657 m_processing.
set(value);
9664 m_processing.
set(value);
9671 m_processing.
set(value);
9678 m_processing.
set(value);
9685 m_processing.
set(value);
9692 m_processing.
set(value);
9699 m_processing.
set(value);
9706 m_processing.
set(value);
9713 m_processing.
set(value);
9720 m_processing.
set(value);
9727 m_processing.
set(value);
9734 m_processing.
set(value);
9741 m_processing.
set(value);
9748 m_processing.
set(value);
9755 m_processing.
set(value);
9762 m_processing.
set(value);
9769 m_processing.
set(value);
9776 m_processing.
set(value);
9783 m_processing.
set(value);
9790 m_processing.
set(value);
9797 m_processing.
set(value);
9801 template<typename T, typename std::enable_if<std::is_same<T, Settings::Acquisitions>::value,
int>::type = 0>
9804 return m_acquisitions;
9807 template<typename T, typename std::enable_if<std::is_same<T, Settings::Diagnostics>::value,
int>::type = 0>
9810 return m_diagnostics;
9815 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
9821 template<typename T, typename std::enable_if<std::is_same<T, Settings::Experimental>::value,
int>::type = 0>
9824 return m_experimental;
9829 typename std::enable_if<std::is_same<T, Settings::Experimental::Engine>::value,
int>::type = 0>
9835 template<typename T, typename std::enable_if<std::is_same<T, Settings::Processing>::value,
int>::type = 0>
9838 return m_processing;
9843 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
9851 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
9859 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type = 0>
9867 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::type = 0>
9875 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
9883 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type = 0>
9891 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
9900 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
9908 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
9916 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::type = 0>
9924 typename std::enable_if<
9925 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
9934 typename std::enable_if<
9935 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
9944 typename std::enable_if<
9945 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled>::
9956 typename std::enable_if<
9957 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength>::
9968 typename std::enable_if<
9969 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
9978 typename std::enable_if<
9979 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
9990 typename std::enable_if<
9991 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold>::
10002 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
10010 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type =
10019 typename std::enable_if<
10020 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
10029 typename std::enable_if<
10030 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
10039 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
10047 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
10056 typename std::enable_if<
10057 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
10066 typename std::enable_if<
10067 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
10076 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type = 0>
10084 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
int>::
10093 typename std::enable_if<
10094 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
10103 typename std::enable_if<
10104 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
10113 typename std::enable_if<
10114 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::value,
10123 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type = 0>
10131 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
int>::
10140 typename std::enable_if<
10141 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
10150 typename std::enable_if<
10151 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
10158 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
10161 return m_acquisitions;
10164 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
10167 return m_diagnostics;
10170 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
10173 return m_experimental;
10176 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
10179 return m_processing;
10183 template<
typename F>
10193 template<
typename F>
10214 return stream << value.
toString();
10218 void save(
const std::string &fileName)
const;
10221 void load(
const std::string &fileName);
10224 void setFromString(
const std::string &value);
10226 void setFromString(
const std::string &fullPath,
const std::string &value);
10228 std::string getString(
const std::string &fullPath)
const;
10235 friend struct DataModel::Detail::Befriend<
Settings>;
10240 struct Settings::Version<12>
10249# pragma warning(pop)
10253# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
10258 struct tuple_size<
Zivid::Settings::Diagnostics> : integral_constant<size_t, 1>
10262 struct tuple_element<i,
Zivid::Settings::Diagnostics>
10264 static_assert(i < tuple_size<Zivid::Settings::Diagnostics>::value,
"Index must be less than 1");
10267 =
decltype(declval<Zivid::Settings::Diagnostics>().get<i>());
10271 struct tuple_size<
Zivid::Settings::Experimental> : integral_constant<size_t, 1>
10275 struct tuple_element<i,
Zivid::Settings::Experimental>
10277 static_assert(i < tuple_size<Zivid::Settings::Experimental>::value,
"Index must be less than 1");
10280 =
decltype(declval<Zivid::Settings::Experimental>().get<i>());
10284 struct tuple_size<
Zivid::Settings::Processing> : integral_constant<size_t, 2>
10288 struct tuple_element<i,
Zivid::Settings::Processing>
10290 static_assert(i < tuple_size<Zivid::Settings::Processing>::value,
"Index must be less than 2");
10293 =
decltype(declval<Zivid::Settings::Processing>().get<i>());
10297 struct tuple_size<
Zivid::Settings::Processing::Color> : integral_constant<size_t, 3>
10301 struct tuple_element<i,
Zivid::Settings::Processing::Color>
10303 static_assert(i < tuple_size<Zivid::Settings::Processing::Color>::value,
"Index must be less than 3");
10306 =
decltype(declval<Zivid::Settings::Processing::Color>().get<i>());
10310 struct tuple_size<
Zivid::Settings::Processing::Color::Balance> : integral_constant<size_t, 3>
10314 struct tuple_element<i,
Zivid::Settings::Processing::Color::Balance>
10316 static_assert(i < tuple_size<Zivid::Settings::Processing::Color::Balance>::value,
"Index must be less than 3");
10319 =
decltype(declval<Zivid::Settings::Processing::Color::Balance>().get<i>());
10323 struct tuple_size<
Zivid::Settings::Processing::Color::Experimental> : integral_constant<size_t, 1>
10327 struct tuple_element<i,
Zivid::Settings::Processing::Color::Experimental>
10330 i < tuple_size<Zivid::Settings::Processing::Color::Experimental>::value,
10331 "Index must be less than 1");
10334 =
decltype(declval<Zivid::Settings::Processing::Color::Experimental>().get<i>());
10338 struct tuple_size<
Zivid::Settings::Processing::Filters> : integral_constant<size_t, 5>
10342 struct tuple_element<i,
Zivid::Settings::Processing::Filters>
10344 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters>::value,
"Index must be less than 5");
10347 =
decltype(declval<Zivid::Settings::Processing::Filters>().get<i>());
10351 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental> : integral_constant<size_t, 1>
10355 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental>
10358 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental>::value,
10359 "Index must be less than 1");
10362 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental>().get<i>());
10366 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
10367 : integral_constant<size_t, 2>
10371 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
10374 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
10375 "Index must be less than 2");
10378 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>().get<i>());
10382 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
10383 : integral_constant<size_t, 2>
10387 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
10390 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
10391 "Index must be less than 2");
10394 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>()
10399 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
10400 : integral_constant<size_t, 2>
10404 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
10407 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
10408 "Index must be less than 2");
10411 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>()
10416 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise> : integral_constant<size_t, 1>
10420 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise>
10422 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Noise>::value,
"Index must be less than 1");
10425 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise>().get<i>());
10429 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Removal> : integral_constant<size_t, 2>
10433 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Removal>
10436 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Removal>::value,
10437 "Index must be less than 2");
10440 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Removal>().get<i>());
10444 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier> : integral_constant<size_t, 1>
10448 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier>
10451 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier>::value,
10452 "Index must be less than 1");
10455 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier>().get<i>());
10459 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier::Removal> : integral_constant<size_t, 2>
10463 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier::Removal>
10466 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier::Removal>::value,
10467 "Index must be less than 2");
10470 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier::Removal>().get<i>());
10474 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection> : integral_constant<size_t, 1>
10478 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection>
10481 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection>::value,
10482 "Index must be less than 1");
10485 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection>().get<i>());
10489 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal> : integral_constant<size_t, 2>
10493 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal>
10496 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal>::value,
10497 "Index must be less than 2");
10500 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal>().get<i>());
10504 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>
10505 : integral_constant<size_t, 1>
10509 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>
10512 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
10513 "Index must be less than 1");
10516 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>().get<i>());
10520 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing> : integral_constant<size_t, 1>
10524 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing>
10527 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing>::value,
10528 "Index must be less than 1");
10531 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing>().get<i>());
10535 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing::Gaussian> : integral_constant<size_t, 2>
10539 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing::Gaussian>
10542 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>::value,
10543 "Index must be less than 2");
10546 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>().get<i>());
10550 struct tuple_size<
Zivid::Settings> : integral_constant<size_t, 4>
10554 struct tuple_element<i,
Zivid::Settings>
10556 static_assert(i < tuple_size<Zivid::Settings>::value,
"Index must be less than 4");
10559 =
decltype(declval<Zivid::Settings>().get<i>());
10568#if defined(__has_include) && !defined(NO_DOC)
10569# if __has_include("Zivid/SettingsInternal.h") && __has_include("Zivid/DataModelSerializationMetaData.h")
10570# include "Zivid/SettingsInternal.h"
#define ZIVID_CORE_EXPORT
Definition: CoreExport.h:101
Class describing a range of values for a given type T
Definition: Range.h:102
Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to the effe...
Definition: Settings.h:171
bool operator<(const Aperture &other) const
Comparison operator
Definition: Settings.h:234
friend std::ostream & operator<<(std::ostream &stream, const Aperture &value)
Operator to serialize the value to a stream
Definition: Settings.h:246
double value() const
Get the value
std::string toString() const
Get the value as string
bool operator>(const Aperture &other) const
Comparison operator
Definition: Settings.h:240
bool operator==(const Aperture &other) const
Comparison operator
Definition: Settings.h:222
bool operator!=(const Aperture &other) const
Comparison operator
Definition: Settings.h:228
Aperture()=default
Default constructor
constexpr Aperture(double value)
Constructor
Definition: Settings.h:202
double ValueType
The type of the underlying value
Definition: Settings.h:190
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Aperture
Definition: Settings.h:193
bool hasValue() const
Check if the value is set
Brightness controls the light output from the projector.
Definition: Settings.h:280
bool operator!=(const Brightness &other) const
Comparison operator
Definition: Settings.h:345
bool operator<(const Brightness &other) const
Comparison operator
Definition: Settings.h:351
bool operator>(const Brightness &other) const
Comparison operator
Definition: Settings.h:357
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Brightness
Definition: Settings.h:310
std::string toString() const
Get the value as string
double value() const
Get the value
friend std::ostream & operator<<(std::ostream &stream, const Brightness &value)
Operator to serialize the value to a stream
Definition: Settings.h:363
constexpr Brightness(double value)
Constructor
Definition: Settings.h:319
bool hasValue() const
Check if the value is set
Brightness()=default
Default constructor
double ValueType
The type of the underlying value
Definition: Settings.h:307
bool operator==(const Brightness &other) const
Comparison operator
Definition: Settings.h:339
Exposure time for each single image in the measurement. Affects frame rate.
Definition: Settings.h:387
bool operator<(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:448
ExposureTime()=default
Default constructor
bool hasValue() const
Check if the value is set
void reset()
Reset the node to unset state
std::string toString() const
Get the value as string
bool operator>(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:454
std::chrono::microseconds ValueType
The type of the underlying value
Definition: Settings.h:404
bool operator==(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:436
bool operator!=(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:442
std::chrono::microseconds value() const
Get the value
static constexpr Range< std::chrono::microseconds > validRange()
The range of valid values for ExposureTime
Definition: Settings.h:407
constexpr ExposureTime(std::chrono::microseconds value)
Constructor
Definition: Settings.h:416
friend std::ostream & operator<<(std::ostream &stream, const ExposureTime &value)
Operator to serialize the value to a stream
Definition: Settings.h:460
Analog gain in the camera
Definition: Settings.h:485
bool operator==(const Gain &other) const
Comparison operator
Definition: Settings.h:532
friend std::ostream & operator<<(std::ostream &stream, const Gain &value)
Operator to serialize the value to a stream
Definition: Settings.h:556
constexpr Gain(double value)
Constructor
Definition: Settings.h:512
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Gain
Definition: Settings.h:503
double value() const
Get the value
Gain()=default
Default constructor
bool hasValue() const
Check if the value is set
double ValueType
The type of the underlying value
Definition: Settings.h:500
std::string toString() const
Get the value as string
bool operator!=(const Gain &other) const
Comparison operator
Definition: Settings.h:538
bool operator>(const Gain &other) const
Comparison operator
Definition: Settings.h:550
bool operator<(const Gain &other) const
Comparison operator
Definition: Settings.h:544
Settings for a single acquisition
Definition: Settings.h:153
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:830
Acquisition & set(const Aperture &value)
Set Aperture
Definition: Settings.h:709
const Aperture & aperture() const
Get Aperture
Definition: Settings.h:697
Gain & gain()
Get Gain
Definition: Settings.h:760
const Settings::Acquisition::Aperture & get() const
Definition: Settings.h:775
Brightness & brightness()
Get Brightness
Definition: Settings.h:722
friend std::ostream & operator<<(std::ostream &stream, const Acquisition &value)
Operator to send the value as string to a stream
Definition: Settings.h:858
std::tuple< Settings::Acquisition::Aperture, Settings::Acquisition::Brightness, Settings::Acquisition::ExposureTime, Settings::Acquisition::Gain > Descendants
Definition: Settings.h:582
bool operator==(const Acquisition &other) const
Equality operator
const Settings::Acquisition::ExposureTime & get() const
Definition: Settings.h:791
bool operator!=(const Acquisition &other) const
Inequality operator
const ExposureTime & exposureTime() const
Get ExposureTime
Definition: Settings.h:735
Acquisition & set(const Brightness &value)
Set Brightness
Definition: Settings.h:728
Acquisition & set(const ExposureTime &value)
Set ExposureTime
Definition: Settings.h:747
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:642
const Brightness & brightness() const
Get Brightness
Definition: Settings.h:716
const Settings::Acquisition::Gain & get() const
Definition: Settings.h:799
Acquisition & set(const Gain &value)
Set Gain
Definition: Settings.h:766
Acquisition copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:677
Aperture & aperture()
Get Aperture
Definition: Settings.h:703
const Settings::Acquisition::Brightness & get() const
Definition: Settings.h:783
Acquisition(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:612
ExposureTime & exposureTime()
Get ExposureTime
Definition: Settings.h:741
const Gain & gain() const
Get Gain
Definition: Settings.h:754
Acquisition()
Default constructor
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: Settings.h:840
List of Acquisition objects
Definition: Settings.h:880
bool operator!=(const Acquisitions &other) const
Comparison operator
Definition: Settings.h:994
const std::vector< Settings::Acquisition > & value() const
Get the value
std::string toString() const
Get the value as string
void forEach(const F &f) const
Run the given function on each element in the list
Definition: Settings.h:979
const Settings::Acquisition & at(std::size_t pos) const
Returns a const reference to the element at position pos in the list
bool operator==(const Acquisitions &other) const
Comparison operator
Definition: Settings.h:988
Acquisitions()=default
Default constructor
Acquisitions(std::initializer_list< Settings::Acquisition > value)
Constructor
Definition: Settings.h:912
friend std::ostream & operator<<(std::ostream &stream, const Acquisitions &value)
Operator to serialize the value to a stream
Definition: Settings.h:1000
void forEach(const F &f)
Run the given function on each element in the list
Definition: Settings.h:969
Acquisitions(std::vector< Settings::Acquisition > value)
Constructor
Definition: Settings.h:907
std::vector< Settings::Acquisition > ValueType
The type of the underlying value
Definition: Settings.h:895
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Acquisitions
Definition: Settings.h:898
const Settings::Acquisition & operator[](std::size_t pos) const
Returns a const reference to the element at position pos in the list
Settings::Acquisition & at(std::size_t pos)
Returns a reference to the element at position pos in the list
std::size_t size() const noexcept
Get the size of the list
Settings::Acquisition & operator[](std::size_t pos)
Returns a reference to the element at position pos in the list
Enable diagnostics
Definition: Settings.h:1045
static const Enabled no
Off/disabled.
Definition: Settings.h:1062
bool hasValue() const
Check if the value is set
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:1065
void reset()
Reset the node to unset state
Enabled()=default
Default constructor
bool ValueType
The type of the underlying value
Definition: Settings.h:1060
static const Enabled yes
On/enabled.
Definition: Settings.h:1061
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:1094
bool value() const
Get the value
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:1106
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:1074
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:1100
std::string toString() const
Get the value as string
When Diagnostics is enabled, extra diagnostic information is recorded during capture....
Definition: Settings.h:1021
friend std::ostream & operator<<(std::ostream &stream, const Diagnostics &value)
Operator to send the value as string to a stream
Definition: Settings.h:1281
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1259
std::tuple< Settings::Diagnostics::Enabled > Descendants
Definition: Settings.h:1119
std::string toString() const
Get the value as string
Diagnostics copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:1205
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1266
Diagnostics()
Default constructor
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:1231
bool operator==(const Diagnostics &other) const
Equality operator
Diagnostics(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:1146
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:1173
const Settings::Diagnostics::Enabled & get() const
Definition: Settings.h:1246
bool operator!=(const Diagnostics &other) const
Inequality operator
Diagnostics & set(const Enabled &value)
Set Enabled
Definition: Settings.h:1237
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:1225
Set the Zivid Vision Engine to use.
Definition: Settings.h:1326
ValueType value() const
Get the value
static const Engine phase
phase
Definition: Settings.h:1354
bool hasValue() const
Check if the value is set
ValueType
The type of the underlying value
Definition: Settings.h:1350
friend std::ostream & operator<<(std::ostream &stream, const Engine &value)
Operator to serialize the value to a stream
Definition: Settings.h:1405
static std::set< ValueType > validValues()
All valid values of Engine
Definition: Settings.h:1358
std::string toString() const
Get the value as string
bool operator==(const Engine &other) const
Comparison operator
Definition: Settings.h:1393
Engine()=default
Default constructor
bool operator!=(const Engine &other) const
Comparison operator
Definition: Settings.h:1399
constexpr Engine(ValueType value)
Constructor
Definition: Settings.h:1367
friend std::ostream & operator<<(std::ostream &stream, const Engine::ValueType &value)
Operator to serialize ValueType to a stream
Definition: Settings.h:1387
static const Engine stripe
stripe
Definition: Settings.h:1355
void reset()
Reset the node to unset state
Experimental features. These settings may be changed, renamed, moved or deleted in the future.
Definition: Settings.h:1300
Engine & engine()
Get Engine
Definition: Settings.h:1540
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:1482
Experimental copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:1514
std::string toString() const
Get the value as string
bool operator!=(const Experimental &other) const
Inequality operator
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream
Definition: Settings.h:1590
const Settings::Experimental::Engine & get() const
Definition: Settings.h:1555
std::tuple< Settings::Experimental::Engine > Descendants
Definition: Settings.h:1428
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1568
bool operator==(const Experimental &other) const
Equality operator
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:1455
Experimental()
Default constructor
Experimental & set(const Engine &value)
Set Engine
Definition: Settings.h:1546
const Engine & engine() const
Get Engine
Definition: Settings.h:1534
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1575
Digital gain applied to blue channel
Definition: Settings.h:1659
friend std::ostream & operator<<(std::ostream &stream, const Blue &value)
Operator to serialize the value to a stream
Definition: Settings.h:1732
void reset()
Reset the node to unset state
double value() const
Get the value
bool operator==(const Blue &other) const
Comparison operator
Definition: Settings.h:1708
std::string toString() const
Get the value as string
bool operator<(const Blue &other) const
Comparison operator
Definition: Settings.h:1720
constexpr Blue(double value)
Constructor
Definition: Settings.h:1688
Blue()=default
Default constructor
bool operator!=(const Blue &other) const
Comparison operator
Definition: Settings.h:1714
bool hasValue() const
Check if the value is set
double ValueType
The type of the underlying value
Definition: Settings.h:1676
bool operator>(const Blue &other) const
Comparison operator
Definition: Settings.h:1726
static constexpr Range< double > validRange()
The range of valid values for Blue
Definition: Settings.h:1679
Digital gain applied to green channel
Definition: Settings.h:1757
void reset()
Reset the node to unset state
bool operator>(const Green &other) const
Comparison operator
Definition: Settings.h:1824
double value() const
Get the value
bool hasValue() const
Check if the value is set
friend std::ostream & operator<<(std::ostream &stream, const Green &value)
Operator to serialize the value to a stream
Definition: Settings.h:1830
double ValueType
The type of the underlying value
Definition: Settings.h:1774
constexpr Green(double value)
Constructor
Definition: Settings.h:1786
bool operator==(const Green &other) const
Comparison operator
Definition: Settings.h:1806
bool operator!=(const Green &other) const
Comparison operator
Definition: Settings.h:1812
Green()=default
Default constructor
std::string toString() const
Get the value as string
bool operator<(const Green &other) const
Comparison operator
Definition: Settings.h:1818
static constexpr Range< double > validRange()
The range of valid values for Green
Definition: Settings.h:1777
Digital gain applied to red channel
Definition: Settings.h:1855
bool operator!=(const Red &other) const
Comparison operator
Definition: Settings.h:1910
constexpr Red(double value)
Constructor
Definition: Settings.h:1884
friend std::ostream & operator<<(std::ostream &stream, const Red &value)
Operator to serialize the value to a stream
Definition: Settings.h:1928
double ValueType
The type of the underlying value
Definition: Settings.h:1872
static constexpr Range< double > validRange()
The range of valid values for Red
Definition: Settings.h:1875
double value() const
Get the value
bool operator==(const Red &other) const
Comparison operator
Definition: Settings.h:1904
Red()=default
Default constructor
bool operator<(const Red &other) const
Comparison operator
Definition: Settings.h:1916
void reset()
Reset the node to unset state
bool operator>(const Red &other) const
Comparison operator
Definition: Settings.h:1922
bool hasValue() const
Check if the value is set
std::string toString() const
Get the value as string
Color balance settings
Definition: Settings.h:1643
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:2012
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2174
bool operator!=(const Balance &other) const
Inequality operator
Balance & set(const Red &value)
Set Red
Definition: Settings.h:2119
Green & green()
Get Green
Definition: Settings.h:2094
std::string toString() const
Get the value as string
Balance(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:1983
Red & red()
Get Red
Definition: Settings.h:2113
bool operator==(const Balance &other) const
Equality operator
Balance copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:2048
Balance & set(const Blue &value)
Set Blue
Definition: Settings.h:2081
Blue & blue()
Get Blue
Definition: Settings.h:2075
const Red & red() const
Get Red
Definition: Settings.h:2107
std::tuple< Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red > Descendants
Definition: Settings.h:1954
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2183
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:2140
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:2149
Balance & set(const Green &value)
Set Green
Definition: Settings.h:2100
const Green & green() const
Get Green
Definition: Settings.h:2088
friend std::ostream & operator<<(std::ostream &stream, const Balance &value)
Operator to send the value as string to a stream
Definition: Settings.h:2200
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:2130
const Blue & blue() const
Get Blue
Definition: Settings.h:2069
Balance()
Default constructor
This setting controls how the color image is computed.
Definition: Settings.h:2260
static const Mode toneMapping
toneMapping
Definition: Settings.h:2306
ValueType value() const
Get the value
std::string toString() const
Get the value as string
static const Mode automatic
automatic
Definition: Settings.h:2304
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream
Definition: Settings.h:2356
void reset()
Reset the node to unset state
static const Mode useFirstAcquisition
useFirstAcquisition
Definition: Settings.h:2305
bool operator!=(const Mode &other) const
Comparison operator
Definition: Settings.h:2350
bool operator==(const Mode &other) const
Comparison operator
Definition: Settings.h:2344
ValueType
The type of the underlying value
Definition: Settings.h:2299
bool hasValue() const
Check if the value is set
constexpr Mode(ValueType value)
Constructor
Definition: Settings.h:2318
static std::set< ValueType > validValues()
All valid values of Mode
Definition: Settings.h:2309
Mode()=default
Default constructor
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream
Definition: Settings.h:2338
Experimental color settings. These may be renamed, moved or deleted in the future.
Definition: Settings.h:2221
std::tuple< Settings::Processing::Color::Experimental::Mode > Descendants
Definition: Settings.h:2381
bool operator!=(const Experimental &other) const
Inequality operator
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream
Definition: Settings.h:2548
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2533
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:2408
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:2435
std::string toString() const
Get the value as string
Experimental & set(const Mode &value)
Set Mode
Definition: Settings.h:2502
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2526
bool operator==(const Experimental &other) const
Equality operator
Experimental()
Default constructor
Mode & mode()
Get Mode
Definition: Settings.h:2496
const Mode & mode() const
Get Mode
Definition: Settings.h:2490
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:2513
Experimental copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:2469
Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma greater t...
Definition: Settings.h:2569
friend std::ostream & operator<<(std::ostream &stream, const Gamma &value)
Operator to serialize the value to a stream
Definition: Settings.h:2644
double value() const
Get the value
bool operator>(const Gamma &other) const
Comparison operator
Definition: Settings.h:2638
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Gamma
Definition: Settings.h:2591
Gamma()=default
Default constructor
double ValueType
The type of the underlying value
Definition: Settings.h:2588
bool hasValue() const
Check if the value is set
constexpr Gamma(double value)
Constructor
Definition: Settings.h:2600
bool operator!=(const Gamma &other) const
Comparison operator
Definition: Settings.h:2626
bool operator<(const Gamma &other) const
Comparison operator
Definition: Settings.h:2632
std::string toString() const
Get the value as string
bool operator==(const Gamma &other) const
Comparison operator
Definition: Settings.h:2620
Color settings
Definition: Settings.h:1627
Color & set(const Gamma &value)
Set Gamma
Definition: Settings.h:2877
const Settings::Processing::Color::Gamma & get() const
Definition: Settings.h:2941
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:2914
bool operator==(const Color &other) const
Equality operator
Color & set(const Experimental::Mode &value)
Set Experimental::Mode
Definition: Settings.h:2858
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:2905
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:2739
Color & set(const Experimental &value)
Set Experimental
Definition: Settings.h:2851
Color & set(const Balance &value)
Set Balance
Definition: Settings.h:2811
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to send the value as string to a stream
Definition: Settings.h:2992
const Balance & balance() const
Get Balance
Definition: Settings.h:2799
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:2839
Color()
Default constructor
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2975
const Settings::Processing::Color::Experimental & get() const
Definition: Settings.h:2923
Color & set(const Balance::Green &value)
Set Balance::Green
Definition: Settings.h:2825
Experimental & experimental()
Get Experimental
Definition: Settings.h:2845
std::string toString() const
Get the value as string
bool operator!=(const Color &other) const
Inequality operator
std::tuple< Settings::Processing::Color::Balance, Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red, Settings::Processing::Color::Experimental, Settings::Processing::Color::Experimental::Mode, Settings::Processing::Color::Gamma > Descendants
Definition: Settings.h:2673
Color & set(const Balance::Blue &value)
Set Balance::Blue
Definition: Settings.h:2818
Gamma & gamma()
Get Gamma
Definition: Settings.h:2871
Color copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:2778
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:2933
Color & set(const Balance::Red &value)
Set Balance::Red
Definition: Settings.h:2832
const Gamma & gamma() const
Get Gamma
Definition: Settings.h:2865
Color(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:2706
const Settings::Processing::Color::Balance & get() const
Definition: Settings.h:2887
Balance & balance()
Get Balance
Definition: Settings.h:2805
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2966
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:2896
Enabled
Definition: Settings.h:3091
void reset()
Reset the node to unset state
std::string toString() const
Get the value as string
static const Enabled yes
On/enabled.
Definition: Settings.h:3109
bool ValueType
The type of the underlying value
Definition: Settings.h:3108
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:3113
static const Enabled no
Off/disabled.
Definition: Settings.h:3110
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:3122
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:3154
bool hasValue() const
Check if the value is set
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:3142
bool value() const
Get the value
Enabled()=default
Default constructor
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:3148
Higher values gives more correction.
Definition: Settings.h:3169
double ValueType
The type of the underlying value
Definition: Settings.h:3188
bool operator>(const Strength &other) const
Comparison operator
Definition: Settings.h:3238
bool operator!=(const Strength &other) const
Comparison operator
Definition: Settings.h:3226
bool hasValue() const
Check if the value is set
constexpr Strength(double value)
Constructor
Definition: Settings.h:3200
static constexpr Range< double > validRange()
The range of valid values for Strength
Definition: Settings.h:3191
double value() const
Get the value
friend std::ostream & operator<<(std::ostream &stream, const Strength &value)
Operator to serialize the value to a stream
Definition: Settings.h:3244
Strength()=default
Default constructor
bool operator<(const Strength &other) const
Comparison operator
Definition: Settings.h:3232
void reset()
Reset the node to unset state
std::string toString() const
Get the value as string
bool operator==(const Strength &other) const
Comparison operator
Definition: Settings.h:3220
Correction
Definition: Settings.h:3073
bool operator==(const Correction &other) const
Equality operator
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:3387
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:3464
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:3381
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:3442
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength > Descendants
Definition: Settings.h:3269
Correction copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:3360
Strength & strength()
Get Strength
Definition: Settings.h:3406
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:3427
bool operator!=(const Correction &other) const
Inequality operator
friend std::ostream & operator<<(std::ostream &stream, const Correction &value)
Operator to send the value as string to a stream
Definition: Settings.h:3488
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:3325
Correction & set(const Enabled &value)
Set Enabled
Definition: Settings.h:3393
Correction()
Default constructor
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:3472
std::string toString() const
Get the value as string
Correction & set(const Strength &value)
Set Strength
Definition: Settings.h:3412
const Strength & strength() const
Get Strength
Definition: Settings.h:3400
Correction(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:3297
Enabled
Definition: Settings.h:3526
std::string toString() const
Get the value as string
static const Enabled yes
On/enabled.
Definition: Settings.h:3544
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:3557
Enabled()=default
Default constructor
void reset()
Reset the node to unset state
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:3583
bool ValueType
The type of the underlying value
Definition: Settings.h:3543
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:3548
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:3589
bool hasValue() const
Check if the value is set
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:3577
bool value() const
Get the value
static const Enabled no
Off/disabled.
Definition: Settings.h:3545
Higher values remove more points.
Definition: Settings.h:3604
void reset()
Reset the node to unset state
constexpr Threshold(double value)
Constructor
Definition: Settings.h:3635
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:3661
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:3667
static constexpr Range< double > validRange()
The range of valid values for Threshold
Definition: Settings.h:3626
Threshold()=default
Default constructor
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:3655
std::string toString() const
Get the value as string
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:3673
bool hasValue() const
Check if the value is set
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream
Definition: Settings.h:3679
double value() const
Get the value
double ValueType
The type of the underlying value
Definition: Settings.h:3623
Removal
Definition: Settings.h:3508
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:3897
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:3760
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:3921
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:3835
Removal & set(const Threshold &value)
Set Threshold
Definition: Settings.h:3847
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:3732
bool operator!=(const Removal &other) const
Inequality operator
bool operator==(const Removal &other) const
Equality operator
Removal copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:3795
Threshold & threshold()
Get Threshold
Definition: Settings.h:3841
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:3828
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:3862
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold > Descendants
Definition: Settings.h:3704
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:3822
Removal()
Default constructor
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:3816
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:3876
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:3905
std::string toString() const
Get the value as string
Corrects artifacts that appear when imaging scenes with large texture gradients or high contrast....
Definition: Settings.h:3051
ContrastDistortion & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:4121
ContrastDistortion & set(const Correction::Enabled &value)
Set Correction::Enabled
Definition: Settings.h:4088
ContrastDistortion & set(const Correction &value)
Set Correction
Definition: Settings.h:4081
ContrastDistortion()
Default constructor
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:4232
bool operator!=(const ContrastDistortion &other) const
Inequality operator
friend std::ostream & operator<<(std::ostream &stream, const ContrastDistortion &value)
Operator to send the value as string to a stream
Definition: Settings.h:4256
ContrastDistortion copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:4048
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Correction, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold > Descendants
Definition: Settings.h:3945
ContrastDistortion & set(const Correction::Strength &value)
Set Correction::Strength
Definition: Settings.h:4095
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:4009
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:4240
ContrastDistortion & set(const Removal &value)
Set Removal
Definition: Settings.h:4114
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:4211
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:4183
const Removal & removal() const
Get Removal
Definition: Settings.h:4102
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:4155
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:4141
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:4170
std::string toString() const
Get the value as string
Removal & removal()
Get Removal
Definition: Settings.h:4108
bool operator==(const ContrastDistortion &other) const
Equality operator
ContrastDistortion & set(const Removal::Threshold &value)
Set Removal::Threshold
Definition: Settings.h:4128
const Correction & correction() const
Get Correction
Definition: Settings.h:4069
ContrastDistortion(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:3977
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:4196
Correction & correction()
Get Correction
Definition: Settings.h:4075
Experimental filters. These may be renamed, moved or deleted in the future.
Definition: Settings.h:3029
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:4577
ContrastDistortion & contrastDistortion()
Get ContrastDistortion
Definition: Settings.h:4414
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:4527
Experimental copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:4387
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:4314
Experimental & set(const ContrastDistortion &value)
Set ContrastDistortion
Definition: Settings.h:4420
Experimental & set(const ContrastDistortion::Removal::Threshold &value)
Set ContrastDistortion::Removal::Threshold
Definition: Settings.h:4462
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:4347
Experimental & set(const ContrastDistortion::Correction::Strength &value)
Set ContrastDistortion::Correction::Strength
Definition: Settings.h:4441
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream
Definition: Settings.h:4592
Experimental()
Default constructor
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:4514
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:4570
Experimental & set(const ContrastDistortion::Removal &value)
Set ContrastDistortion::Removal
Definition: Settings.h:4448
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:4473
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:4485
bool operator!=(const Experimental &other) const
Inequality operator
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:4555
Experimental & set(const ContrastDistortion::Correction::Enabled &value)
Set ContrastDistortion::Correction::Enabled
Definition: Settings.h:4434
const ContrastDistortion & contrastDistortion() const
Get ContrastDistortion
Definition: Settings.h:4408
std::string toString() const
Get the value as string
bool operator==(const Experimental &other) const
Equality operator
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold > Descendants
Definition: Settings.h:4281
Experimental & set(const ContrastDistortion::Correction &value)
Set ContrastDistortion::Correction
Definition: Settings.h:4427
Experimental & set(const ContrastDistortion::Removal::Enabled &value)
Set ContrastDistortion::Removal::Enabled
Definition: Settings.h:4455
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:4499
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:4541
Enable or disable the SNR filter
Definition: Settings.h:4647
static const Enabled yes
On/enabled.
Definition: Settings.h:4665
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:4704
bool value() const
Get the value
void reset()
Reset the node to unset state
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:4698
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:4669
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:4678
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:4710
Enabled()=default
Default constructor
static const Enabled no
Off/disabled.
Definition: Settings.h:4666
bool ValueType
The type of the underlying value
Definition: Settings.h:4664
bool hasValue() const
Check if the value is set
std::string toString() const
Get the value as string
Discard points with signal-to-noise ratio (SNR) below the given value
Definition: Settings.h:4725
double value() const
Get the value
bool hasValue() const
Check if the value is set
Threshold()=default
Default constructor
constexpr Threshold(double value)
Constructor
Definition: Settings.h:4754
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:4774
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Threshold
Definition: Settings.h:4745
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream
Definition: Settings.h:4798
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:4792
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:4786
std::string toString() const
Get the value as string
double ValueType
The type of the underlying value
Definition: Settings.h:4742
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:4780
Discard points with signal-to-noise ratio (SNR) values below a threshold
Definition: Settings.h:4629
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:4851
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:5030
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:4935
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:4954
std::tuple< Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold > Descendants
Definition: Settings.h:4823
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5014
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:4947
Removal & set(const Threshold &value)
Set Threshold
Definition: Settings.h:4966
bool operator==(const Removal &other) const
Equality operator
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:4879
bool operator!=(const Removal &other) const
Inequality operator
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:4987
Threshold & threshold()
Get Threshold
Definition: Settings.h:4960
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5006
Removal copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:4914
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:4941
Removal()
Default constructor
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:4977
Contains a filter that removes points with low signal-to-noise ratio (SNR)
Definition: Settings.h:4611
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5236
std::string toString() const
Get the value as string
Removal & removal()
Get Removal
Definition: Settings.h:5172
Noise()
Default constructor
Noise(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:5080
Noise & set(const Removal::Threshold &value)
Set Removal::Threshold
Definition: Settings.h:5192
Noise copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:5145
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5243
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:5223
std::tuple< Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold > Descendants
Definition: Settings.h:5051
Noise & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:5185
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:5109
bool operator!=(const Noise &other) const
Inequality operator
friend std::ostream & operator<<(std::ostream &stream, const Noise &value)
Operator to send the value as string to a stream
Definition: Settings.h:5258
const Removal & removal() const
Get Removal
Definition: Settings.h:5166
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:5213
bool operator==(const Noise &other) const
Equality operator
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:5203
Noise & set(const Removal &value)
Set Removal
Definition: Settings.h:5178
Enable or disable the outlier filter
Definition: Settings.h:5313
bool ValueType
The type of the underlying value
Definition: Settings.h:5330
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:5370
bool value() const
Get the value
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:5344
static const Enabled no
Off/disabled.
Definition: Settings.h:5332
bool hasValue() const
Check if the value is set
std::string toString() const
Get the value as string
static const Enabled yes
On/enabled.
Definition: Settings.h:5331
void reset()
Reset the node to unset state
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:5376
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:5335
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:5364
Enabled()=default
Default constructor
Discard point if Euclidean distance to neighboring points is above the given value
Definition: Settings.h:5391
static constexpr Range< double > validRange()
The range of valid values for Threshold
Definition: Settings.h:5411
bool hasValue() const
Check if the value is set
double value() const
Get the value
constexpr Threshold(double value)
Constructor
Definition: Settings.h:5420
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:5452
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:5440
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:5446
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream
Definition: Settings.h:5464
void reset()
Reset the node to unset state
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:5458
std::string toString() const
Get the value as string
double ValueType
The type of the underlying value
Definition: Settings.h:5408
Threshold()=default
Default constructor
Discard point if Euclidean distance to neighboring points is above a threshold
Definition: Settings.h:5295
bool operator!=(const Removal &other) const
Inequality operator
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:5696
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:5601
Removal copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:5580
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:5613
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:5607
Removal & set(const Threshold &value)
Set Threshold
Definition: Settings.h:5632
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:5643
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:5517
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:5653
std::tuple< Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition: Settings.h:5489
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:5620
Threshold & threshold()
Get Threshold
Definition: Settings.h:5626
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: Settings.h:5672
Removal()
Default constructor
bool operator==(const Removal &other) const
Equality operator
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:5545
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5680
Contains a filter that removes points with large Euclidean distance to neighboring points
Definition: Settings.h:5277
const Removal & removal() const
Get Removal
Definition: Settings.h:5832
Outlier(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:5746
Outlier & set(const Removal &value)
Set Removal
Definition: Settings.h:5844
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5909
Outlier()
Default constructor
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: Settings.h:5902
bool operator!=(const Outlier &other) const
Inequality operator
Outlier & set(const Removal::Threshold &value)
Set Removal::Threshold
Definition: Settings.h:5858
Outlier & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:5851
Removal & removal()
Get Removal
Definition: Settings.h:5838
Outlier copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:5811
friend std::ostream & operator<<(std::ostream &stream, const Outlier &value)
Operator to send the value as string to a stream
Definition: Settings.h:5924
bool operator==(const Outlier &other) const
Equality operator
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:5889
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:5869
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:5879
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:5775
std::tuple< Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition: Settings.h:5717
Enable or disable the reflection filter. Note that this filter is computationally intensive and may a...
Definition: Settings.h:5979
bool ValueType
The type of the underlying value
Definition: Settings.h:5996
bool hasValue() const
Check if the value is set
void reset()
Reset the node to unset state
static const Enabled yes
On/enabled.
Definition: Settings.h:5997
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:6036
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:6010
std::string toString() const
Get the value as string
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:6042
bool value() const
Get the value
static const Enabled no
Off/disabled.
Definition: Settings.h:5998
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:6030
Enabled()=default
Default constructor
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:6001
The reflection filter has two modes: Local and Global. Local mode preserves more 3D data on thinner o...
Definition: Settings.h:6082
std::string toString() const
Get the value as string
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream
Definition: Settings.h:6164
static const Mode global
global
Definition: Settings.h:6113
constexpr Mode(ValueType value)
Constructor
Definition: Settings.h:6126
void reset()
Reset the node to unset state
bool operator==(const Mode &other) const
Comparison operator
Definition: Settings.h:6152
ValueType value() const
Get the value
bool operator!=(const Mode &other) const
Comparison operator
Definition: Settings.h:6158
ValueType
The type of the underlying value
Definition: Settings.h:6109
static const Mode local
local
Definition: Settings.h:6114
bool hasValue() const
Check if the value is set
Mode()=default
Default constructor
static std::set< ValueType > validValues()
All valid values of Mode
Definition: Settings.h:6117
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream
Definition: Settings.h:6146
Experimental reflection filter related settings
Definition: Settings.h:6057
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:6217
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6344
bool operator!=(const Experimental &other) const
Inequality operator
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6337
Experimental copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:6278
std::tuple< Settings::Processing::Filters::Reflection::Removal::Experimental::Mode > Descendants
Definition: Settings.h:6190
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream
Definition: Settings.h:6359
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:6324
bool operator==(const Experimental &other) const
Equality operator
Mode & mode()
Get Mode
Definition: Settings.h:6305
const Mode & mode() const
Get Mode
Definition: Settings.h:6299
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:6244
Experimental()
Default constructor
Experimental & set(const Mode &value)
Set Mode
Definition: Settings.h:6311
std::string toString() const
Get the value as string
Discard points likely introduced by reflections (useful for shiny materials)
Definition: Settings.h:5961
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:6513
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:6500
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:6610
std::string toString() const
Get the value as string
bool operator==(const Removal &other) const
Equality operator
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:6543
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:6437
std::tuple< Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode > Descendants
Definition: Settings.h:6379
Removal()
Default constructor
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6586
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:6566
Removal copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:6473
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:6408
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:6506
Removal & set(const Experimental &value)
Set Experimental
Definition: Settings.h:6525
Experimental & experimental()
Get Experimental
Definition: Settings.h:6519
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6594
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:6494
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:6554
bool operator!=(const Removal &other) const
Inequality operator
Removal & set(const Experimental::Mode &value)
Set Experimental::Mode
Definition: Settings.h:6532
Contains a filter that removes points likely introduced by reflections (useful for shiny materials)
Definition: Settings.h:5943
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:6825
Reflection & set(const Removal::Experimental &value)
Set Removal::Experimental
Definition: Settings.h:6776
bool operator!=(const Reflection &other) const
Inequality operator
bool operator==(const Reflection &other) const
Equality operator
std::tuple< Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode > Descendants
Definition: Settings.h:6632
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:6814
Removal & removal()
Get Removal
Definition: Settings.h:6756
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:6692
friend std::ostream & operator<<(std::ostream &stream, const Reflection &value)
Operator to send the value as string to a stream
Definition: Settings.h:6860
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6845
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6838
Reflection & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:6769
Reflection()
Default constructor
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:6804
Reflection(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:6662
std::string toString() const
Get the value as string
Reflection & set(const Removal::Experimental::Mode &value)
Set Removal::Experimental::Mode
Definition: Settings.h:6783
const Removal & removal() const
Get Removal
Definition: Settings.h:6750
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:6794
Reflection & set(const Removal &value)
Set Removal
Definition: Settings.h:6762
Reflection copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:6729
Enable or disable the smoothing filter
Definition: Settings.h:6913
bool ValueType
The type of the underlying value
Definition: Settings.h:6930
void reset()
Reset the node to unset state
Enabled()=default
Default constructor
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:6935
bool value() const
Get the value
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:6970
static const Enabled yes
On/enabled.
Definition: Settings.h:6931
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:6964
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:6976
static const Enabled no
Off/disabled.
Definition: Settings.h:6932
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:6944
bool hasValue() const
Check if the value is set
std::string toString() const
Get the value as string
Higher values result in smoother point clouds (Standard deviation of the filter coefficients)
Definition: Settings.h:6991
Sigma()=default
Default constructor
double ValueType
The type of the underlying value
Definition: Settings.h:7008
bool operator!=(const Sigma &other) const
Comparison operator
Definition: Settings.h:7046
bool operator>(const Sigma &other) const
Comparison operator
Definition: Settings.h:7058
double value() const
Get the value
bool hasValue() const
Check if the value is set
constexpr Sigma(double value)
Constructor
Definition: Settings.h:7020
static constexpr Range< double > validRange()
The range of valid values for Sigma
Definition: Settings.h:7011
friend std::ostream & operator<<(std::ostream &stream, const Sigma &value)
Operator to serialize the value to a stream
Definition: Settings.h:7064
void reset()
Reset the node to unset state
bool operator==(const Sigma &other) const
Comparison operator
Definition: Settings.h:7040
std::string toString() const
Get the value as string
bool operator<(const Sigma &other) const
Comparison operator
Definition: Settings.h:7052
Gaussian smoothing of the point cloud
Definition: Settings.h:6895
Gaussian(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:7117
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:7207
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:7272
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:7253
Gaussian & set(const Enabled &value)
Set Enabled
Definition: Settings.h:7213
friend std::ostream & operator<<(std::ostream &stream, const Gaussian &value)
Operator to send the value as string to a stream
Definition: Settings.h:7296
const Sigma & sigma() const
Get Sigma
Definition: Settings.h:7220
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:7089
bool operator==(const Gaussian &other) const
Equality operator
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:7201
bool operator!=(const Gaussian &other) const
Inequality operator
Gaussian()
Default constructor
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:7243
Gaussian copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:7180
Gaussian & set(const Sigma &value)
Set Sigma
Definition: Settings.h:7232
Sigma & sigma()
Get Sigma
Definition: Settings.h:7226
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:7145
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:7280
Smoothing filters
Definition: Settings.h:6879
Smoothing copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:7411
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:7375
Smoothing & set(const Gaussian &value)
Set Gaussian
Definition: Settings.h:7444
Smoothing()
Default constructor
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:7317
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:7479
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:7509
Smoothing & set(const Gaussian::Sigma &value)
Set Gaussian::Sigma
Definition: Settings.h:7458
Smoothing & set(const Gaussian::Enabled &value)
Set Gaussian::Enabled
Definition: Settings.h:7451
bool operator!=(const Smoothing &other) const
Inequality operator
const Gaussian & gaussian() const
Get Gaussian
Definition: Settings.h:7432
Smoothing(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:7346
std::string toString() const
Get the value as string
bool operator==(const Smoothing &other) const
Equality operator
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:7469
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:7502
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:7489
friend std::ostream & operator<<(std::ostream &stream, const Smoothing &value)
Operator to send the value as string to a stream
Definition: Settings.h:7524
Gaussian & gaussian()
Get Gaussian
Definition: Settings.h:7438
Filters
Definition: Settings.h:3013
bool operator!=(const Filters &other) const
Inequality operator
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:8129
Filters & set(const Reflection::Removal::Enabled &value)
Set Reflection::Removal::Enabled
Definition: Settings.h:7920
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:8285
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:8139
std::tuple< Settings::Processing::Filters::Experimental, Settings::Processing::Filters::Experimental::ContrastDistortion, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold, Settings::Processing::Filters::Noise, Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Outlier, Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold, Settings::Processing::Filters::Reflection, Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:7566
Filters copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:7725
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:8071
std::string toString() const
Get the value as string
Filters & set(const Reflection::Removal::Experimental &value)
Set Reflection::Removal::Experimental
Definition: Settings.h:7927
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:8100
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:8188
const Settings::Processing::Filters::Smoothing & get() const
Definition: Settings.h:8207
Filters & set(const Reflection::Removal::Experimental::Mode &value)
Set Reflection::Removal::Experimental::Mode
Definition: Settings.h:7934
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:8168
const Settings::Processing::Filters::Reflection & get() const
Definition: Settings.h:8158
Filters & set(const Outlier::Removal::Threshold &value)
Set Outlier::Removal::Threshold
Definition: Settings.h:7887
Filters & set(const Experimental::ContrastDistortion::Correction::Strength &value)
Set Experimental::ContrastDistortion::Correction::Strength
Definition: Settings.h:7786
Filters & set(const Experimental &value)
Set Experimental
Definition: Settings.h:7758
Outlier & outlier()
Get Outlier
Definition: Settings.h:7860
Filters & set(const Outlier::Removal &value)
Set Outlier::Removal
Definition: Settings.h:7873
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:7746
Filters & set(const Experimental::ContrastDistortion &value)
Set Experimental::ContrastDistortion
Definition: Settings.h:7765
Filters()
Default constructor
friend std::ostream & operator<<(std::ostream &stream, const Filters &value)
Operator to send the value as string to a stream
Definition: Settings.h:8304
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:8178
const Settings::Processing::Filters::Outlier & get() const
Definition: Settings.h:8119
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:7994
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:8237
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:7668
const Reflection & reflection() const
Get Reflection
Definition: Settings.h:7894
const Settings::Processing::Filters::Experimental & get() const
Definition: Settings.h:7984
Filters & set(const Noise::Removal::Threshold &value)
Set Noise::Removal::Threshold
Definition: Settings.h:7847
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:8227
Filters & set(const Reflection &value)
Set Reflection
Definition: Settings.h:7906
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:8033
Filters & set(const Experimental::ContrastDistortion::Removal &value)
Set Experimental::ContrastDistortion::Removal
Definition: Settings.h:7793
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:8274
Filters & set(const Outlier &value)
Set Outlier
Definition: Settings.h:7866
const Noise & noise() const
Get Noise
Definition: Settings.h:7814
Filters & set(const Experimental::ContrastDistortion::Correction &value)
Set Experimental::ContrastDistortion::Correction
Definition: Settings.h:7772
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:8019
Filters & set(const Reflection::Removal &value)
Set Reflection::Removal
Definition: Settings.h:7913
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:8090
Filters & set(const Noise::Removal::Enabled &value)
Set Noise::Removal::Enabled
Definition: Settings.h:7840
Filters & set(const Smoothing::Gaussian::Enabled &value)
Set Smoothing::Gaussian::Enabled
Definition: Settings.h:7967
const Settings::Processing::Filters::Noise & get() const
Definition: Settings.h:8081
Filters & set(const Experimental::ContrastDistortion::Removal::Threshold &value)
Set Experimental::ContrastDistortion::Removal::Threshold
Definition: Settings.h:7807
Filters & set(const Smoothing::Gaussian &value)
Set Smoothing::Gaussian
Definition: Settings.h:7960
bool operator==(const Filters &other) const
Equality operator
Filters & set(const Outlier::Removal::Enabled &value)
Set Outlier::Removal::Enabled
Definition: Settings.h:7880
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:8058
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:8198
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:8045
Filters(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:7617
Noise & noise()
Get Noise
Definition: Settings.h:7820
Filters & set(const Smoothing &value)
Set Smoothing
Definition: Settings.h:7953
Filters & set(const Experimental::ContrastDistortion::Correction::Enabled &value)
Set Experimental::ContrastDistortion::Correction::Enabled
Definition: Settings.h:7779
Filters & set(const Noise::Removal &value)
Set Noise::Removal
Definition: Settings.h:7833
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:8149
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:8110
Smoothing & smoothing()
Get Smoothing
Definition: Settings.h:7947
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:8217
Filters & set(const Experimental::ContrastDistortion::Removal::Enabled &value)
Set Experimental::ContrastDistortion::Removal::Enabled
Definition: Settings.h:7800
const Outlier & outlier() const
Get Outlier
Definition: Settings.h:7854
Reflection & reflection()
Get Reflection
Definition: Settings.h:7900
Filters & set(const Noise &value)
Set Noise
Definition: Settings.h:7826
Filters & set(const Smoothing::Gaussian::Sigma &value)
Set Smoothing::Gaussian::Sigma
Definition: Settings.h:7974
const Smoothing & smoothing() const
Get Smoothing
Definition: Settings.h:7941
Experimental & experimental()
Get Experimental
Definition: Settings.h:7752
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:8005
Settings related to processing of a capture, including filters and color balance
Definition: Settings.h:1609
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:8881
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:8962
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:9129
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:9090
Processing & set(const Color::Experimental &value)
Set Color::Experimental
Definition: Settings.h:8611
Processing & set(const Color &value)
Set Color
Definition: Settings.h:8576
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:8863
Processing & set(const Color::Balance &value)
Set Color::Balance
Definition: Settings.h:8583
Processing & set(const Filters::Smoothing::Gaussian &value)
Set Filters::Smoothing::Gaussian
Definition: Settings.h:8805
Processing copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:8544
Filters & filters()
Get Filters
Definition: Settings.h:8638
Processing & set(const Filters::Smoothing::Gaussian::Enabled &value)
Set Filters::Smoothing::Gaussian::Enabled
Definition: Settings.h:8812
const Settings::Processing::Color::Gamma & get() const
Definition: Settings.h:8889
Processing & set(const Filters::Experimental::ContrastDistortion::Removal &value)
Set Filters::Experimental::ContrastDistortion::Removal
Definition: Settings.h:8686
Processing()
Default constructor
const Settings::Processing::Filters::Smoothing & get() const
Definition: Settings.h:9119
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Filters::Experimental::ContrastDistortion::Removal::Threshold
Definition: Settings.h:8700
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:8854
Processing & set(const Filters::Outlier::Removal &value)
Set Filters::Outlier::Removal
Definition: Settings.h:8742
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Removal::Enabled
Definition: Settings.h:8693
friend std::ostream & operator<<(std::ostream &stream, const Processing &value)
Operator to send the value as string to a stream
Definition: Settings.h:9192
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:8973
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:9080
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:9024
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:9149
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:9014
Processing & set(const Color::Balance::Blue &value)
Set Color::Balance::Blue
Definition: Settings.h:8590
Color & color()
Get Color
Definition: Settings.h:8570
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:9100
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:9139
Processing & set(const Filters::Reflection &value)
Set Filters::Reflection
Definition: Settings.h:8763
Processing & set(const Filters::Noise &value)
Set Filters::Noise
Definition: Settings.h:8707
const Settings::Processing::Filters::Outlier & get() const
Definition: Settings.h:9032
const Settings::Processing::Filters & get() const
Definition: Settings.h:8897
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Filters::Experimental::ContrastDistortion::Correction::Strength
Definition: Settings.h:8679
Processing & set(const Filters::Noise::Removal::Enabled &value)
Set Filters::Noise::Removal::Enabled
Definition: Settings.h:8721
Processing & set(const Filters::Smoothing &value)
Set Filters::Smoothing
Definition: Settings.h:8798
const Settings::Processing::Color::Balance & get() const
Definition: Settings.h:8836
const Filters & filters() const
Get Filters
Definition: Settings.h:8632
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:9176
Processing & set(const Filters::Smoothing::Gaussian::Sigma &value)
Set Filters::Smoothing::Gaussian::Sigma
Definition: Settings.h:8819
Processing & set(const Filters::Noise::Removal &value)
Set Filters::Noise::Removal
Definition: Settings.h:8714
Processing & set(const Filters::Reflection::Removal::Experimental &value)
Set Filters::Reflection::Removal::Experimental
Definition: Settings.h:8784
Processing & set(const Filters::Outlier::Removal::Enabled &value)
Set Filters::Outlier::Removal::Enabled
Definition: Settings.h:8749
Processing & set(const Filters::Noise::Removal::Threshold &value)
Set Filters::Noise::Removal::Threshold
Definition: Settings.h:8728
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:8845
Processing & set(const Filters::Experimental &value)
Set Filters::Experimental
Definition: Settings.h:8651
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:9004
Processing & set(const Filters::Outlier::Removal::Threshold &value)
Set Filters::Outlier::Removal::Threshold
Definition: Settings.h:8756
Processing & set(const Color::Balance::Green &value)
Set Color::Balance::Green
Definition: Settings.h:8597
const Settings::Processing::Color::Experimental & get() const
Definition: Settings.h:8872
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:8951
Processing & set(const Filters::Outlier &value)
Set Filters::Outlier
Definition: Settings.h:8735
std::tuple< Settings::Processing::Color, Settings::Processing::Color::Balance, Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red, Settings::Processing::Color::Experimental, Settings::Processing::Color::Experimental::Mode, Settings::Processing::Color::Gamma, Settings::Processing::Filters, Settings::Processing::Filters::Experimental, Settings::Processing::Filters::Experimental::ContrastDistortion, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold, Settings::Processing::Filters::Noise, Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Outlier, Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold, Settings::Processing::Filters::Reflection, Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:8359
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:8938
Processing & set(const Color::Experimental::Mode &value)
Set Color::Experimental::Mode
Definition: Settings.h:8618
Processing & set(const Filters::Reflection::Removal::Enabled &value)
Set Filters::Reflection::Removal::Enabled
Definition: Settings.h:8777
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Correction::Enabled
Definition: Settings.h:8672
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:9061
Processing & set(const Filters::Reflection::Removal::Experimental::Mode &value)
Set Filters::Reflection::Removal::Experimental::Mode
Definition: Settings.h:8791
Processing & set(const Filters::Reflection::Removal &value)
Set Filters::Reflection::Removal
Definition: Settings.h:8770
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:9110
Processing(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:8419
Processing & set(const Filters::Experimental::ContrastDistortion::Correction &value)
Set Filters::Experimental::ContrastDistortion::Correction
Definition: Settings.h:8665
const Settings::Processing::Color & get() const
Definition: Settings.h:8828
bool operator==(const Processing &other) const
Equality operator
const Color & color() const
Get Color
Definition: Settings.h:8564
Processing & set(const Filters::Experimental::ContrastDistortion &value)
Set Filters::Experimental::ContrastDistortion
Definition: Settings.h:8658
const Settings::Processing::Filters::Reflection & get() const
Definition: Settings.h:9070
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:9051
Processing & set(const Filters &value)
Set Filters
Definition: Settings.h:8644
Processing & set(const Color::Balance::Red &value)
Set Color::Balance::Red
Definition: Settings.h:8604
const Settings::Processing::Filters::Noise & get() const
Definition: Settings.h:8995
bool operator!=(const Processing &other) const
Inequality operator
const Settings::Processing::Filters::Experimental & get() const
Definition: Settings.h:8906
Processing & set(const Color::Gamma &value)
Set Color::Gamma
Definition: Settings.h:8625
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:8479
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:8986
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:8926
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:8916
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:9168
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:9041
Settings used when capturing with a Zivid camera
Definition: Settings.h:121
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:10059
Settings(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:9318
const Settings::Processing::Filters::Outlier & get() const
Definition: Settings.h:10040
const Settings::Processing::Color::Balance & get() const
Definition: Settings.h:9852
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled
Definition: Settings.h:9669
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:9519
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:9876
Settings & set(const Processing::Color::Experimental::Mode &value)
Set Processing::Color::Experimental::Mode
Definition: Settings.h:9606
Settings & set(const Processing::Filters::Smoothing &value)
Set Processing::Filters::Smoothing
Definition: Settings.h:9774
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:10012
Settings copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:9455
const Processing & processing() const
Get Processing
Definition: Settings.h:9545
const Settings::Experimental & get() const
Definition: Settings.h:9822
const Settings::Processing::Color::Gamma & get() const
Definition: Settings.h:9901
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:9971
Settings & set(const Processing &value)
Set Processing
Definition: Settings.h:9557
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:9994
Settings & set(const Processing::Filters::Outlier::Removal::Enabled &value)
Set Processing::Filters::Outlier::Removal::Enabled
Definition: Settings.h:9725
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold
Definition: Settings.h:9676
Settings & set(const Experimental::Engine &value)
Set Experimental::Engine
Definition: Settings.h:9538
Settings & set(const Processing::Filters::Smoothing::Gaussian &value)
Set Processing::Filters::Smoothing::Gaussian
Definition: Settings.h:9781
Settings & set(const Diagnostics &value)
Set Diagnostics
Definition: Settings.h:9505
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:9982
Settings & set(const Processing::Filters::Noise &value)
Set Processing::Filters::Noise
Definition: Settings.h:9683
void load(const std::string &fileName)
Load from the given file
const Settings::Acquisitions & get() const
Definition: Settings.h:9802
const Settings::Processing::Filters::Experimental & get() const
Definition: Settings.h:9917
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:10049
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:10153
Settings & set(const Processing::Filters::Reflection::Removal::Experimental &value)
Set Processing::Filters::Reflection::Removal::Experimental
Definition: Settings.h:9760
const Settings::Diagnostics & get() const
Definition: Settings.h:9808
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:10143
Settings & set(const Processing::Color::Balance &value)
Set Processing::Color::Balance
Definition: Settings.h:9571
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:10022
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:9937
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:10184
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:9868
Settings & set(const Processing::Filters::Smoothing::Gaussian::Enabled &value)
Set Processing::Filters::Smoothing::Gaussian::Enabled
Definition: Settings.h:9788
const Settings::Processing & get() const
Definition: Settings.h:9836
Settings & set(const Processing::Filters::Reflection &value)
Set Processing::Filters::Reflection
Definition: Settings.h:9739
const Settings::Experimental::Engine & get() const
Definition: Settings.h:9830
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:10194
Settings()
Default constructor
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:9927
Settings & set(const Processing::Filters::Outlier::Removal::Threshold &value)
Set Processing::Filters::Outlier::Removal::Threshold
Definition: Settings.h:9732
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:9893
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Strength
Definition: Settings.h:9655
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:9960
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:9860
const Acquisitions & acquisitions() const
Get Acquisitions
Definition: Settings.h:9474
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:9384
const Settings::Processing::Filters::Reflection & get() const
Definition: Settings.h:10077
Settings & set(const Processing::Filters::Experimental &value)
Set Processing::Filters::Experimental
Definition: Settings.h:9627
const Settings::Processing::Filters::Smoothing & get() const
Definition: Settings.h:10124
const Settings::Processing::Filters & get() const
Definition: Settings.h:9909
Settings & set(const Processing::Color::Experimental &value)
Set Processing::Color::Experimental
Definition: Settings.h:9599
void save(const std::string &fileName) const
Save to the given file
const Settings::Processing::Color::Experimental & get() const
Definition: Settings.h:9884
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal
Definition: Settings.h:9662
Settings & set(const Processing::Color &value)
Set Processing::Color
Definition: Settings.h:9564
Experimental & experimental()
Get Experimental
Definition: Settings.h:9525
Settings & set(const Processing::Filters::Outlier &value)
Set Processing::Filters::Outlier
Definition: Settings.h:9711
bool operator==(const Settings &other) const
Equality operator
Acquisitions & acquisitions()
Get Acquisitions
Definition: Settings.h:9480
Settings & set(const Processing::Filters::Reflection::Removal &value)
Set Processing::Filters::Reflection::Removal
Definition: Settings.h:9746
Settings(const std::string &fileName)
Construct Settings by loading from file
Settings & set(const Processing::Color::Balance::Red &value)
Set Processing::Color::Balance::Red
Definition: Settings.h:9592
Diagnostics & diagnostics()
Get Diagnostics
Definition: Settings.h:9499
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:10032
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:10106
Settings & set(const Processing::Filters::Reflection::Removal::Enabled &value)
Set Processing::Filters::Reflection::Removal::Enabled
Definition: Settings.h:9753
Processing & processing()
Get Processing
Definition: Settings.h:9551
Settings & set(const Diagnostics::Enabled &value)
Set Diagnostics::Enabled
Definition: Settings.h:9512
const Settings::Processing::Filters::Noise & get() const
Definition: Settings.h:10003
const Settings::Diagnostics::Enabled & get() const
Definition: Settings.h:9816
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:9948
Settings & set(const Processing::Filters::Experimental::ContrastDistortion &value)
Set Processing::Filters::Experimental::ContrastDistortion
Definition: Settings.h:9634
Settings & set(const Processing::Color::Gamma &value)
Set Processing::Color::Gamma
Definition: Settings.h:9613
Settings & set(const Processing::Filters::Noise::Removal::Threshold &value)
Set Processing::Filters::Noise::Removal::Threshold
Definition: Settings.h:9704
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled
Definition: Settings.h:9648
Settings & set(const Processing::Filters::Reflection::Removal::Experimental::Mode &value)
Set Processing::Filters::Reflection::Removal::Experimental::Mode
Definition: Settings.h:9767
Settings & set(const Acquisitions &value)
Set Acquisitions
Definition: Settings.h:9486
Settings & set(const Processing::Filters::Smoothing::Gaussian::Sigma &value)
Set Processing::Filters::Smoothing::Gaussian::Sigma
Definition: Settings.h:9795
const Diagnostics & diagnostics() const
Get Diagnostics
Definition: Settings.h:9493
bool operator!=(const Settings &other) const
Inequality operator
Settings & set(const Processing::Filters::Noise::Removal &value)
Set Processing::Filters::Noise::Removal
Definition: Settings.h:9690
Settings & set(const Processing::Filters::Outlier::Removal &value)
Set Processing::Filters::Outlier::Removal
Definition: Settings.h:9718
Settings & set(const Processing::Filters::Noise::Removal::Enabled &value)
Set Processing::Filters::Noise::Removal::Enabled
Definition: Settings.h:9697
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction
Definition: Settings.h:9641
const Settings::Processing::Color & get() const
Definition: Settings.h:9844
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:10096
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:10086
Settings & set(const Processing::Color::Balance::Green &value)
Set Processing::Color::Balance::Green
Definition: Settings.h:9585
Settings & set(const Processing::Filters &value)
Set Processing::Filters
Definition: Settings.h:9620
Settings & set(const Experimental &value)
Set Experimental
Definition: Settings.h:9531
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:10069
std::tuple< Settings::Acquisitions, Settings::Diagnostics, Settings::Diagnostics::Enabled, Settings::Experimental, Settings::Experimental::Engine, Settings::Processing, Settings::Processing::Color, Settings::Processing::Color::Balance, Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red, Settings::Processing::Color::Experimental, Settings::Processing::Color::Experimental::Mode, Settings::Processing::Color::Gamma, Settings::Processing::Filters, Settings::Processing::Filters::Experimental, Settings::Processing::Filters::Experimental::ContrastDistortion, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold, Settings::Processing::Filters::Noise, Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Outlier, Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold, Settings::Processing::Filters::Reflection, Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:9250
Settings & set(const Processing::Color::Balance::Blue &value)
Set Processing::Color::Balance::Blue
Definition: Settings.h:9578
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:10133
friend std::ostream & operator<<(std::ostream &stream, const Settings &value)
Operator to send the value as string to a stream
Definition: Settings.h:10212
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:10116
NodeType
Definition: NodeType.h:100
Ret validRange(const CameraInfo &cameraInfo)
Definition: SettingsInfo.h:206
The main Zivid namespace. All Zivid code is found here
Definition: Application.h:99