71# pragma warning(disable : 4251)
87 static constexpr const char *path{
"" };
90 static constexpr const char *name{
"Settings" };
93 static constexpr const char *description{
94 R
"description(Settings used when capturing a 3D capture or 2D+3D capture with a Zivid camera.)description"
97 static constexpr size_t version{ 27 };
107 static constexpr std::array<uint8_t, 3> binaryId{
's',
'e',
't' };
121 static constexpr const char *path{
"Acquisition" };
124 static constexpr const char *name{
"Acquisition" };
127 static constexpr const char *description{ R
"description(Settings for a single acquisition.)description" };
141 static constexpr const char *path{
"Acquisition/Aperture" };
144 static constexpr const char *name{
"Aperture" };
147 static constexpr const char *description{
148 R
"description(Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to
149the effective aperture diameter).
159 return { 1.4, 32.0 };
167 : m_opt{ verifyValue(value) }
188 return m_opt == other.m_opt;
194 return m_opt != other.m_opt;
200 return m_opt < other.m_opt;
206 return m_opt > other.m_opt;
212 return m_opt <= other.m_opt;
218 return m_opt >= other.m_opt;
228 void setFromString(
const std::string &value);
230 constexpr ValueType
static verifyValue(
const ValueType &value)
232 return validRange().isInRange(value)
234 :
throw std::out_of_range{
"Aperture{ " + std::to_string(value) +
" } is not in range ["
235 + std::to_string(validRange().min()) +
", "
236 + std::to_string(validRange().max()) +
"]" };
239 std::optional<double> m_opt;
241 friend struct DataModel::Detail::Befriend<
Aperture>;
264 static constexpr const char *path{
"Acquisition/Brightness" };
267 static constexpr const char *name{
"Brightness" };
270 static constexpr const char *description{
271 R
"description(Brightness controls the light output from the projector.
273Brightness above 1.0 may be needed when the distance between the camera and the scene is large,
274or in case of high levels of ambient lighting.
276When brightness is above 1.0 the duty cycle of the camera (the percentage of time the camera
277can capture) will be reduced. The duty cycle in boost mode is 50%. The duty cycle is calculated
278over a 10 second period. This limitation is enforced automatically by the camera. Calling capture
279when the duty cycle limit has been reached will cause the camera to first wait (sleep) for a
280duration of time to cool down, before capture will start.
298 : m_opt{ verifyValue(value) }
319 return m_opt == other.m_opt;
325 return m_opt != other.m_opt;
331 return m_opt < other.m_opt;
337 return m_opt > other.m_opt;
343 return m_opt <= other.m_opt;
349 return m_opt >= other.m_opt;
359 void setFromString(
const std::string &value);
361 constexpr ValueType
static verifyValue(
const ValueType &value)
363 return validRange().isInRange(value)
365 :
throw std::out_of_range{
"Brightness{ " + std::to_string(value)
366 +
" } is not in range [" + std::to_string(validRange().min())
367 +
", " + std::to_string(validRange().max()) +
"]" };
370 std::optional<double> m_opt;
372 friend struct DataModel::Detail::Befriend<
Brightness>;
385 static constexpr const char *path{
"Acquisition/ExposureTime" };
388 static constexpr const char *name{
"ExposureTime" };
391 static constexpr const char *description{
392 R
"description(Exposure time for each single image in the measurement. Affects frame rate.)description"
401 return { std::chrono::microseconds{ 900 }, std::chrono::microseconds{ 100000 } };
409 : m_opt{ verifyValue(value) }
416 std::chrono::microseconds
value()
const;
430 return m_opt == other.m_opt;
436 return m_opt != other.m_opt;
442 return m_opt < other.m_opt;
448 return m_opt > other.m_opt;
454 return m_opt <= other.m_opt;
460 return m_opt >= other.m_opt;
470 void setFromString(
const std::string &value);
472 constexpr ValueType
static verifyValue(
const ValueType &value)
474 return validRange().isInRange(value)
476 :
throw std::out_of_range{
"ExposureTime{ " + std::to_string(value.count())
477 +
" } is not in range ["
478 + std::to_string(validRange().min().count()) +
", "
479 + std::to_string(validRange().max().count()) +
"]" };
482 std::optional<std::chrono::microseconds> m_opt;
484 friend struct DataModel::Detail::Befriend<
ExposureTime>;
497 static constexpr const char *path{
"Acquisition/Gain" };
500 static constexpr const char *name{
"Gain" };
503 static constexpr const char *description{ R
"description(Analog gain in the camera.)description" };
518 explicit constexpr Gain(
double value)
519 : m_opt{ verifyValue(value) }
540 return m_opt == other.m_opt;
546 return m_opt != other.m_opt;
552 return m_opt < other.m_opt;
558 return m_opt > other.m_opt;
564 return m_opt <= other.m_opt;
570 return m_opt >= other.m_opt;
580 void setFromString(
const std::string &value);
582 constexpr ValueType
static verifyValue(
const ValueType &value)
584 return validRange().isInRange(value)
586 :
throw std::out_of_range{
"Gain{ " + std::to_string(value) +
" } is not in range ["
587 + std::to_string(validRange().min()) +
", "
588 + std::to_string(validRange().max()) +
"]" };
591 std::optional<double> m_opt;
593 friend struct DataModel::Detail::Befriend<
Gain>;
622 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
623 typename std::enable_if<
624 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
628 template<typename... Args>
632 using namespace Zivid::Detail::TypeTraits;
635 AllArgsDecayedAreUnique<Args...>::value,
636 "Found duplicate types among the arguments passed to Acquisition(...). "
637 "Types should be listed at most once.");
639 set(std::forward<Args>(args)...);
656 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
658 template<typename... Args>
662 using namespace Zivid::Detail::TypeTraits;
664 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
666 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
669 AllArgsDecayedAreUnique<Args...>::value,
670 "Found duplicate types among the arguments passed to set(...). "
671 "Types should be listed at most once.");
673 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
691 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
693 template<typename... Args>
697 using namespace Zivid::Detail::TypeTraits;
699 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
701 AllArgsAreDescendantNodes::value,
702 "All arguments passed to copyWith(...) must be descendant nodes.");
705 AllArgsDecayedAreUnique<Args...>::value,
706 "Found duplicate types among the arguments passed to copyWith(...). "
707 "Types should be listed at most once.");
710 copy.set(std::forward<Args>(args)...);
748 m_brightness = value;
755 return m_exposureTime;
761 return m_exposureTime;
767 m_exposureTime = value;
792 typename std::enable_if<std::is_same<T, Settings::Acquisition::Aperture>::value,
int>::type = 0>
800 typename std::enable_if<std::is_same<T, Settings::Acquisition::Brightness>::value,
int>::type = 0>
808 typename std::enable_if<std::is_same<T, Settings::Acquisition::ExposureTime>::value,
int>::type = 0>
811 return m_exposureTime;
816 typename std::enable_if<std::is_same<T, Settings::Acquisition::Gain>::value,
int>::type = 0>
822 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
828 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
834 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
837 return m_exposureTime;
840 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
882 void setFromString(
const std::string &value);
884 void setFromString(
const std::string &fullPath,
const std::string &value);
886 std::string getString(
const std::string &fullPath)
const;
889 Brightness m_brightness;
890 ExposureTime m_exposureTime;
893 friend struct DataModel::Detail::Befriend<
Acquisition>;
906 static constexpr const char *path{
"Acquisitions" };
909 static constexpr const char *name{
"Acquisitions" };
912 static constexpr const char *description{ R
"description(List of Acquisition objects.)description" };
920 return { 0, std::numeric_limits<ValueType::size_type>::max() };
928 : m_value{ std::move(value) }
932 explicit Acquisitions(std::initializer_list<Settings::Acquisition> value)
937 const std::vector<Settings::Acquisition> &
value()
const;
943 std::size_t
size() const noexcept;
946 bool isEmpty() const noexcept;
953 template<typename... Args>
954 void emplaceBack(Args &&...args)
956 m_value.emplace_back(std::forward<Args>(args)...);
991 for(
auto &child : m_value)
1001 for(
const auto &child : m_value)
1008 using Iterator = std::vector<Settings::Acquisition>::iterator;
1034 return m_value == other.m_value;
1040 return m_value != other.m_value;
1050 void setFromString(
const std::string &value);
1052 std::vector<Settings::Acquisition> m_value{};
1054 friend struct DataModel::Detail::Befriend<
Acquisitions>;
1087 static constexpr const char *path{
"Color" };
1090 static constexpr const char *name{
"Color" };
1093 static constexpr const char *description{
1094 R
"description(Specify the settings used for the 2D color image when doing a 2D+3D capture. The value type of this node
1095is a `Zivid::Settings2D` object.
1097This setting was introduced in SDK 2.14, as the recommended way to define the acquisition and processing
1098settings for the 2D color image when doing 2D+3D captures.
1100When this setting is set, it controls how the 2D color image of the 2D+3D capture is acquired and processed.
1101This setting can be used to specify custom acquisition and processing settings that apply only to the 2D
1102color image. These provided settings does not affect the 3D acquisition or processing.
1104When this setting is not set, then the 2D color image is acquired based on `Settings/Acquisitions` and
1105`Settings/Sampling/Color`, and processed based on `Settings/Processing/Color`. If `Settings/Sampling/Color`
1106is set to `disabled`, then no 2D color image is acquired. This behavior is to be consistent with SDK 2.13
1109In the next SDK major version, SDK 3.0, only this `Color` setting will control the 2D color image settings.
1110The `Settings/Sampling/Color` and `Settings/Processing/Color` settings are deprecated as of 2.14, and will
1111be removed from the API in SDK 3.0. Zivid recommends all users to use `Settings/Color` to define the 2D
1112color image settings. Tip: If you want to convert an existing settings.yml file to use `Settings/Color`,
1113you can import the .yml file into Zivid Studio and then re-export it to .yml.
1125 : m_opt{ std::move(value) }
1152 return m_opt == other.m_opt;
1158 return m_opt != other.m_opt;
1168 void setFromString(
const std::string &value);
1170 std::optional<Zivid::Settings2D> m_opt;
1172 friend struct DataModel::Detail::Befriend<
Color>;
1191 static constexpr const char *path{
"Diagnostics" };
1194 static constexpr const char *name{
"Diagnostics" };
1197 static constexpr const char *description{
1198 R
"description(When Diagnostics is enabled, additional diagnostic data is recorded during capture and included when saving
1199the frame to a .zdf file. This enables Zivid's Customer Success team to provide better assistance and more
1200thorough troubleshooting.
1202Enabling Diagnostics increases the capture time and the RAM usage. It will also increase the size of the
1203.zdf file. It is recommended to enable Diagnostics only when reporting issues to Zivid's support team.
1217 static constexpr const char *path{
"Diagnostics/Enabled" };
1220 static constexpr const char *name{
"Enabled" };
1223 static constexpr const char *description{ R
"description(Enable or disable diagnostics.)description" };
1233 return {
false,
true };
1262 return m_opt == other.m_opt;
1268 return m_opt != other.m_opt;
1278 void setFromString(
const std::string &value);
1280 std::optional<bool> m_opt;
1282 friend struct DataModel::Detail::Befriend<
Enabled>;
1304 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1305 typename std::enable_if<
1306 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1310 template<typename... Args>
1314 using namespace Zivid::Detail::TypeTraits;
1317 AllArgsDecayedAreUnique<Args...>::value,
1318 "Found duplicate types among the arguments passed to Diagnostics(...). "
1319 "Types should be listed at most once.");
1321 set(std::forward<Args>(args)...);
1335 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1337 template<typename... Args>
1341 using namespace Zivid::Detail::TypeTraits;
1343 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1345 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1348 AllArgsDecayedAreUnique<Args...>::value,
1349 "Found duplicate types among the arguments passed to set(...). "
1350 "Types should be listed at most once.");
1352 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1367 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1369 template<typename... Args>
1373 using namespace Zivid::Detail::TypeTraits;
1375 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1377 AllArgsAreDescendantNodes::value,
1378 "All arguments passed to copyWith(...) must be descendant nodes.");
1381 AllArgsDecayedAreUnique<Args...>::value,
1382 "Found duplicate types among the arguments passed to copyWith(...). "
1383 "Types should be listed at most once.");
1386 copy.set(std::forward<Args>(args)...);
1411 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
1417 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1424 template<
typename F>
1431 template<
typename F>
1453 void setFromString(
const std::string &value);
1455 void setFromString(
const std::string &fullPath,
const std::string &value);
1457 std::string getString(
const std::string &fullPath)
const;
1461 friend struct DataModel::Detail::Befriend<
Diagnostics>;
1496 static constexpr const char *path{
"Engine" };
1499 static constexpr const char *name{
"Engine" };
1502 static constexpr const char *description{ R
"description(Set the Zivid Vision Engine to use.
1504The Phase Engine is the fastest choice in terms of both acquisition time and total capture
1505time, and is a good compromise between quality and speed. The Phase Engine is recommended for
1506objects that are diffuse, opaque, and slightly specular, and is suitable for applications in
1507logistics such as parcel induction.
1509The Stripe Engine is built for exceptional point cloud quality in scenes with highly specular
1510reflective objects. This makes the engine suitable for applications such as factory automation,
1511manufacturing, and bin picking. Additional acquisition and processing time are required for
1514The Omni Engine is built for exceptional point cloud quality on all scenes, including scenes
1515with extremely specular reflective objects, as well as transparent objects. This makes the Omni
1516Engine suitable for applications such as piece picking. Same as for the Stripe Engine, it trades
1517off speed for quality. The Omni Engine is only available for Zivid 2+.
1519The Sage engine is built for use cases that require all points to be correct/accurate with
1520particularly high confidence. This can be very suitable for eliminating problems such as
1521reflection artifacts. This validation comes at the cost of speed, and sometimes reduced number
1522of valid points due to the removal of low-confidence data. The Sage Engine is only available
1542 return { ValueType::phase, ValueType::stripe, ValueType::omni, ValueType::sage };
1550 : m_opt{ verifyValue(value) }
1577 return m_opt == other.m_opt;
1583 return m_opt != other.m_opt;
1593 void setFromString(
const std::string &value);
1595 constexpr ValueType
static verifyValue(
const ValueType &value)
1597 return value == ValueType::phase || value == ValueType::stripe || value == ValueType::omni
1598 || value == ValueType::sage
1600 :
throw std::invalid_argument{
1601 "Invalid value: Engine{ "
1602 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
1606 std::optional<ValueType> m_opt;
1608 friend struct DataModel::Detail::Befriend<
Engine>;
1621 static constexpr const char *path{
"Processing" };
1624 static constexpr const char *name{
"Processing" };
1627 static constexpr const char *description{
1628 R
"description(Settings related to processing of a capture, including filters and color balance.)description"
1647 static constexpr const char *path{
"Processing/Color" };
1650 static constexpr const char *name{
"Color" };
1653 static constexpr const char *description{ R
"description(Color settings.
1655These settings are deprecated as of SDK 2.14. These settings will be removed in the next SDK major
1656version (SDK 3.0). The recommended way to do a 2D+3D capture is to set a `Settings2D` object
1657in the `Settings/Color` node. Tip: If you want to convert an existing settings.yml file to use the
1658`Settings/Color` node, you can import the .yml file into Zivid Studio and then re-export it to .yml.
1671 static constexpr const char *path{
"Processing/Color/Balance" };
1674 static constexpr const char *name{
"Balance" };
1677 static constexpr const char *description{ R
"description(Color balance settings.)description" };
1696 static constexpr const char *path{
"Processing/Color/Balance/Blue" };
1699 static constexpr const char *name{
"Blue" };
1702 static constexpr const char *description{ R
"description(Digital gain applied to blue channel.
1704This setting is deprecated as of SDK 2.14. This setting will be removed in the next SDK major
1705version (SDK 3.0). The recommended way to do a 2D+3D capture is to set a `Settings2D` object
1706in the `Settings/Color` node. Tip: If you want to convert an existing settings.yml file to use
1707the `Settings/Color` node, you can import the .yml file into Zivid Studio and then re-export it
1717 return { 1.0, 8.0 };
1724 explicit constexpr Blue(
double value)
1725 : m_opt{ verifyValue(value) }
1746 return m_opt == other.m_opt;
1752 return m_opt != other.m_opt;
1758 return m_opt < other.m_opt;
1764 return m_opt > other.m_opt;
1770 return m_opt <= other.m_opt;
1776 return m_opt >= other.m_opt;
1786 void setFromString(
const std::string &value);
1788 constexpr ValueType
static verifyValue(
const ValueType &value)
1790 return validRange().isInRange(value)
1792 :
throw std::out_of_range{
"Blue{ " + std::to_string(value)
1793 +
" } is not in range ["
1794 + std::to_string(validRange().min()) +
", "
1795 + std::to_string(validRange().max()) +
"]" };
1798 std::optional<double> m_opt;
1800 friend struct DataModel::Detail::Befriend<
Blue>;
1820 static constexpr const char *path{
"Processing/Color/Balance/Green" };
1823 static constexpr const char *name{
"Green" };
1826 static constexpr const char *description{ R
"description(Digital gain applied to green channel.
1828This setting is deprecated as of SDK 2.14. This setting will be removed in the next SDK major
1829version (SDK 3.0). The recommended way to do a 2D+3D capture is to set a `Settings2D` object
1830in the `Settings/Color` node. Tip: If you want to convert an existing settings.yml file to use
1831the `Settings/Color` node, you can import the .yml file into Zivid Studio and then re-export it
1841 return { 1.0, 8.0 };
1849 : m_opt{ verifyValue(value) }
1870 return m_opt == other.m_opt;
1876 return m_opt != other.m_opt;
1882 return m_opt < other.m_opt;
1888 return m_opt > other.m_opt;
1894 return m_opt <= other.m_opt;
1900 return m_opt >= other.m_opt;
1910 void setFromString(
const std::string &value);
1912 constexpr ValueType
static verifyValue(
const ValueType &value)
1914 return validRange().isInRange(value)
1916 :
throw std::out_of_range{
"Green{ " + std::to_string(value)
1917 +
" } is not in range ["
1918 + std::to_string(validRange().min()) +
", "
1919 + std::to_string(validRange().max()) +
"]" };
1922 std::optional<double> m_opt;
1924 friend struct DataModel::Detail::Befriend<
Green>;
1944 static constexpr const char *path{
"Processing/Color/Balance/Red" };
1947 static constexpr const char *name{
"Red" };
1950 static constexpr const char *description{ R
"description(Digital gain applied to red channel.
1952This setting is deprecated as of SDK 2.14. This setting will be removed in the next SDK major
1953version (SDK 3.0). The recommended way to do a 2D+3D capture is to set a `Settings2D` object
1954in the `Settings/Color` node. Tip: If you want to convert an existing settings.yml file to use
1955the `Settings/Color` node, you can import the .yml file into Zivid Studio and then re-export it
1965 return { 1.0, 8.0 };
1972 explicit constexpr Red(
double value)
1973 : m_opt{ verifyValue(value) }
1994 return m_opt == other.m_opt;
2000 return m_opt != other.m_opt;
2006 return m_opt < other.m_opt;
2012 return m_opt > other.m_opt;
2018 return m_opt <= other.m_opt;
2024 return m_opt >= other.m_opt;
2034 void setFromString(
const std::string &value);
2036 constexpr ValueType
static verifyValue(
const ValueType &value)
2038 return validRange().isInRange(value)
2040 :
throw std::out_of_range{
"Red{ " + std::to_string(value)
2041 +
" } is not in range ["
2042 + std::to_string(validRange().min()) +
", "
2043 + std::to_string(validRange().max()) +
"]" };
2046 std::optional<double> m_opt;
2048 friend struct DataModel::Detail::Befriend<
Red>;
2075 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2076 typename std::enable_if<
2077 Zivid::Detail::TypeTraits::
2078 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
2081 template<typename... Args>
2085 using namespace Zivid::Detail::TypeTraits;
2088 AllArgsDecayedAreUnique<Args...>::value,
2089 "Found duplicate types among the arguments passed to Balance(...). "
2090 "Types should be listed at most once.");
2092 set(std::forward<Args>(args)...);
2108 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2110 template<typename... Args>
2114 using namespace Zivid::Detail::TypeTraits;
2116 using AllArgsAreDescendantNodes =
2117 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2119 AllArgsAreDescendantNodes::value,
2120 "All arguments passed to set(...) must be descendant nodes.");
2123 AllArgsDecayedAreUnique<Args...>::value,
2124 "Found duplicate types among the arguments passed to set(...). "
2125 "Types should be listed at most once.");
2127 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2144 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2146 template<typename... Args>
2150 using namespace Zivid::Detail::TypeTraits;
2152 using AllArgsAreDescendantNodes =
2153 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2155 AllArgsAreDescendantNodes::value,
2156 "All arguments passed to copyWith(...) must be descendant nodes.");
2159 AllArgsDecayedAreUnique<Args...>::value,
2160 "Found duplicate types among the arguments passed to copyWith(...). "
2161 "Types should be listed at most once.");
2164 copy.set(std::forward<Args>(args)...);
2227 typename std::enable_if<
2228 std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
2237 typename std::enable_if<
2238 std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
2248 enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
2254 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2260 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2266 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2273 template<
typename F>
2282 template<
typename F>
2306 void setFromString(
const std::string &value);
2308 void setFromString(
const std::string &fullPath,
const std::string &value);
2310 std::string getString(
const std::string &fullPath)
const;
2316 friend struct DataModel::Detail::Befriend<
Balance>;
2329 static constexpr const char *path{
"Processing/Color/Experimental" };
2332 static constexpr const char *name{
"Experimental" };
2335 static constexpr const char *description{
2336 R
"description(Experimental color settings. These may be renamed, moved or deleted in the future.)description"
2376 static constexpr const char *path{
"Processing/Color/Experimental/Mode" };
2379 static constexpr const char *name{
"Mode" };
2382 static constexpr const char *description{
2383 R
"description(This setting controls how the color image is computed.
2385`automatic` is the default option. `automatic` is identical to `useFirstAcquisition` for
2386single-acquisition captures and multi-acquisition captures when all the acquisitions have
2387identical (duplicated) acquisition settings. `automatic` is identical to `toneMapping` for
2388multi-acquisition HDR captures with differing acquisition settings.
2390`useFirstAcquisition` uses the color data acquired from the first acquisition provided. If
2391the capture consists of more than one acquisition, then the remaining acquisitions are not used
2392for the color image. No tone mapping is performed. This option provides the most control of
2393the color image, and the color values will be consistent over repeated captures with the same
2396`toneMapping` uses all the acquisitions to create one merged and normalized color image. For
2397HDR captures the dynamic range of the captured images is usually higher than the 8-bit color
2398image range. `toneMapping` will map the HDR color data to the 8-bit color output range by
2399applying a scaling factor. `toneMapping` can also be used for single-acquisition captures to
2400normalize the captured color image to the full 8-bit output. Note that when using `toneMapping`
2401mode the color values can be inconsistent over repeated captures if you move, add or remove
2402objects in the scene. For the most control over the colors, select the `useFirstAcquisition`
2405This setting is deprecated as of SDK 2.14. This setting will be removed in the next SDK major
2406version (SDK 3.0). The recommended way to do a 2D+3D capture is to set a `Settings2D` object
2407in the `Settings/Color` node. Tip: If you want to convert an existing settings.yml file to use
2408the `Settings/Color` node, you can import the .yml file into Zivid Studio and then re-export it
2417 useFirstAcquisition,
2427 return { ValueType::automatic, ValueType::useFirstAcquisition, ValueType::toneMapping };
2435 : m_opt{ verifyValue(value) }
2462 return m_opt == other.m_opt;
2468 return m_opt != other.m_opt;
2478 void setFromString(
const std::string &value);
2480 constexpr ValueType
static verifyValue(
const ValueType &value)
2482 return value == ValueType::automatic || value == ValueType::useFirstAcquisition
2483 || value == ValueType::toneMapping
2485 :
throw std::invalid_argument{
2486 "Invalid value: Mode{ "
2487 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
2492 std::optional<ValueType> m_opt;
2494 friend struct DataModel::Detail::Befriend<
Mode>;
2497 using Descendants = std::tuple<Settings::Processing::Color::Experimental::Mode>;
2516 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2517 typename std::enable_if<
2518 Zivid::Detail::TypeTraits::
2519 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
2522 template<typename... Args>
2526 using namespace Zivid::Detail::TypeTraits;
2529 AllArgsDecayedAreUnique<Args...>::value,
2530 "Found duplicate types among the arguments passed to Experimental(...). "
2531 "Types should be listed at most once.");
2533 set(std::forward<Args>(args)...);
2547 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2549 template<typename... Args>
2553 using namespace Zivid::Detail::TypeTraits;
2555 using AllArgsAreDescendantNodes =
2556 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2558 AllArgsAreDescendantNodes::value,
2559 "All arguments passed to set(...) must be descendant nodes.");
2562 AllArgsDecayedAreUnique<Args...>::value,
2563 "Found duplicate types among the arguments passed to set(...). "
2564 "Types should be listed at most once.");
2566 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2581 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2583 template<typename... Args>
2587 using namespace Zivid::Detail::TypeTraits;
2589 using AllArgsAreDescendantNodes =
2590 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2592 AllArgsAreDescendantNodes::value,
2593 "All arguments passed to copyWith(...) must be descendant nodes.");
2596 AllArgsDecayedAreUnique<Args...>::value,
2597 "Found duplicate types among the arguments passed to copyWith(...). "
2598 "Types should be listed at most once.");
2601 copy.set(std::forward<Args>(args)...);
2626 typename std::enable_if<
2627 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
2634 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2641 template<
typename F>
2648 template<
typename F>
2670 void setFromString(
const std::string &value);
2672 void setFromString(
const std::string &fullPath,
const std::string &value);
2674 std::string getString(
const std::string &fullPath)
const;
2678 friend struct DataModel::Detail::Befriend<
Experimental>;
2699 static constexpr const char *path{
"Processing/Color/Gamma" };
2702 static constexpr const char *name{
"Gamma" };
2705 static constexpr const char *description{
2706 R
"description(Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma
2707greater than 1 makes the colors darker.
2709This setting is deprecated as of SDK 2.14. This setting will be removed in the next SDK major
2710version (SDK 3.0). The recommended way to do a 2D+3D capture is to set a `Settings2D` object
2711in the `Settings/Color` node. Tip: If you want to convert an existing settings.yml file to use
2712the `Settings/Color` node, you can import the .yml file into Zivid Studio and then re-export it
2723 return { 0.25, 1.5 };
2731 : m_opt{ verifyValue(value) }
2752 return m_opt == other.m_opt;
2758 return m_opt != other.m_opt;
2764 return m_opt < other.m_opt;
2770 return m_opt > other.m_opt;
2776 return m_opt <= other.m_opt;
2782 return m_opt >= other.m_opt;
2792 void setFromString(
const std::string &value);
2794 constexpr ValueType
static verifyValue(
const ValueType &value)
2796 return validRange().isInRange(value)
2798 :
throw std::out_of_range{
"Gamma{ " + std::to_string(value) +
" } is not in range ["
2799 + std::to_string(validRange().min()) +
", "
2800 + std::to_string(validRange().max()) +
"]" };
2803 std::optional<double> m_opt;
2805 friend struct DataModel::Detail::Befriend<
Gamma>;
2840 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2841 typename std::enable_if<
2842 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2846 template<typename... Args>
2850 using namespace Zivid::Detail::TypeTraits;
2853 AllArgsDecayedAreUnique<Args...>::value,
2854 "Found duplicate types among the arguments passed to Color(...). "
2855 "Types should be listed at most once.");
2857 set(std::forward<Args>(args)...);
2877 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2879 template<typename... Args>
2883 using namespace Zivid::Detail::TypeTraits;
2885 using AllArgsAreDescendantNodes =
2886 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2888 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2891 AllArgsDecayedAreUnique<Args...>::value,
2892 "Found duplicate types among the arguments passed to set(...). "
2893 "Types should be listed at most once.");
2895 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2916 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2918 template<typename... Args>
2922 using namespace Zivid::Detail::TypeTraits;
2924 using AllArgsAreDescendantNodes =
2925 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2927 AllArgsAreDescendantNodes::value,
2928 "All arguments passed to copyWith(...) must be descendant nodes.");
2931 AllArgsDecayedAreUnique<Args...>::value,
2932 "Found duplicate types among the arguments passed to copyWith(...). "
2933 "Types should be listed at most once.");
2936 copy.set(std::forward<Args>(args)...);
2962 m_balance.
set(value);
2969 m_balance.
set(value);
2976 m_balance.
set(value);
2983 return m_experimental;
2989 return m_experimental;
2995 m_experimental = value;
3002 m_experimental.
set(value);
3027 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type =
3036 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::
3045 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
3054 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::
3063 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::
3067 return m_experimental;
3072 typename std::enable_if<
3073 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
3082 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
3088 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3094 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3097 return m_experimental;
3100 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3107 template<
typename F>
3116 template<
typename F>
3140 void setFromString(
const std::string &value);
3142 void setFromString(
const std::string &fullPath,
const std::string &value);
3144 std::string getString(
const std::string &fullPath)
const;
3147 Experimental m_experimental;
3150 friend struct DataModel::Detail::Befriend<
Color>;
3163 static constexpr const char *path{
"Processing/Filters" };
3166 static constexpr const char *name{
"Filters" };
3169 static constexpr const char *description{ R
"description(Filter settings.)description" };
3182 static constexpr const char *path{
"Processing/Filters/Cluster" };
3185 static constexpr const char *name{
"Cluster" };
3188 static constexpr const char *description{
3189 R
"description(Removes floating points and isolated clusters from the point cloud.
3203 static constexpr const char *path{
"Processing/Filters/Cluster/Removal" };
3206 static constexpr const char *name{
"Removal" };
3209 static constexpr const char *description{ R
"description(Cluster removal filter.)description" };
3221 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/Enabled" };
3224 static constexpr const char *name{
"Enabled" };
3227 static constexpr const char *description{
3228 R
"description(Enable or disable cluster removal.)description"
3239 return {
false,
true };
3268 return m_opt == other.m_opt;
3274 return m_opt != other.m_opt;
3284 void setFromString(
const std::string &value);
3286 std::optional<bool> m_opt;
3288 friend struct DataModel::Detail::Befriend<
Enabled>;
3304 static constexpr const char *path{
3305 "Processing/Filters/Cluster/Removal/MaxNeighborDistance"
3309 static constexpr const char *name{
"MaxNeighborDistance" };
3312 static constexpr const char *description{
3313 R
"description(Maximum normalized distance between neighboring points that are still classified as
3314belonging to the same cluster. The default value is optimal for most scenes. On messy
3315scenes turning this setting down helps removing more bad points.
3325 return { 2.0, 10.0 };
3333 : m_opt{ verifyValue(value) }
3354 return m_opt == other.m_opt;
3360 return m_opt != other.m_opt;
3366 return m_opt < other.m_opt;
3372 return m_opt > other.m_opt;
3378 return m_opt <= other.m_opt;
3384 return m_opt >= other.m_opt;
3394 void setFromString(
const std::string &value);
3396 constexpr ValueType
static verifyValue(
const ValueType &value)
3398 return validRange().isInRange(value)
3400 :
throw std::out_of_range{
"MaxNeighborDistance{ " + std::to_string(value)
3401 +
" } is not in range ["
3402 + std::to_string(validRange().min()) +
", "
3403 + std::to_string(validRange().max()) +
"]" };
3406 std::optional<double> m_opt;
3423 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/MinArea" };
3426 static constexpr const char *name{
"MinArea" };
3429 static constexpr const char *description{
3430 R
"description(Clusters with area below this threshold are removed by the filter.
3431The area is given in mm^2.
3441 return { 0.0, 1500.0 };
3449 : m_opt{ verifyValue(value) }
3470 return m_opt == other.m_opt;
3476 return m_opt != other.m_opt;
3482 return m_opt < other.m_opt;
3488 return m_opt > other.m_opt;
3494 return m_opt <= other.m_opt;
3500 return m_opt >= other.m_opt;
3510 void setFromString(
const std::string &value);
3512 constexpr ValueType
static verifyValue(
const ValueType &value)
3514 return validRange().isInRange(value)
3516 :
throw std::out_of_range{
"MinArea{ " + std::to_string(value)
3517 +
" } is not in range ["
3518 + std::to_string(validRange().min()) +
", "
3519 + std::to_string(validRange().max()) +
"]" };
3522 std::optional<double> m_opt;
3524 friend struct DataModel::Detail::Befriend<
MinArea>;
3551 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3552 typename std::enable_if<
3553 Zivid::Detail::TypeTraits::
3554 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
3557 template<typename... Args>
3561 using namespace Zivid::Detail::TypeTraits;
3564 AllArgsDecayedAreUnique<Args...>::value,
3565 "Found duplicate types among the arguments passed to Removal(...). "
3566 "Types should be listed at most once.");
3568 set(std::forward<Args>(args)...);
3584 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3586 template<typename... Args>
3590 using namespace Zivid::Detail::TypeTraits;
3592 using AllArgsAreDescendantNodes =
3593 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3595 AllArgsAreDescendantNodes::value,
3596 "All arguments passed to set(...) must be descendant nodes.");
3599 AllArgsDecayedAreUnique<Args...>::value,
3600 "Found duplicate types among the arguments passed to set(...). "
3601 "Types should be listed at most once.");
3603 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3620 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3622 template<typename... Args>
3626 using namespace Zivid::Detail::TypeTraits;
3628 using AllArgsAreDescendantNodes =
3629 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3631 AllArgsAreDescendantNodes::value,
3632 "All arguments passed to copyWith(...) must be descendant nodes.");
3635 AllArgsDecayedAreUnique<Args...>::value,
3636 "Found duplicate types among the arguments passed to copyWith(...). "
3637 "Types should be listed at most once.");
3640 copy.set(std::forward<Args>(args)...);
3666 return m_maxNeighborDistance;
3672 return m_maxNeighborDistance;
3678 m_maxNeighborDistance = value;
3703 typename std::enable_if<
3704 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
3713 typename std::enable_if<
3714 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
3719 return m_maxNeighborDistance;
3724 typename std::enable_if<
3725 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
3732 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3738 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3741 return m_maxNeighborDistance;
3744 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3751 template<
typename F>
3755 f(m_maxNeighborDistance);
3760 template<
typename F>
3764 f(m_maxNeighborDistance);
3784 void setFromString(
const std::string &value);
3786 void setFromString(
const std::string &fullPath,
const std::string &value);
3788 std::string getString(
const std::string &fullPath)
const;
3791 MaxNeighborDistance m_maxNeighborDistance;
3794 friend struct DataModel::Detail::Befriend<
Removal>;
3823 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3824 typename std::enable_if<
3825 Zivid::Detail::TypeTraits::
3826 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
3829 template<typename... Args>
3833 using namespace Zivid::Detail::TypeTraits;
3836 AllArgsDecayedAreUnique<Args...>::value,
3837 "Found duplicate types among the arguments passed to Cluster(...). "
3838 "Types should be listed at most once.");
3840 set(std::forward<Args>(args)...);
3857 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3859 template<typename... Args>
3863 using namespace Zivid::Detail::TypeTraits;
3865 using AllArgsAreDescendantNodes =
3866 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3868 AllArgsAreDescendantNodes::value,
3869 "All arguments passed to set(...) must be descendant nodes.");
3872 AllArgsDecayedAreUnique<Args...>::value,
3873 "Found duplicate types among the arguments passed to set(...). "
3874 "Types should be listed at most once.");
3876 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3894 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3896 template<typename... Args>
3900 using namespace Zivid::Detail::TypeTraits;
3902 using AllArgsAreDescendantNodes =
3903 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3905 AllArgsAreDescendantNodes::value,
3906 "All arguments passed to copyWith(...) must be descendant nodes.");
3909 AllArgsDecayedAreUnique<Args...>::value,
3910 "Found duplicate types among the arguments passed to copyWith(...). "
3911 "Types should be listed at most once.");
3914 copy.set(std::forward<Args>(args)...);
3940 m_removal.
set(value);
3947 m_removal.
set(value);
3954 m_removal.
set(value);
3960 typename std::enable_if<
3961 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
3970 typename std::enable_if<
3971 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
3980 typename std::enable_if<
3981 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
3991 typename std::enable_if<
3992 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
3999 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4006 template<
typename F>
4013 template<
typename F>
4035 void setFromString(
const std::string &value);
4037 void setFromString(
const std::string &fullPath,
const std::string &value);
4039 std::string getString(
const std::string &fullPath)
const;
4043 friend struct DataModel::Detail::Befriend<
Cluster>;
4056 static constexpr const char *path{
"Processing/Filters/Experimental" };
4059 static constexpr const char *name{
"Experimental" };
4062 static constexpr const char *description{
4063 R
"description(Experimental filters. These may be renamed, moved or deleted in the future.)description"
4080 static constexpr const char *path{
"Processing/Filters/Experimental/ContrastDistortion" };
4083 static constexpr const char *name{
"ContrastDistortion" };
4086 static constexpr const char *description{
4087 R
"description(Corrects artifacts that appear when imaging scenes with large texture gradients
4088or high contrast. These artifacts are caused by blurring in the lens. The filter
4089works best when aperture values are chosen such that the camera has quite good focus.
4090The filter also supports removing the points that experience a large correction.
4104 static constexpr const char *path{
4105 "Processing/Filters/Experimental/ContrastDistortion/Correction"
4109 static constexpr const char *name{
"Correction" };
4112 static constexpr const char *description{
4113 R
"description(Contrast distortion correction filter.)description"
4126 static constexpr const char *path{
4127 "Processing/Filters/Experimental/ContrastDistortion/Correction/Enabled"
4131 static constexpr const char *name{
"Enabled" };
4134 static constexpr const char *description{
4135 R
"description(Enable or disable contrast distortion correction.)description"
4146 return {
false,
true };
4175 return m_opt == other.m_opt;
4181 return m_opt != other.m_opt;
4191 void setFromString(
const std::string &value);
4193 std::optional<bool> m_opt;
4195 friend struct DataModel::Detail::Befriend<
Enabled>;
4208 static constexpr const char *path{
4209 "Processing/Filters/Experimental/ContrastDistortion/Correction/Strength"
4213 static constexpr const char *name{
"Strength" };
4216 static constexpr const char *description{
4217 R
"description(Strength of correction. Higher values give more correction.)description"
4226 return { 0.0, 1.0 };
4234 : m_opt{ verifyValue(value) }
4255 return m_opt == other.m_opt;
4261 return m_opt != other.m_opt;
4267 return m_opt < other.m_opt;
4273 return m_opt > other.m_opt;
4279 return m_opt <= other.m_opt;
4285 return m_opt >= other.m_opt;
4295 void setFromString(
const std::string &value);
4297 constexpr ValueType
static verifyValue(
const ValueType &value)
4299 return validRange().isInRange(value)
4301 :
throw std::out_of_range{
"Strength{ " + std::to_string(value)
4302 +
" } is not in range ["
4303 + std::to_string(validRange().min()) +
", "
4304 + std::to_string(validRange().max()) +
"]" };
4307 std::optional<double> m_opt;
4309 friend struct DataModel::Detail::Befriend<
Strength>;
4334 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4335 typename std::enable_if<
4336 Zivid::Detail::TypeTraits::
4337 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
4340 template<typename... Args>
4344 using namespace Zivid::Detail::TypeTraits;
4347 AllArgsDecayedAreUnique<Args...>::value,
4348 "Found duplicate types among the arguments passed to Correction(...). "
4349 "Types should be listed at most once.");
4351 set(std::forward<Args>(args)...);
4366 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4368 template<typename... Args>
4372 using namespace Zivid::Detail::TypeTraits;
4374 using AllArgsAreDescendantNodes =
4375 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4377 AllArgsAreDescendantNodes::value,
4378 "All arguments passed to set(...) must be descendant nodes.");
4381 AllArgsDecayedAreUnique<Args...>::value,
4382 "Found duplicate types among the arguments passed to set(...). "
4383 "Types should be listed at most once.");
4385 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4401 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4403 template<typename... Args>
4407 using namespace Zivid::Detail::TypeTraits;
4409 using AllArgsAreDescendantNodes =
4410 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4412 AllArgsAreDescendantNodes::value,
4413 "All arguments passed to copyWith(...) must be descendant nodes.");
4416 AllArgsDecayedAreUnique<Args...>::value,
4417 "Found duplicate types among the arguments passed to copyWith(...). "
4418 "Types should be listed at most once.");
4421 copy.set(std::forward<Args>(args)...);
4465 typename std::enable_if<
4468 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4479 typename std::enable_if<
4482 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4485 const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4492 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4499 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4500 const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4508 template<
typename F>
4516 template<
typename F>
4539 void setFromString(
const std::string &value);
4541 void setFromString(
const std::string &fullPath,
const std::string &value);
4543 std::string getString(
const std::string &fullPath)
const;
4548 friend struct DataModel::Detail::Befriend<
Correction>;
4561 static constexpr const char *path{
4562 "Processing/Filters/Experimental/ContrastDistortion/Removal"
4566 static constexpr const char *name{
"Removal" };
4569 static constexpr const char *description{
4570 R
"description(Contrast distortion removal filter.)description"
4583 static constexpr const char *path{
4584 "Processing/Filters/Experimental/ContrastDistortion/Removal/Enabled"
4588 static constexpr const char *name{
"Enabled" };
4591 static constexpr const char *description{
4592 R
"description(Enable or disable contrast distortion removal.)description"
4603 return {
false,
true };
4632 return m_opt == other.m_opt;
4638 return m_opt != other.m_opt;
4648 void setFromString(
const std::string &value);
4650 std::optional<bool> m_opt;
4652 friend struct DataModel::Detail::Befriend<
Enabled>;
4665 static constexpr const char *path{
4666 "Processing/Filters/Experimental/ContrastDistortion/Removal/Threshold"
4670 static constexpr const char *name{
"Threshold" };
4673 static constexpr const char *description{
4674 R
"description(Threshold for removal. Higher values remove more points.)description"
4683 return { 0.0, 1.0 };
4691 : m_opt{ verifyValue(value) }
4712 return m_opt == other.m_opt;
4718 return m_opt != other.m_opt;
4724 return m_opt < other.m_opt;
4730 return m_opt > other.m_opt;
4736 return m_opt <= other.m_opt;
4742 return m_opt >= other.m_opt;
4752 void setFromString(
const std::string &value);
4754 constexpr ValueType
static verifyValue(
const ValueType &value)
4756 return validRange().isInRange(value)
4758 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
4759 +
" } is not in range ["
4760 + std::to_string(validRange().min()) +
", "
4761 + std::to_string(validRange().max()) +
"]" };
4764 std::optional<double> m_opt;
4766 friend struct DataModel::Detail::Befriend<
Threshold>;
4791 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4792 typename std::enable_if<
4793 Zivid::Detail::TypeTraits::
4794 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
4797 template<typename... Args>
4801 using namespace Zivid::Detail::TypeTraits;
4804 AllArgsDecayedAreUnique<Args...>::value,
4805 "Found duplicate types among the arguments passed to Removal(...). "
4806 "Types should be listed at most once.");
4808 set(std::forward<Args>(args)...);
4823 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4825 template<typename... Args>
4829 using namespace Zivid::Detail::TypeTraits;
4831 using AllArgsAreDescendantNodes =
4832 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4834 AllArgsAreDescendantNodes::value,
4835 "All arguments passed to set(...) must be descendant nodes.");
4838 AllArgsDecayedAreUnique<Args...>::value,
4839 "Found duplicate types among the arguments passed to set(...). "
4840 "Types should be listed at most once.");
4842 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4858 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4860 template<typename... Args>
4864 using namespace Zivid::Detail::TypeTraits;
4866 using AllArgsAreDescendantNodes =
4867 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4869 AllArgsAreDescendantNodes::value,
4870 "All arguments passed to copyWith(...) must be descendant nodes.");
4873 AllArgsDecayedAreUnique<Args...>::value,
4874 "Found duplicate types among the arguments passed to copyWith(...). "
4875 "Types should be listed at most once.");
4878 copy.set(std::forward<Args>(args)...);
4916 m_threshold = value;
4922 typename std::enable_if<
4925 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4936 typename std::enable_if<
4939 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4948 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4955 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4963 template<
typename F>
4971 template<
typename F>
4994 void setFromString(
const std::string &value);
4996 void setFromString(
const std::string &fullPath,
const std::string &value);
4998 std::string getString(
const std::string &fullPath)
const;
5003 friend struct DataModel::Detail::Befriend<
Removal>;
5036 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5037 typename std::enable_if<
5038 Zivid::Detail::TypeTraits::
5039 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
5042 template<typename... Args>
5046 using namespace Zivid::Detail::TypeTraits;
5049 AllArgsDecayedAreUnique<Args...>::value,
5050 "Found duplicate types among the arguments passed to ContrastDistortion(...). "
5051 "Types should be listed at most once.");
5053 set(std::forward<Args>(args)...);
5072 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5074 template<typename... Args>
5078 using namespace Zivid::Detail::TypeTraits;
5080 using AllArgsAreDescendantNodes =
5081 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5083 AllArgsAreDescendantNodes::value,
5084 "All arguments passed to set(...) must be descendant nodes.");
5087 AllArgsDecayedAreUnique<Args...>::value,
5088 "Found duplicate types among the arguments passed to set(...). "
5089 "Types should be listed at most once.");
5091 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5111 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5113 template<typename... Args>
5117 using namespace Zivid::Detail::TypeTraits;
5119 using AllArgsAreDescendantNodes =
5120 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5122 AllArgsAreDescendantNodes::value,
5123 "All arguments passed to copyWith(...) must be descendant nodes.");
5126 AllArgsDecayedAreUnique<Args...>::value,
5127 "Found duplicate types among the arguments passed to copyWith(...). "
5128 "Types should be listed at most once.");
5131 copy.set(std::forward<Args>(args)...);
5138 return m_correction;
5144 return m_correction;
5150 m_correction = value;
5157 m_correction.
set(value);
5164 m_correction.
set(value);
5190 m_removal.
set(value);
5197 m_removal.
set(value);
5203 typename std::enable_if<
5210 return m_correction;
5215 typename std::enable_if<
5218 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5224 return m_correction.get<
5230 typename std::enable_if<
5233 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5239 return m_correction.get<Settings::Processing::Filters::Experimental::ContrastDistortion::
5240 Correction::Strength>();
5245 typename std::enable_if<
5257 typename std::enable_if<
5266 return m_removal.get<
5272 typename std::enable_if<
5275 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
5281 return m_removal.get<
5285 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5288 return m_correction;
5291 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
5298 template<
typename F>
5306 template<
typename F>
5329 void setFromString(
const std::string &value);
5331 void setFromString(
const std::string &fullPath,
const std::string &value);
5333 std::string getString(
const std::string &fullPath)
const;
5335 Correction m_correction;
5373 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5374 typename std::enable_if<
5375 Zivid::Detail::TypeTraits::
5376 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
5379 template<typename... Args>
5383 using namespace Zivid::Detail::TypeTraits;
5386 AllArgsDecayedAreUnique<Args...>::value,
5387 "Found duplicate types among the arguments passed to Experimental(...). "
5388 "Types should be listed at most once.");
5390 set(std::forward<Args>(args)...);
5410 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5412 template<typename... Args>
5416 using namespace Zivid::Detail::TypeTraits;
5418 using AllArgsAreDescendantNodes =
5419 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5421 AllArgsAreDescendantNodes::value,
5422 "All arguments passed to set(...) must be descendant nodes.");
5425 AllArgsDecayedAreUnique<Args...>::value,
5426 "Found duplicate types among the arguments passed to set(...). "
5427 "Types should be listed at most once.");
5429 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5450 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5452 template<typename... Args>
5456 using namespace Zivid::Detail::TypeTraits;
5458 using AllArgsAreDescendantNodes =
5459 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5461 AllArgsAreDescendantNodes::value,
5462 "All arguments passed to copyWith(...) must be descendant nodes.");
5465 AllArgsDecayedAreUnique<Args...>::value,
5466 "Found duplicate types among the arguments passed to copyWith(...). "
5467 "Types should be listed at most once.");
5470 copy.set(std::forward<Args>(args)...);
5477 return m_contrastDistortion;
5483 return m_contrastDistortion;
5489 m_contrastDistortion = value;
5496 m_contrastDistortion.
set(value);
5503 m_contrastDistortion.
set(value);
5510 m_contrastDistortion.
set(value);
5517 m_contrastDistortion.
set(value);
5524 m_contrastDistortion.
set(value);
5531 m_contrastDistortion.
set(value);
5537 typename std::enable_if<
5538 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
5542 return m_contrastDistortion;
5547 typename std::enable_if<
5554 return m_contrastDistortion
5560 typename std::enable_if<
5569 return m_contrastDistortion.get<
5575 typename std::enable_if<
5584 return m_contrastDistortion.get<
5590 typename std::enable_if<
5591 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
5596 return m_contrastDistortion
5602 typename std::enable_if<
5610 return m_contrastDistortion
5616 typename std::enable_if<
5625 return m_contrastDistortion
5629 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5632 return m_contrastDistortion;
5636 template<
typename F>
5639 f(m_contrastDistortion);
5643 template<
typename F>
5646 f(m_contrastDistortion);
5665 void setFromString(
const std::string &value);
5667 void setFromString(
const std::string &fullPath,
const std::string &value);
5669 std::string getString(
const std::string &fullPath)
const;
5673 friend struct DataModel::Detail::Befriend<
Experimental>;
5686 static constexpr const char *path{
"Processing/Filters/Hole" };
5689 static constexpr const char *name{
"Hole" };
5692 static constexpr const char *description{
5693 R
"description(Contains filters that can be used to deal with holes in the point cloud.)description"
5707 static constexpr const char *path{
"Processing/Filters/Hole/Repair" };
5710 static constexpr const char *name{
"Repair" };
5713 static constexpr const char *description{
5714 R
"description(Fills in point cloud holes by interpolating remaining surrounding points.
5728 static constexpr const char *path{
"Processing/Filters/Hole/Repair/Enabled" };
5731 static constexpr const char *name{
"Enabled" };
5734 static constexpr const char *description{
5735 R
"description(Enable or disable hole repair.)description"
5746 return {
false,
true };
5775 return m_opt == other.m_opt;
5781 return m_opt != other.m_opt;
5791 void setFromString(
const std::string &value);
5793 std::optional<bool> m_opt;
5795 friend struct DataModel::Detail::Befriend<
Enabled>;
5811 static constexpr const char *path{
"Processing/Filters/Hole/Repair/HoleSize" };
5814 static constexpr const char *name{
"HoleSize" };
5817 static constexpr const char *description{
5818 R
"description(Relative diameter of holes to fill. Increasing this will fill more points, but require more
5819computation time. The maximum allowed hole size scales with distance, so that we allow
5820filling larger holes at greater distances, measured in mm.
5830 return { 0.0, 1.0 };
5838 : m_opt{ verifyValue(value) }
5859 return m_opt == other.m_opt;
5865 return m_opt != other.m_opt;
5871 return m_opt < other.m_opt;
5877 return m_opt > other.m_opt;
5883 return m_opt <= other.m_opt;
5889 return m_opt >= other.m_opt;
5899 void setFromString(
const std::string &value);
5901 constexpr ValueType
static verifyValue(
const ValueType &value)
5903 return validRange().isInRange(value)
5905 :
throw std::out_of_range{
"HoleSize{ " + std::to_string(value)
5906 +
" } is not in range ["
5907 + std::to_string(validRange().min()) +
", "
5908 + std::to_string(validRange().max()) +
"]" };
5911 std::optional<double> m_opt;
5913 friend struct DataModel::Detail::Befriend<
HoleSize>;
5930 static constexpr const char *path{
"Processing/Filters/Hole/Repair/Strictness" };
5933 static constexpr const char *name{
"Strictness" };
5936 static constexpr const char *description{
5937 R
"description(Level of strictness when considering if a point should be filled. A higher level of
5938strictness requires a missing point to be surrounded by valid points on more sides in
5939order to be filled. Increasing this will fill fewer points, but it will be less likely to
5940fill gaps that are not circular, for example between two edges.
5958 : m_opt{ verifyValue(value) }
5979 return m_opt == other.m_opt;
5985 return m_opt != other.m_opt;
5991 return m_opt < other.m_opt;
5997 return m_opt > other.m_opt;
6003 return m_opt <= other.m_opt;
6009 return m_opt >= other.m_opt;
6019 void setFromString(
const std::string &value);
6021 constexpr ValueType
static verifyValue(
const ValueType &value)
6023 return validRange().isInRange(value)
6025 :
throw std::out_of_range{
"Strictness{ " + std::to_string(value)
6026 +
" } is not in range ["
6027 + std::to_string(validRange().min()) +
", "
6028 + std::to_string(validRange().max()) +
"]" };
6031 std::optional<int32_t> m_opt;
6033 friend struct DataModel::Detail::Befriend<
Strictness>;
6060 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6061 typename std::enable_if<
6062 Zivid::Detail::TypeTraits::
6063 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
6066 template<typename... Args>
6070 using namespace Zivid::Detail::TypeTraits;
6073 AllArgsDecayedAreUnique<Args...>::value,
6074 "Found duplicate types among the arguments passed to Repair(...). "
6075 "Types should be listed at most once.");
6077 set(std::forward<Args>(args)...);
6093 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6095 template<typename... Args>
6099 using namespace Zivid::Detail::TypeTraits;
6101 using AllArgsAreDescendantNodes =
6102 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6104 AllArgsAreDescendantNodes::value,
6105 "All arguments passed to set(...) must be descendant nodes.");
6108 AllArgsDecayedAreUnique<Args...>::value,
6109 "Found duplicate types among the arguments passed to set(...). "
6110 "Types should be listed at most once.");
6112 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6129 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6131 template<typename... Args>
6135 using namespace Zivid::Detail::TypeTraits;
6137 using AllArgsAreDescendantNodes =
6138 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6140 AllArgsAreDescendantNodes::value,
6141 "All arguments passed to copyWith(...) must be descendant nodes.");
6144 AllArgsDecayedAreUnique<Args...>::value,
6145 "Found duplicate types among the arguments passed to copyWith(...). "
6146 "Types should be listed at most once.");
6149 copy.set(std::forward<Args>(args)...);
6194 return m_strictness;
6200 return m_strictness;
6206 m_strictness = value;
6212 typename std::enable_if<
6213 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
6222 typename std::enable_if<
6223 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
6232 typename std::enable_if<
6233 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
6237 return m_strictness;
6240 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6246 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6252 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
6255 return m_strictness;
6259 template<
typename F>
6268 template<
typename F>
6292 void setFromString(
const std::string &value);
6294 void setFromString(
const std::string &fullPath,
const std::string &value);
6296 std::string getString(
const std::string &fullPath)
const;
6299 HoleSize m_holeSize;
6302 friend struct DataModel::Detail::Befriend<
Repair>;
6331 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6332 typename std::enable_if<
6333 Zivid::Detail::TypeTraits::
6334 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
6337 template<typename... Args>
6341 using namespace Zivid::Detail::TypeTraits;
6344 AllArgsDecayedAreUnique<Args...>::value,
6345 "Found duplicate types among the arguments passed to Hole(...). "
6346 "Types should be listed at most once.");
6348 set(std::forward<Args>(args)...);
6365 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6367 template<typename... Args>
6371 using namespace Zivid::Detail::TypeTraits;
6373 using AllArgsAreDescendantNodes =
6374 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6376 AllArgsAreDescendantNodes::value,
6377 "All arguments passed to set(...) must be descendant nodes.");
6380 AllArgsDecayedAreUnique<Args...>::value,
6381 "Found duplicate types among the arguments passed to set(...). "
6382 "Types should be listed at most once.");
6384 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6402 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6404 template<typename... Args>
6408 using namespace Zivid::Detail::TypeTraits;
6410 using AllArgsAreDescendantNodes =
6411 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6413 AllArgsAreDescendantNodes::value,
6414 "All arguments passed to copyWith(...) must be descendant nodes.");
6417 AllArgsDecayedAreUnique<Args...>::value,
6418 "Found duplicate types among the arguments passed to copyWith(...). "
6419 "Types should be listed at most once.");
6422 copy.set(std::forward<Args>(args)...);
6448 m_repair.
set(value);
6455 m_repair.
set(value);
6462 m_repair.
set(value);
6468 typename std::enable_if<
6469 std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
6478 typename std::enable_if<
6479 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
6488 typename std::enable_if<
6489 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
6498 typename std::enable_if<
6499 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
6506 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6513 template<
typename F>
6520 template<
typename F>
6542 void setFromString(
const std::string &value);
6544 void setFromString(
const std::string &fullPath,
const std::string &value);
6546 std::string getString(
const std::string &fullPath)
const;
6550 friend struct DataModel::Detail::Befriend<
Hole>;
6563 static constexpr const char *path{
"Processing/Filters/Noise" };
6566 static constexpr const char *name{
"Noise" };
6569 static constexpr const char *description{
6570 R
"description(Contains filters that can be used to clean up a noisy point cloud.)description"
6583 static constexpr const char *path{
"Processing/Filters/Noise/Removal" };
6586 static constexpr const char *name{
"Removal" };
6589 static constexpr const char *description{
6590 R
"description(Discard points with signal-to-noise ratio (SNR) values below a threshold.)description"
6603 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Enabled" };
6606 static constexpr const char *name{
"Enabled" };
6609 static constexpr const char *description{
6610 R
"description(Enable or disable the SNR filter.)description"
6621 return {
false,
true };
6650 return m_opt == other.m_opt;
6656 return m_opt != other.m_opt;
6666 void setFromString(
const std::string &value);
6668 std::optional<bool> m_opt;
6670 friend struct DataModel::Detail::Befriend<
Enabled>;
6683 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Threshold" };
6686 static constexpr const char *name{
"Threshold" };
6689 static constexpr const char *description{
6690 R
"description(Discard points with signal-to-noise ratio (SNR) below the given value.)description"
6699 return { 0.0, 100.0 };
6707 : m_opt{ verifyValue(value) }
6728 return m_opt == other.m_opt;
6734 return m_opt != other.m_opt;
6740 return m_opt < other.m_opt;
6746 return m_opt > other.m_opt;
6752 return m_opt <= other.m_opt;
6758 return m_opt >= other.m_opt;
6768 void setFromString(
const std::string &value);
6770 constexpr ValueType
static verifyValue(
const ValueType &value)
6772 return validRange().isInRange(value)
6774 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
6775 +
" } is not in range ["
6776 + std::to_string(validRange().min()) +
", "
6777 + std::to_string(validRange().max()) +
"]" };
6780 std::optional<double> m_opt;
6782 friend struct DataModel::Detail::Befriend<
Threshold>;
6807 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6808 typename std::enable_if<
6809 Zivid::Detail::TypeTraits::
6810 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
6813 template<typename... Args>
6817 using namespace Zivid::Detail::TypeTraits;
6820 AllArgsDecayedAreUnique<Args...>::value,
6821 "Found duplicate types among the arguments passed to Removal(...). "
6822 "Types should be listed at most once.");
6824 set(std::forward<Args>(args)...);
6839 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6841 template<typename... Args>
6845 using namespace Zivid::Detail::TypeTraits;
6847 using AllArgsAreDescendantNodes =
6848 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6850 AllArgsAreDescendantNodes::value,
6851 "All arguments passed to set(...) must be descendant nodes.");
6854 AllArgsDecayedAreUnique<Args...>::value,
6855 "Found duplicate types among the arguments passed to set(...). "
6856 "Types should be listed at most once.");
6858 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6874 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6876 template<typename... Args>
6880 using namespace Zivid::Detail::TypeTraits;
6882 using AllArgsAreDescendantNodes =
6883 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6885 AllArgsAreDescendantNodes::value,
6886 "All arguments passed to copyWith(...) must be descendant nodes.");
6889 AllArgsDecayedAreUnique<Args...>::value,
6890 "Found duplicate types among the arguments passed to copyWith(...). "
6891 "Types should be listed at most once.");
6894 copy.set(std::forward<Args>(args)...);
6932 m_threshold = value;
6938 typename std::enable_if<
6939 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
6948 typename std::enable_if<
6949 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
6956 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6962 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6969 template<
typename F>
6977 template<
typename F>
7000 void setFromString(
const std::string &value);
7002 void setFromString(
const std::string &fullPath,
const std::string &value);
7004 std::string getString(
const std::string &fullPath)
const;
7009 friend struct DataModel::Detail::Befriend<
Removal>;
7025 static constexpr const char *path{
"Processing/Filters/Noise/Repair" };
7028 static constexpr const char *name{
"Repair" };
7031 static constexpr const char *description{
7032 R
"description(Get better surface coverage by repairing regions of missing data due to noisy points.
7033Consider disabling this filter if you require all points in your point cloud to be of
7048 static constexpr const char *path{
"Processing/Filters/Noise/Repair/Enabled" };
7051 static constexpr const char *name{
"Enabled" };
7054 static constexpr const char *description{
7055 R
"description(Enable or disable noise repair.)description"
7066 return {
false,
true };
7095 return m_opt == other.m_opt;
7101 return m_opt != other.m_opt;
7111 void setFromString(
const std::string &value);
7113 std::optional<bool> m_opt;
7115 friend struct DataModel::Detail::Befriend<
Enabled>;
7118 using Descendants = std::tuple<Settings::Processing::Filters::Noise::Repair::Enabled>;
7137 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7138 typename std::enable_if<
7139 Zivid::Detail::TypeTraits::
7140 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
7143 template<typename... Args>
7147 using namespace Zivid::Detail::TypeTraits;
7150 AllArgsDecayedAreUnique<Args...>::value,
7151 "Found duplicate types among the arguments passed to Repair(...). "
7152 "Types should be listed at most once.");
7154 set(std::forward<Args>(args)...);
7168 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7170 template<typename... Args>
7174 using namespace Zivid::Detail::TypeTraits;
7176 using AllArgsAreDescendantNodes =
7177 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7179 AllArgsAreDescendantNodes::value,
7180 "All arguments passed to set(...) must be descendant nodes.");
7183 AllArgsDecayedAreUnique<Args...>::value,
7184 "Found duplicate types among the arguments passed to set(...). "
7185 "Types should be listed at most once.");
7187 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7202 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7204 template<typename... Args>
7208 using namespace Zivid::Detail::TypeTraits;
7210 using AllArgsAreDescendantNodes =
7211 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7213 AllArgsAreDescendantNodes::value,
7214 "All arguments passed to copyWith(...) must be descendant nodes.");
7217 AllArgsDecayedAreUnique<Args...>::value,
7218 "Found duplicate types among the arguments passed to copyWith(...). "
7219 "Types should be listed at most once.");
7222 copy.set(std::forward<Args>(args)...);
7247 typename std::enable_if<
7248 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
7255 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7262 template<
typename F>
7269 template<
typename F>
7291 void setFromString(
const std::string &value);
7293 void setFromString(
const std::string &fullPath,
const std::string &value);
7295 std::string getString(
const std::string &fullPath)
const;
7299 friend struct DataModel::Detail::Befriend<
Repair>;
7315 static constexpr const char *path{
"Processing/Filters/Noise/Suppression" };
7318 static constexpr const char *name{
"Suppression" };
7321 static constexpr const char *description{
7322 R
"description(Reduce noise and outliers in the point cloud. This filter can also be used to reduce
7323ripple effects caused by interreflections. Consider disabling this filter if you need to
7324distinguish very fine details and thus need to avoid any smoothing effects.
7338 static constexpr const char *path{
"Processing/Filters/Noise/Suppression/Enabled" };
7341 static constexpr const char *name{
"Enabled" };
7344 static constexpr const char *description{
7345 R
"description(Enable or disable noise suppression.)description"
7356 return {
false,
true };
7385 return m_opt == other.m_opt;
7391 return m_opt != other.m_opt;
7401 void setFromString(
const std::string &value);
7403 std::optional<bool> m_opt;
7405 friend struct DataModel::Detail::Befriend<
Enabled>;
7408 using Descendants = std::tuple<Settings::Processing::Filters::Noise::Suppression::Enabled>;
7427 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7428 typename std::enable_if<
7429 Zivid::Detail::TypeTraits::
7430 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
7433 template<typename... Args>
7437 using namespace Zivid::Detail::TypeTraits;
7440 AllArgsDecayedAreUnique<Args...>::value,
7441 "Found duplicate types among the arguments passed to Suppression(...). "
7442 "Types should be listed at most once.");
7444 set(std::forward<Args>(args)...);
7458 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7460 template<typename... Args>
7464 using namespace Zivid::Detail::TypeTraits;
7466 using AllArgsAreDescendantNodes =
7467 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7469 AllArgsAreDescendantNodes::value,
7470 "All arguments passed to set(...) must be descendant nodes.");
7473 AllArgsDecayedAreUnique<Args...>::value,
7474 "Found duplicate types among the arguments passed to set(...). "
7475 "Types should be listed at most once.");
7477 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7492 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7494 template<typename... Args>
7498 using namespace Zivid::Detail::TypeTraits;
7500 using AllArgsAreDescendantNodes =
7501 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7503 AllArgsAreDescendantNodes::value,
7504 "All arguments passed to copyWith(...) must be descendant nodes.");
7507 AllArgsDecayedAreUnique<Args...>::value,
7508 "Found duplicate types among the arguments passed to copyWith(...). "
7509 "Types should be listed at most once.");
7512 copy.set(std::forward<Args>(args)...);
7537 typename std::enable_if<
7538 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
7545 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7552 template<
typename F>
7559 template<
typename F>
7581 void setFromString(
const std::string &value);
7583 void setFromString(
const std::string &fullPath,
const std::string &value);
7585 std::string getString(
const std::string &fullPath)
const;
7589 friend struct DataModel::Detail::Befriend<
Suppression>;
7624 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7625 typename std::enable_if<
7626 Zivid::Detail::TypeTraits::
7627 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
7630 template<typename... Args>
7634 using namespace Zivid::Detail::TypeTraits;
7637 AllArgsDecayedAreUnique<Args...>::value,
7638 "Found duplicate types among the arguments passed to Noise(...). "
7639 "Types should be listed at most once.");
7641 set(std::forward<Args>(args)...);
7661 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7663 template<typename... Args>
7667 using namespace Zivid::Detail::TypeTraits;
7669 using AllArgsAreDescendantNodes =
7670 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7672 AllArgsAreDescendantNodes::value,
7673 "All arguments passed to set(...) must be descendant nodes.");
7676 AllArgsDecayedAreUnique<Args...>::value,
7677 "Found duplicate types among the arguments passed to set(...). "
7678 "Types should be listed at most once.");
7680 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7701 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7703 template<typename... Args>
7707 using namespace Zivid::Detail::TypeTraits;
7709 using AllArgsAreDescendantNodes =
7710 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7712 AllArgsAreDescendantNodes::value,
7713 "All arguments passed to copyWith(...) must be descendant nodes.");
7716 AllArgsDecayedAreUnique<Args...>::value,
7717 "Found duplicate types among the arguments passed to copyWith(...). "
7718 "Types should be listed at most once.");
7721 copy.set(std::forward<Args>(args)...);
7747 m_removal.
set(value);
7754 m_removal.
set(value);
7780 m_repair.
set(value);
7787 return m_suppression;
7793 return m_suppression;
7799 m_suppression = value;
7806 m_suppression.
set(value);
7812 typename std::enable_if<
7813 std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
7822 typename std::enable_if<
7823 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
7832 typename std::enable_if<
7833 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
7842 typename std::enable_if<
7843 std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
7852 typename std::enable_if<
7853 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
7862 typename std::enable_if<
7863 std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
7867 return m_suppression;
7872 typename std::enable_if<
7873 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
7880 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7886 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
7892 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
7895 return m_suppression;
7899 template<
typename F>
7908 template<
typename F>
7932 void setFromString(
const std::string &value);
7934 void setFromString(
const std::string &fullPath,
const std::string &value);
7936 std::string getString(
const std::string &fullPath)
const;
7942 friend struct DataModel::Detail::Befriend<
Noise>;
7955 static constexpr const char *path{
"Processing/Filters/Outlier" };
7958 static constexpr const char *name{
"Outlier" };
7961 static constexpr const char *description{
7962 R
"description(Contains a filter that removes points with large Euclidean distance to neighboring points.)description"
7975 static constexpr const char *path{
"Processing/Filters/Outlier/Removal" };
7978 static constexpr const char *name{
"Removal" };
7981 static constexpr const char *description{
7982 R
"description(Discard point if Euclidean distance to neighboring points is above a threshold.)description"
7995 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Enabled" };
7998 static constexpr const char *name{
"Enabled" };
8001 static constexpr const char *description{
8002 R
"description(Enable or disable the outlier filter.)description"
8013 return {
false,
true };
8042 return m_opt == other.m_opt;
8048 return m_opt != other.m_opt;
8058 void setFromString(
const std::string &value);
8060 std::optional<bool> m_opt;
8062 friend struct DataModel::Detail::Befriend<
Enabled>;
8075 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Threshold" };
8078 static constexpr const char *name{
"Threshold" };
8081 static constexpr const char *description{
8082 R
"description(Discard point if Euclidean distance to neighboring points is above the given value.)description"
8091 return { 0.0, 100.0 };
8099 : m_opt{ verifyValue(value) }
8120 return m_opt == other.m_opt;
8126 return m_opt != other.m_opt;
8132 return m_opt < other.m_opt;
8138 return m_opt > other.m_opt;
8144 return m_opt <= other.m_opt;
8150 return m_opt >= other.m_opt;
8160 void setFromString(
const std::string &value);
8162 constexpr ValueType
static verifyValue(
const ValueType &value)
8164 return validRange().isInRange(value)
8166 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
8167 +
" } is not in range ["
8168 + std::to_string(validRange().min()) +
", "
8169 + std::to_string(validRange().max()) +
"]" };
8172 std::optional<double> m_opt;
8174 friend struct DataModel::Detail::Befriend<
Threshold>;
8199 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8200 typename std::enable_if<
8201 Zivid::Detail::TypeTraits::
8202 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8205 template<typename... Args>
8209 using namespace Zivid::Detail::TypeTraits;
8212 AllArgsDecayedAreUnique<Args...>::value,
8213 "Found duplicate types among the arguments passed to Removal(...). "
8214 "Types should be listed at most once.");
8216 set(std::forward<Args>(args)...);
8231 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8233 template<typename... Args>
8237 using namespace Zivid::Detail::TypeTraits;
8239 using AllArgsAreDescendantNodes =
8240 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8242 AllArgsAreDescendantNodes::value,
8243 "All arguments passed to set(...) must be descendant nodes.");
8246 AllArgsDecayedAreUnique<Args...>::value,
8247 "Found duplicate types among the arguments passed to set(...). "
8248 "Types should be listed at most once.");
8250 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8266 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8268 template<typename... Args>
8272 using namespace Zivid::Detail::TypeTraits;
8274 using AllArgsAreDescendantNodes =
8275 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8277 AllArgsAreDescendantNodes::value,
8278 "All arguments passed to copyWith(...) must be descendant nodes.");
8281 AllArgsDecayedAreUnique<Args...>::value,
8282 "Found duplicate types among the arguments passed to copyWith(...). "
8283 "Types should be listed at most once.");
8286 copy.set(std::forward<Args>(args)...);
8324 m_threshold = value;
8330 typename std::enable_if<
8331 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
8340 typename std::enable_if<
8341 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
8348 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8354 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
8361 template<
typename F>
8369 template<
typename F>
8392 void setFromString(
const std::string &value);
8394 void setFromString(
const std::string &fullPath,
const std::string &value);
8396 std::string getString(
const std::string &fullPath)
const;
8401 friend struct DataModel::Detail::Befriend<
Removal>;
8428 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8429 typename std::enable_if<
8430 Zivid::Detail::TypeTraits::
8431 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8434 template<typename... Args>
8438 using namespace Zivid::Detail::TypeTraits;
8441 AllArgsDecayedAreUnique<Args...>::value,
8442 "Found duplicate types among the arguments passed to Outlier(...). "
8443 "Types should be listed at most once.");
8445 set(std::forward<Args>(args)...);
8461 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8463 template<typename... Args>
8467 using namespace Zivid::Detail::TypeTraits;
8469 using AllArgsAreDescendantNodes =
8470 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8472 AllArgsAreDescendantNodes::value,
8473 "All arguments passed to set(...) must be descendant nodes.");
8476 AllArgsDecayedAreUnique<Args...>::value,
8477 "Found duplicate types among the arguments passed to set(...). "
8478 "Types should be listed at most once.");
8480 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8497 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8499 template<typename... Args>
8503 using namespace Zivid::Detail::TypeTraits;
8505 using AllArgsAreDescendantNodes =
8506 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8508 AllArgsAreDescendantNodes::value,
8509 "All arguments passed to copyWith(...) must be descendant nodes.");
8512 AllArgsDecayedAreUnique<Args...>::value,
8513 "Found duplicate types among the arguments passed to copyWith(...). "
8514 "Types should be listed at most once.");
8517 copy.set(std::forward<Args>(args)...);
8543 m_removal.
set(value);
8550 m_removal.
set(value);
8556 typename std::enable_if<
8557 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
8566 typename std::enable_if<
8567 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
8576 typename std::enable_if<
8577 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
8584 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8591 template<
typename F>
8598 template<
typename F>
8620 void setFromString(
const std::string &value);
8622 void setFromString(
const std::string &fullPath,
const std::string &value);
8624 std::string getString(
const std::string &fullPath)
const;
8628 friend struct DataModel::Detail::Befriend<
Outlier>;
8641 static constexpr const char *path{
"Processing/Filters/Reflection" };
8644 static constexpr const char *name{
"Reflection" };
8647 static constexpr const char *description{
8648 R
"description(Contains a filter that removes points likely introduced by reflections (useful for shiny materials).)description"
8661 static constexpr const char *path{
"Processing/Filters/Reflection/Removal" };
8664 static constexpr const char *name{
"Removal" };
8667 static constexpr const char *description{
8668 R
"description(Discard points likely introduced by reflections (useful for shiny materials).)description"
8681 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Enabled" };
8684 static constexpr const char *name{
"Enabled" };
8687 static constexpr const char *description{
8688 R
"description(Enable or disable the reflection filter. Note that this filter is computationally intensive and may affect the frame rate.)description"
8699 return {
false,
true };
8728 return m_opt == other.m_opt;
8734 return m_opt != other.m_opt;
8744 void setFromString(
const std::string &value);
8746 std::optional<bool> m_opt;
8748 friend struct DataModel::Detail::Befriend<
Enabled>;
8768 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Mode" };
8771 static constexpr const char *name{
"Mode" };
8774 static constexpr const char *description{
8775 R
"description(The reflection filter has two modes: Local and Global. Local mode preserves more 3D data
8776on thinner objects, generally removes more reflection artifacts and processes faster than
8777the Global filter. The Global filter is generally better at removing outlier points in
8778the point cloud. It is advised to use the Outlier filter and Cluster filter together with the
8779Local Reflection filter.
8781Global mode was introduced in SDK 1.0 and Local mode was introduced in SDK 2.7.
8797 return { ValueType::global, ValueType::local };
8805 : m_opt{ verifyValue(value) }
8832 return m_opt == other.m_opt;
8838 return m_opt != other.m_opt;
8848 void setFromString(
const std::string &value);
8850 constexpr ValueType
static verifyValue(
const ValueType &value)
8852 return value == ValueType::global || value == ValueType::local
8854 :
throw std::invalid_argument{
8855 "Invalid value: Mode{ "
8857 static_cast<std::underlying_type<ValueType>::type
>(value))
8862 std::optional<ValueType> m_opt;
8864 friend struct DataModel::Detail::Befriend<
Mode>;
8889 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8890 typename std::enable_if<
8891 Zivid::Detail::TypeTraits::
8892 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8895 template<typename... Args>
8899 using namespace Zivid::Detail::TypeTraits;
8902 AllArgsDecayedAreUnique<Args...>::value,
8903 "Found duplicate types among the arguments passed to Removal(...). "
8904 "Types should be listed at most once.");
8906 set(std::forward<Args>(args)...);
8921 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8923 template<typename... Args>
8927 using namespace Zivid::Detail::TypeTraits;
8929 using AllArgsAreDescendantNodes =
8930 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8932 AllArgsAreDescendantNodes::value,
8933 "All arguments passed to set(...) must be descendant nodes.");
8936 AllArgsDecayedAreUnique<Args...>::value,
8937 "Found duplicate types among the arguments passed to set(...). "
8938 "Types should be listed at most once.");
8940 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8956 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8958 template<typename... Args>
8962 using namespace Zivid::Detail::TypeTraits;
8964 using AllArgsAreDescendantNodes =
8965 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8967 AllArgsAreDescendantNodes::value,
8968 "All arguments passed to copyWith(...) must be descendant nodes.");
8971 AllArgsDecayedAreUnique<Args...>::value,
8972 "Found duplicate types among the arguments passed to copyWith(...). "
8973 "Types should be listed at most once.");
8976 copy.set(std::forward<Args>(args)...);
9020 typename std::enable_if<
9021 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
9030 typename std::enable_if<
9031 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
9038 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9044 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9051 template<
typename F>
9059 template<
typename F>
9082 void setFromString(
const std::string &value);
9084 void setFromString(
const std::string &fullPath,
const std::string &value);
9086 std::string getString(
const std::string &fullPath)
const;
9091 friend struct DataModel::Detail::Befriend<
Removal>;
9118 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9119 typename std::enable_if<
9120 Zivid::Detail::TypeTraits::
9121 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9124 template<typename... Args>
9128 using namespace Zivid::Detail::TypeTraits;
9131 AllArgsDecayedAreUnique<Args...>::value,
9132 "Found duplicate types among the arguments passed to Reflection(...). "
9133 "Types should be listed at most once.");
9135 set(std::forward<Args>(args)...);
9151 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9153 template<typename... Args>
9157 using namespace Zivid::Detail::TypeTraits;
9159 using AllArgsAreDescendantNodes =
9160 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9162 AllArgsAreDescendantNodes::value,
9163 "All arguments passed to set(...) must be descendant nodes.");
9166 AllArgsDecayedAreUnique<Args...>::value,
9167 "Found duplicate types among the arguments passed to set(...). "
9168 "Types should be listed at most once.");
9170 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9187 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9189 template<typename... Args>
9193 using namespace Zivid::Detail::TypeTraits;
9195 using AllArgsAreDescendantNodes =
9196 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9198 AllArgsAreDescendantNodes::value,
9199 "All arguments passed to copyWith(...) must be descendant nodes.");
9202 AllArgsDecayedAreUnique<Args...>::value,
9203 "Found duplicate types among the arguments passed to copyWith(...). "
9204 "Types should be listed at most once.");
9207 copy.set(std::forward<Args>(args)...);
9233 m_removal.
set(value);
9240 m_removal.
set(value);
9246 typename std::enable_if<
9247 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
9256 typename std::enable_if<
9257 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
9266 typename std::enable_if<
9267 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
9274 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9281 template<
typename F>
9288 template<
typename F>
9310 void setFromString(
const std::string &value);
9312 void setFromString(
const std::string &fullPath,
const std::string &value);
9314 std::string getString(
const std::string &fullPath)
const;
9318 friend struct DataModel::Detail::Befriend<
Reflection>;
9331 static constexpr const char *path{
"Processing/Filters/Smoothing" };
9334 static constexpr const char *name{
"Smoothing" };
9337 static constexpr const char *description{ R
"description(Smoothing filters.)description" };
9349 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian" };
9352 static constexpr const char *name{
"Gaussian" };
9355 static constexpr const char *description{
9356 R
"description(Gaussian smoothing of the point cloud.)description"
9369 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Enabled" };
9372 static constexpr const char *name{
"Enabled" };
9375 static constexpr const char *description{
9376 R
"description(Enable or disable the smoothing filter.)description"
9387 return {
false,
true };
9416 return m_opt == other.m_opt;
9422 return m_opt != other.m_opt;
9432 void setFromString(
const std::string &value);
9434 std::optional<bool> m_opt;
9436 friend struct DataModel::Detail::Befriend<
Enabled>;
9449 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Sigma" };
9452 static constexpr const char *name{
"Sigma" };
9455 static constexpr const char *description{
9456 R
"description(Higher values result in smoother point clouds (Standard deviation of the filter coefficients).)description"
9473 : m_opt{ verifyValue(value) }
9494 return m_opt == other.m_opt;
9500 return m_opt != other.m_opt;
9506 return m_opt < other.m_opt;
9512 return m_opt > other.m_opt;
9518 return m_opt <= other.m_opt;
9524 return m_opt >= other.m_opt;
9534 void setFromString(
const std::string &value);
9536 constexpr ValueType
static verifyValue(
const ValueType &value)
9538 return validRange().isInRange(value)
9540 :
throw std::out_of_range{
"Sigma{ " + std::to_string(value)
9541 +
" } is not in range ["
9542 + std::to_string(validRange().min()) +
", "
9543 + std::to_string(validRange().max()) +
"]" };
9546 std::optional<double> m_opt;
9548 friend struct DataModel::Detail::Befriend<
Sigma>;
9573 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9574 typename std::enable_if<
9575 Zivid::Detail::TypeTraits::
9576 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9579 template<typename... Args>
9583 using namespace Zivid::Detail::TypeTraits;
9586 AllArgsDecayedAreUnique<Args...>::value,
9587 "Found duplicate types among the arguments passed to Gaussian(...). "
9588 "Types should be listed at most once.");
9590 set(std::forward<Args>(args)...);
9605 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9607 template<typename... Args>
9611 using namespace Zivid::Detail::TypeTraits;
9613 using AllArgsAreDescendantNodes =
9614 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9616 AllArgsAreDescendantNodes::value,
9617 "All arguments passed to set(...) must be descendant nodes.");
9620 AllArgsDecayedAreUnique<Args...>::value,
9621 "Found duplicate types among the arguments passed to set(...). "
9622 "Types should be listed at most once.");
9624 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9640 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9642 template<typename... Args>
9646 using namespace Zivid::Detail::TypeTraits;
9648 using AllArgsAreDescendantNodes =
9649 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9651 AllArgsAreDescendantNodes::value,
9652 "All arguments passed to copyWith(...) must be descendant nodes.");
9655 AllArgsDecayedAreUnique<Args...>::value,
9656 "Found duplicate types among the arguments passed to copyWith(...). "
9657 "Types should be listed at most once.");
9660 copy.set(std::forward<Args>(args)...);
9704 typename std::enable_if<
9705 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9714 typename std::enable_if<
9715 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9722 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9728 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9735 template<
typename F>
9743 template<
typename F>
9766 void setFromString(
const std::string &value);
9768 void setFromString(
const std::string &fullPath,
const std::string &value);
9770 std::string getString(
const std::string &fullPath)
const;
9775 friend struct DataModel::Detail::Befriend<
Gaussian>;
9802 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9803 typename std::enable_if<
9804 Zivid::Detail::TypeTraits::
9805 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9808 template<typename... Args>
9812 using namespace Zivid::Detail::TypeTraits;
9815 AllArgsDecayedAreUnique<Args...>::value,
9816 "Found duplicate types among the arguments passed to Smoothing(...). "
9817 "Types should be listed at most once.");
9819 set(std::forward<Args>(args)...);
9835 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9837 template<typename... Args>
9841 using namespace Zivid::Detail::TypeTraits;
9843 using AllArgsAreDescendantNodes =
9844 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9846 AllArgsAreDescendantNodes::value,
9847 "All arguments passed to set(...) must be descendant nodes.");
9850 AllArgsDecayedAreUnique<Args...>::value,
9851 "Found duplicate types among the arguments passed to set(...). "
9852 "Types should be listed at most once.");
9854 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9871 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9873 template<typename... Args>
9877 using namespace Zivid::Detail::TypeTraits;
9879 using AllArgsAreDescendantNodes =
9880 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9882 AllArgsAreDescendantNodes::value,
9883 "All arguments passed to copyWith(...) must be descendant nodes.");
9886 AllArgsDecayedAreUnique<Args...>::value,
9887 "Found duplicate types among the arguments passed to copyWith(...). "
9888 "Types should be listed at most once.");
9891 copy.set(std::forward<Args>(args)...);
9917 m_gaussian.
set(value);
9924 m_gaussian.
set(value);
9930 typename std::enable_if<
9931 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
9940 typename std::enable_if<
9941 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9950 typename std::enable_if<
9951 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9958 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9965 template<
typename F>
9972 template<
typename F>
9994 void setFromString(
const std::string &value);
9996 void setFromString(
const std::string &fullPath,
const std::string &value);
9998 std::string getString(
const std::string &fullPath)
const;
10002 friend struct DataModel::Detail::Befriend<
Smoothing>;
10099 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
10100 typename std::enable_if<
10101 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
10105 template<typename... Args>
10109 using namespace Zivid::Detail::TypeTraits;
10112 AllArgsDecayedAreUnique<Args...>::value,
10113 "Found duplicate types among the arguments passed to Filters(...). "
10114 "Types should be listed at most once.");
10116 set(std::forward<Args>(args)...);
10167 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
10169 template<typename... Args>
10173 using namespace Zivid::Detail::TypeTraits;
10175 using AllArgsAreDescendantNodes =
10176 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10178 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
10181 AllArgsDecayedAreUnique<Args...>::value,
10182 "Found duplicate types among the arguments passed to set(...). "
10183 "Types should be listed at most once.");
10185 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
10237 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
10239 template<typename... Args>
10243 using namespace Zivid::Detail::TypeTraits;
10245 using AllArgsAreDescendantNodes =
10246 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10248 AllArgsAreDescendantNodes::value,
10249 "All arguments passed to copyWith(...) must be descendant nodes.");
10252 AllArgsDecayedAreUnique<Args...>::value,
10253 "Found duplicate types among the arguments passed to copyWith(...). "
10254 "Types should be listed at most once.");
10256 auto copy{ *
this };
10257 copy.set(std::forward<Args>(args)...);
10283 m_cluster.
set(value);
10290 m_cluster.
set(value);
10297 m_cluster.
set(value);
10304 m_cluster.
set(value);
10311 return m_experimental;
10317 return m_experimental;
10323 m_experimental = value;
10330 m_experimental.
set(value);
10337 m_experimental.
set(value);
10344 m_experimental.
set(value);
10351 m_experimental.
set(value);
10358 m_experimental.
set(value);
10365 m_experimental.
set(value);
10372 m_experimental.
set(value);
10445 m_noise.
set(value);
10452 m_noise.
set(value);
10459 m_noise.
set(value);
10466 m_noise.
set(value);
10473 m_noise.
set(value);
10480 m_noise.
set(value);
10487 m_noise.
set(value);
10513 m_outlier.
set(value);
10520 m_outlier.
set(value);
10527 m_outlier.
set(value);
10534 return m_reflection;
10540 return m_reflection;
10546 m_reflection = value;
10553 m_reflection.
set(value);
10560 m_reflection.
set(value);
10567 m_reflection.
set(value);
10574 return m_smoothing;
10580 return m_smoothing;
10586 m_smoothing = value;
10593 m_smoothing.
set(value);
10600 m_smoothing.
set(value);
10607 m_smoothing.
set(value);
10613 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type =
10622 typename std::enable_if<
10623 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
10632 typename std::enable_if<
10633 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
10642 typename std::enable_if<
10643 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
10652 typename std::enable_if<
10653 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
10662 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
10666 return m_experimental;
10671 typename std::enable_if<
10672 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
10681 typename std::enable_if<
10682 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::
10687 return m_experimental
10693 typename std::enable_if<
10701 return m_experimental
10707 typename std::enable_if<
10715 return m_experimental
10721 typename std::enable_if<
10722 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
10727 return m_experimental
10733 typename std::enable_if<
10740 return m_experimental
10746 typename std::enable_if<
10753 return m_experimental
10759 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
10767 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::
10776 typename std::enable_if<
10777 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
10786 typename std::enable_if<
10787 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
10796 typename std::enable_if<
10797 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
10806 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type =
10816 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type = 0>
10824 typename std::enable_if<
10825 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
10834 typename std::enable_if<
10835 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
10844 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
10853 typename std::enable_if<
10854 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
10863 typename std::enable_if<
10864 std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
10873 typename std::enable_if<
10874 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
10883 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type =
10892 typename std::enable_if<
10893 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
10902 typename std::enable_if<
10903 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
10912 typename std::enable_if<
10913 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
10922 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::
10926 return m_reflection;
10931 typename std::enable_if<
10932 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
10941 typename std::enable_if<
10942 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
10951 typename std::enable_if<
10952 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
10961 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::
10965 return m_smoothing;
10970 typename std::enable_if<
10971 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
10980 typename std::enable_if<
10981 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
10990 typename std::enable_if<
10991 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
10998 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
11004 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
11007 return m_experimental;
11010 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
11016 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
11022 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
11028 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
11031 return m_reflection;
11034 template<size_t i, typename std::enable_if<i == 6, int>::type = 0>
11037 return m_smoothing;
11041 template<
typename F>
11054 template<
typename F>
11078 return stream << value.
toString();
11082 void setFromString(
const std::string &value);
11084 void setFromString(
const std::string &fullPath,
const std::string &value);
11086 std::string getString(
const std::string &fullPath)
const;
11089 Experimental m_experimental;
11093 Reflection m_reflection;
11096 friend struct DataModel::Detail::Befriend<
Filters>;
11110 static constexpr const char *path{
"Processing/Resampling" };
11113 static constexpr const char *name{
"Resampling" };
11116 static constexpr const char *description{
11117 R
"description(Settings for changing the output resolution of the point cloud.
11153 static constexpr const char *path{
"Processing/Resampling/Mode" };
11156 static constexpr const char *name{
"Mode" };
11159 static constexpr const char *description{
11160 R
"description(Setting for upsampling or downsampling the point cloud data by some factor. This operation
11161is performed after all other processing has been completed.
11163Downsampling is used to reduce the number of points in the point cloud. This is done by
11164combining each 2x2 or 4x4 group of pixels in the original point cloud into one pixel in
11165a new point cloud. This downsample functionality is identical to the downsample method
11166on the PointCloud class. The averaging process reduces noise in the point cloud, but it
11167will not improve capture speed. To improve capture speed, consider using the subsampling
11168modes found in Settings/Sampling/Pixel.
11170Upsampling is used to increase the number of points in the point cloud. It is not possible
11171to upsample beyond the full resolution of the camera, so upsampling may only be used in
11172combination with the subsampling modes found in Settings/Sampling/Pixel. For example, one may
11173combine blueSubsample2x2 with upsample2x2 to obtain a point cloud that matches a full
11174resolution 2D capture, while retaining the speed benefits of capturing the point cloud with
11175blueSubsample2x2. Upsampling is achieved by expanding pixels in the original point cloud into
11176groups of 2x2 or 4x4 pixels in a new point cloud. Where possible, values are filled at the
11177new points based on an interpolation of the surrounding original points. The points in the
11178new point cloud that correspond to points in the original point cloud are left unchanged.
11179Note that upsampling will lead to four (upsample2x2) or sixteen (upsample4x4) times as many
11180pixels in the point cloud compared to no upsampling, so users should be aware of increased
11181computational cost related to copying and analyzing this data.
11203 return { ValueType::disabled,
11204 ValueType::downsample2x2,
11205 ValueType::downsample4x4,
11206 ValueType::upsample2x2,
11207 ValueType::upsample4x4 };
11215 : m_opt{ verifyValue(value) }
11242 return m_opt == other.m_opt;
11248 return m_opt != other.m_opt;
11254 return stream << value.
toString();
11258 void setFromString(
const std::string &value);
11260 constexpr ValueType
static verifyValue(
const ValueType &value)
11262 return value == ValueType::disabled || value == ValueType::downsample2x2
11263 || value == ValueType::downsample4x4 || value == ValueType::upsample2x2
11264 || value == ValueType::upsample4x4
11266 :
throw std::invalid_argument{
11267 "Invalid value: Mode{ "
11268 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
11273 std::optional<ValueType> m_opt;
11275 friend struct DataModel::Detail::Befriend<
Mode>;
11297 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11298 typename std::enable_if<
11299 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11303 template<typename... Args>
11307 using namespace Zivid::Detail::TypeTraits;
11310 AllArgsDecayedAreUnique<Args...>::value,
11311 "Found duplicate types among the arguments passed to Resampling(...). "
11312 "Types should be listed at most once.");
11314 set(std::forward<Args>(args)...);
11328 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11330 template<typename... Args>
11334 using namespace Zivid::Detail::TypeTraits;
11336 using AllArgsAreDescendantNodes =
11337 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11339 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11342 AllArgsDecayedAreUnique<Args...>::value,
11343 "Found duplicate types among the arguments passed to set(...). "
11344 "Types should be listed at most once.");
11346 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
11361 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
11363 template<typename... Args>
11367 using namespace Zivid::Detail::TypeTraits;
11369 using AllArgsAreDescendantNodes =
11370 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11372 AllArgsAreDescendantNodes::value,
11373 "All arguments passed to copyWith(...) must be descendant nodes.");
11376 AllArgsDecayedAreUnique<Args...>::value,
11377 "Found duplicate types among the arguments passed to copyWith(...). "
11378 "Types should be listed at most once.");
11380 auto copy{ *
this };
11381 copy.set(std::forward<Args>(args)...);
11406 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type =
11413 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
11420 template<
typename F>
11427 template<
typename F>
11445 return stream << value.
toString();
11449 void setFromString(
const std::string &value);
11451 void setFromString(
const std::string &fullPath,
const std::string &value);
11453 std::string getString(
const std::string &fullPath)
const;
11457 friend struct DataModel::Detail::Befriend<
Resampling>;
11576 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11577 typename std::enable_if<
11578 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11582 template<typename... Args>
11586 using namespace Zivid::Detail::TypeTraits;
11589 AllArgsDecayedAreUnique<Args...>::value,
11590 "Found duplicate types among the arguments passed to Processing(...). "
11591 "Types should be listed at most once.");
11593 set(std::forward<Args>(args)...);
11655 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11657 template<typename... Args>
11661 using namespace Zivid::Detail::TypeTraits;
11663 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11665 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11668 AllArgsDecayedAreUnique<Args...>::value,
11669 "Found duplicate types among the arguments passed to set(...). "
11670 "Types should be listed at most once.");
11672 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
11735 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
11737 template<typename... Args>
11741 using namespace Zivid::Detail::TypeTraits;
11743 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11745 AllArgsAreDescendantNodes::value,
11746 "All arguments passed to copyWith(...) must be descendant nodes.");
11749 AllArgsDecayedAreUnique<Args...>::value,
11750 "Found duplicate types among the arguments passed to copyWith(...). "
11751 "Types should be listed at most once.");
11753 auto copy{ *
this };
11754 copy.set(std::forward<Args>(args)...);
11780 m_color.
set(value);
11787 m_color.
set(value);
11794 m_color.
set(value);
11801 m_color.
set(value);
11808 m_color.
set(value);
11815 m_color.
set(value);
11822 m_color.
set(value);
11848 m_filters.
set(value);
11855 m_filters.
set(value);
11862 m_filters.
set(value);
11869 m_filters.
set(value);
11876 m_filters.
set(value);
11883 m_filters.
set(value);
11890 m_filters.
set(value);
11897 m_filters.
set(value);
11904 m_filters.
set(value);
11911 m_filters.
set(value);
11918 m_filters.
set(value);
11925 m_filters.
set(value);
11932 m_filters.
set(value);
11939 m_filters.
set(value);
11946 m_filters.
set(value);
11953 m_filters.
set(value);
11960 m_filters.
set(value);
11967 m_filters.
set(value);
11974 m_filters.
set(value);
11981 m_filters.
set(value);
11988 m_filters.
set(value);
11995 m_filters.
set(value);
12002 m_filters.
set(value);
12009 m_filters.
set(value);
12016 m_filters.
set(value);
12023 m_filters.
set(value);
12030 m_filters.
set(value);
12037 m_filters.
set(value);
12044 m_filters.
set(value);
12051 m_filters.
set(value);
12058 m_filters.
set(value);
12065 m_filters.
set(value);
12072 m_filters.
set(value);
12079 m_filters.
set(value);
12086 m_filters.
set(value);
12093 m_filters.
set(value);
12100 m_filters.
set(value);
12107 m_filters.
set(value);
12114 return m_resampling;
12120 return m_resampling;
12126 m_resampling = value;
12133 m_resampling.
set(value);
12139 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
12147 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
12155 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type =
12164 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
12173 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type =
12182 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type =
12191 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
12200 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
12208 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
12216 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
12224 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
12233 typename std::enable_if<
12234 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
12243 typename std::enable_if<
12244 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
12253 typename std::enable_if<
12254 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
12263 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
12272 typename std::enable_if<
12273 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
12282 typename std::enable_if<
12283 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
12292 typename std::enable_if<
12305 typename std::enable_if<
12318 typename std::enable_if<
12319 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
12328 typename std::enable_if<
12329 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
12340 typename std::enable_if<
12353 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
12361 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::
12370 typename std::enable_if<
12371 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
12380 typename std::enable_if<
12381 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
12390 typename std::enable_if<
12391 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
12400 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
12408 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::
12417 typename std::enable_if<
12418 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
12427 typename std::enable_if<
12428 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
12437 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
12446 typename std::enable_if<
12447 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
12457 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::type = 0>
12465 typename std::enable_if<
12466 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
12475 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
12483 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
12492 typename std::enable_if<
12493 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
12502 typename std::enable_if<
12503 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
12512 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type =
12521 typename std::enable_if<
12522 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
12531 typename std::enable_if<
12532 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
12541 typename std::enable_if<
12542 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
12551 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type =
12560 typename std::enable_if<
12561 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
12570 typename std::enable_if<
12571 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
12580 typename std::enable_if<
12581 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
12590 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling>::value,
int>::type = 0>
12593 return m_resampling;
12598 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type = 0>
12604 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
12610 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
12616 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
12619 return m_resampling;
12623 template<
typename F>
12632 template<
typename F>
12652 return stream << value.
toString();
12656 void setFromString(
const std::string &value);
12658 void setFromString(
const std::string &fullPath,
const std::string &value);
12660 std::string getString(
const std::string &fullPath)
const;
12666 friend struct DataModel::Detail::Befriend<
Processing>;
12680 static constexpr const char *path{
"RegionOfInterest" };
12683 static constexpr const char *name{
"RegionOfInterest" };
12686 static constexpr const char *description{ R
"description(Removes points outside the region of interest.
12714 static constexpr const char *path{
"RegionOfInterest/Box" };
12717 static constexpr const char *name{
"Box" };
12720 static constexpr const char *description{
12721 R
"description(Removes points outside the given three-dimensional box.
12723Using this feature may significantly speed up acquisition and processing time, because
12724one can avoid acquiring and processing data that is guaranteed to fall outside of the
12725region of interest. The degree of speed-up depends on the size and shape of the box.
12726Generally, a smaller box yields a greater speed-up.
12728The box is defined by three points: O, A and B. These points define two vectors,
12729OA that goes from PointO to PointA, and OB that goes from PointO to PointB.
12730This gives 4 points O, A, B and (O + OA + OB), that together form a
12731parallelogram in 3D.
12733Two extents can be provided, to extrude the parallelogram along the surface
12734normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped).
12735The surface normal vector is defined by the cross product OA x OB.
12749 static constexpr const char *path{
"RegionOfInterest/Box/Enabled" };
12752 static constexpr const char *name{
"Enabled" };
12755 static constexpr const char *description{
12756 R
"description(Enable or disable box filter.)description"
12767 return {
false,
true };
12796 return m_opt == other.m_opt;
12802 return m_opt != other.m_opt;
12808 return stream << value.
toString();
12812 void setFromString(
const std::string &value);
12814 std::optional<bool> m_opt;
12816 friend struct DataModel::Detail::Befriend<
Enabled>;
12829 static constexpr const char *path{
"RegionOfInterest/Box/Extents" };
12832 static constexpr const char *name{
"Extents" };
12835 static constexpr const char *description{
12836 R
"description(Two points on the normal describing the direction and distance from the plane from which the normal is derived.)description"
12866 explicit constexpr Extents(
double minValue,
double maxValue)
12873 return m_opt == other.m_opt;
12879 return m_opt != other.m_opt;
12885 return stream << value.
toString();
12889 void setFromString(
const std::string &value);
12891 std::optional<Zivid::Range<double>> m_opt;
12893 friend struct DataModel::Detail::Befriend<
Extents>;
12906 static constexpr const char *path{
"RegionOfInterest/Box/PointA" };
12909 static constexpr const char *name{
"PointA" };
12912 static constexpr const char *description{
12913 R
"description(A point such that the vector from PointO to PointA describes the first edge of the parallelogram.)description"
12943 explicit constexpr PointA(
float x,
float y,
float z)
12950 return m_opt == other.m_opt;
12956 return m_opt != other.m_opt;
12962 return stream << value.
toString();
12966 void setFromString(
const std::string &value);
12968 std::optional<Zivid::PointXYZ> m_opt;
12970 friend struct DataModel::Detail::Befriend<
PointA>;
12983 static constexpr const char *path{
"RegionOfInterest/Box/PointB" };
12986 static constexpr const char *name{
"PointB" };
12989 static constexpr const char *description{
12990 R
"description(A point such that the vector from PointO to PointB describes the second edge of the parallelogram.)description"
13020 explicit constexpr PointB(
float x,
float y,
float z)
13027 return m_opt == other.m_opt;
13033 return m_opt != other.m_opt;
13039 return stream << value.
toString();
13043 void setFromString(
const std::string &value);
13045 std::optional<Zivid::PointXYZ> m_opt;
13047 friend struct DataModel::Detail::Befriend<
PointB>;
13060 static constexpr const char *path{
"RegionOfInterest/Box/PointO" };
13063 static constexpr const char *name{
"PointO" };
13066 static constexpr const char *description{
13067 R
"description(The point at the intersection of two adjacent edges defining a parallelogram.)description"
13097 explicit constexpr PointO(
float x,
float y,
float z)
13104 return m_opt == other.m_opt;
13110 return m_opt != other.m_opt;
13116 return stream << value.
toString();
13120 void setFromString(
const std::string &value);
13122 std::optional<Zivid::PointXYZ> m_opt;
13124 friend struct DataModel::Detail::Befriend<
PointO>;
13155 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13156 typename std::enable_if<
13157 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13161 template<typename... Args>
13165 using namespace Zivid::Detail::TypeTraits;
13168 AllArgsDecayedAreUnique<Args...>::value,
13169 "Found duplicate types among the arguments passed to Box(...). "
13170 "Types should be listed at most once.");
13172 set(std::forward<Args>(args)...);
13190 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13192 template<typename... Args>
13196 using namespace Zivid::Detail::TypeTraits;
13198 using AllArgsAreDescendantNodes =
13199 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13201 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13204 AllArgsDecayedAreUnique<Args...>::value,
13205 "Found duplicate types among the arguments passed to set(...). "
13206 "Types should be listed at most once.");
13208 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13227 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13229 template<typename... Args>
13233 using namespace Zivid::Detail::TypeTraits;
13235 using AllArgsAreDescendantNodes =
13236 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13238 AllArgsAreDescendantNodes::value,
13239 "All arguments passed to copyWith(...) must be descendant nodes.");
13242 AllArgsDecayedAreUnique<Args...>::value,
13243 "Found duplicate types among the arguments passed to copyWith(...). "
13244 "Types should be listed at most once.");
13246 auto copy{ *
this };
13247 copy.set(std::forward<Args>(args)...);
13348 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::
13357 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::
13366 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::
13375 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::
13384 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::
13391 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13397 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13403 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
13409 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
13415 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
13422 template<
typename F>
13433 template<
typename F>
13455 return stream << value.
toString();
13459 void setFromString(
const std::string &value);
13461 void setFromString(
const std::string &fullPath,
const std::string &value);
13463 std::string getString(
const std::string &fullPath)
const;
13471 friend struct DataModel::Detail::Befriend<
Box>;
13486 static constexpr const char *path{
"RegionOfInterest/Depth" };
13489 static constexpr const char *name{
"Depth" };
13492 static constexpr const char *description{
13493 R
"description(Removes points that reside outside of a depth range, meaning that their Z coordinate
13494falls above a given maximum or below a given minimum.
13508 static constexpr const char *path{
"RegionOfInterest/Depth/Enabled" };
13511 static constexpr const char *name{
"Enabled" };
13514 static constexpr const char *description{
13515 R
"description(Enable or disable depth filter.)description"
13526 return {
false,
true };
13555 return m_opt == other.m_opt;
13561 return m_opt != other.m_opt;
13567 return stream << value.
toString();
13571 void setFromString(
const std::string &value);
13573 std::optional<bool> m_opt;
13575 friend struct DataModel::Detail::Befriend<
Enabled>;
13588 static constexpr const char *path{
"RegionOfInterest/Depth/Range" };
13591 static constexpr const char *name{
"Range" };
13594 static constexpr const char *description{
13595 R
"description(Specify the minimum and maximum Z value that will be included.)description"
13625 explicit constexpr Range(
double minValue,
double maxValue)
13632 return m_opt == other.m_opt;
13638 return m_opt != other.m_opt;
13644 return stream << value.
toString();
13648 void setFromString(
const std::string &value);
13650 std::optional<Zivid::Range<double>> m_opt;
13652 friend struct DataModel::Detail::Befriend<
Range>;
13656 std::tuple<Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range>;
13676 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13677 typename std::enable_if<
13678 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13682 template<typename... Args>
13686 using namespace Zivid::Detail::TypeTraits;
13689 AllArgsDecayedAreUnique<Args...>::value,
13690 "Found duplicate types among the arguments passed to Depth(...). "
13691 "Types should be listed at most once.");
13693 set(std::forward<Args>(args)...);
13708 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13710 template<typename... Args>
13714 using namespace Zivid::Detail::TypeTraits;
13716 using AllArgsAreDescendantNodes =
13717 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13719 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13722 AllArgsDecayedAreUnique<Args...>::value,
13723 "Found duplicate types among the arguments passed to set(...). "
13724 "Types should be listed at most once.");
13726 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13742 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13744 template<typename... Args>
13748 using namespace Zivid::Detail::TypeTraits;
13750 using AllArgsAreDescendantNodes =
13751 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13753 AllArgsAreDescendantNodes::value,
13754 "All arguments passed to copyWith(...) must be descendant nodes.");
13757 AllArgsDecayedAreUnique<Args...>::value,
13758 "Found duplicate types among the arguments passed to copyWith(...). "
13759 "Types should be listed at most once.");
13761 auto copy{ *
this };
13762 copy.set(std::forward<Args>(args)...);
13806 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::
13815 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::
13822 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13828 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13835 template<
typename F>
13843 template<
typename F>
13862 return stream << value.
toString();
13866 void setFromString(
const std::string &value);
13868 void setFromString(
const std::string &fullPath,
const std::string &value);
13870 std::string getString(
const std::string &fullPath)
const;
13875 friend struct DataModel::Detail::Befriend<
Depth>;
13914 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13915 typename std::enable_if<
13916 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13920 template<typename... Args>
13924 using namespace Zivid::Detail::TypeTraits;
13927 AllArgsDecayedAreUnique<Args...>::value,
13928 "Found duplicate types among the arguments passed to RegionOfInterest(...). "
13929 "Types should be listed at most once.");
13931 set(std::forward<Args>(args)...);
13953 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13955 template<typename... Args>
13959 using namespace Zivid::Detail::TypeTraits;
13961 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13963 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13966 AllArgsDecayedAreUnique<Args...>::value,
13967 "Found duplicate types among the arguments passed to set(...). "
13968 "Types should be listed at most once.");
13970 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13993 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13995 template<typename... Args>
13999 using namespace Zivid::Detail::TypeTraits;
14001 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14003 AllArgsAreDescendantNodes::value,
14004 "All arguments passed to copyWith(...) must be descendant nodes.");
14007 AllArgsDecayedAreUnique<Args...>::value,
14008 "Found duplicate types among the arguments passed to copyWith(...). "
14009 "Types should be listed at most once.");
14011 auto copy{ *
this };
14012 copy.set(std::forward<Args>(args)...);
14092 m_depth.
set(value);
14099 m_depth.
set(value);
14105 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
14113 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type =
14122 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type =
14131 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
14139 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
14147 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
14155 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
14163 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type =
14172 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type =
14179 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
14185 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
14192 template<
typename F>
14200 template<
typename F>
14219 return stream << value.
toString();
14223 void setFromString(
const std::string &value);
14225 void setFromString(
const std::string &fullPath,
const std::string &value);
14227 std::string getString(
const std::string &fullPath)
const;
14246 static constexpr const char *path{
"Sampling" };
14249 static constexpr const char *name{
"Sampling" };
14252 static constexpr const char *description{ R
"description(Sampling settings.
14277 static constexpr const char *path{
"Sampling/Color" };
14280 static constexpr const char *name{
"Color" };
14283 static constexpr const char *description{
14284 R
"description(Choose how to sample colors for the point cloud. The `rgb` option gives a 2D image
14285with full colors. The `grayscale` option gives a grayscale (r=g=b) 2D image, which
14286can be acquired faster than full colors. The `disabled` option gives no colors and
14287can allow for even faster captures.
14289The `grayscale` option is not available on all camera models.
14291This setting is deprecated as of SDK 2.14. This setting will be removed in the next SDK major
14292version (SDK 3.0). The recommended way to do a 2D+3D capture is to set a `Settings2D` object
14293in the `Settings/Color` field. Tip: If you want to convert an existing settings.yml file to
14294the recommended API, you can import the .yml file into Zivid Studio and then re-export it to
14313 return { ValueType::rgb, ValueType::disabled, ValueType::grayscale };
14321 : m_opt{ verifyValue(value) }
14348 return m_opt == other.m_opt;
14354 return m_opt != other.m_opt;
14360 return stream << value.
toString();
14364 void setFromString(
const std::string &value);
14366 constexpr ValueType
static verifyValue(
const ValueType &value)
14368 return value == ValueType::rgb || value == ValueType::disabled || value == ValueType::grayscale
14370 :
throw std::invalid_argument{
14371 "Invalid value: Color{ "
14372 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14376 std::optional<ValueType> m_opt;
14378 friend struct DataModel::Detail::Befriend<
Color>;
14402 static constexpr const char *path{
"Sampling/Pixel" };
14405 static constexpr const char *name{
"Pixel" };
14408 static constexpr const char *description{
14409 R
"description(For Zivid 2/2+, this setting controls whether to read out the full image sensor and
14410use white projector light or to subsample pixels for specific color channels with
14411corresponding projector light. Picking a specific color channel can help reduce noise
14412and effects of ambient light - projecting blue light is recommended.
14414For Zivid 2+R, the user does not have to set the projection color and should only
14415consider whether to scale the resolution `by2x2` or `by4x4`. Both of these modes
14416will boost the signal strength by about 4x compared to `all`, so the user should
14417consider a corresponding reduction in exposure time.
14419Sampling at a decreased resolution decreases capture time, as less data will be captured and processed.
14445 return { ValueType::all,
14446 ValueType::blueSubsample2x2,
14447 ValueType::redSubsample2x2,
14448 ValueType::blueSubsample4x4,
14449 ValueType::redSubsample4x4,
14451 ValueType::by4x4 };
14459 : m_opt{ verifyValue(value) }
14486 return m_opt == other.m_opt;
14492 return m_opt != other.m_opt;
14498 return stream << value.
toString();
14502 void setFromString(
const std::string &value);
14504 constexpr ValueType
static verifyValue(
const ValueType &value)
14506 return value == ValueType::all || value == ValueType::blueSubsample2x2
14507 || value == ValueType::redSubsample2x2 || value == ValueType::blueSubsample4x4
14508 || value == ValueType::redSubsample4x4 || value == ValueType::by2x2
14509 || value == ValueType::by4x4
14511 :
throw std::invalid_argument{
14512 "Invalid value: Pixel{ "
14513 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14517 std::optional<ValueType> m_opt;
14519 friend struct DataModel::Detail::Befriend<
Pixel>;
14522 using Descendants = std::tuple<Settings::Sampling::Color, Settings::Sampling::Pixel>;
14542 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14543 typename std::enable_if<
14544 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
14548 template<typename... Args>
14552 using namespace Zivid::Detail::TypeTraits;
14555 AllArgsDecayedAreUnique<Args...>::value,
14556 "Found duplicate types among the arguments passed to Sampling(...). "
14557 "Types should be listed at most once.");
14559 set(std::forward<Args>(args)...);
14574 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
14576 template<typename... Args>
14580 using namespace Zivid::Detail::TypeTraits;
14582 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14584 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
14587 AllArgsDecayedAreUnique<Args...>::value,
14588 "Found duplicate types among the arguments passed to set(...). "
14589 "Types should be listed at most once.");
14591 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
14607 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
14609 template<typename... Args>
14613 using namespace Zivid::Detail::TypeTraits;
14615 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14617 AllArgsAreDescendantNodes::value,
14618 "All arguments passed to copyWith(...) must be descendant nodes.");
14621 AllArgsDecayedAreUnique<Args...>::value,
14622 "Found duplicate types among the arguments passed to copyWith(...). "
14623 "Types should be listed at most once.");
14625 auto copy{ *
this };
14626 copy.set(std::forward<Args>(args)...);
14670 typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
14678 typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
14684 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
14690 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
14697 template<
typename F>
14705 template<
typename F>
14724 return stream << value.
toString();
14728 void setFromString(
const std::string &value);
14730 void setFromString(
const std::string &fullPath,
const std::string &value);
14732 std::string getString(
const std::string &fullPath)
const;
14737 friend struct DataModel::Detail::Befriend<
Sampling>;
14911 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14912 typename std::enable_if<
14913 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
14916 template<typename... Args>
14920 using namespace Zivid::Detail::TypeTraits;
14923 AllArgsDecayedAreUnique<Args...>::value,
14924 "Found duplicate types among the arguments passed to Settings(...). "
14925 "Types should be listed at most once.");
14927 set(std::forward<Args>(args)...);
15008 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
15010 template<typename... Args>
15014 using namespace Zivid::Detail::TypeTraits;
15016 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
15018 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
15021 AllArgsDecayedAreUnique<Args...>::value,
15022 "Found duplicate types among the arguments passed to set(...). "
15023 "Types should be listed at most once.");
15025 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
15107 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
15109 template<typename... Args>
15113 using namespace Zivid::Detail::TypeTraits;
15115 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
15117 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
15120 AllArgsDecayedAreUnique<Args...>::value,
15121 "Found duplicate types among the arguments passed to copyWith(...). "
15122 "Types should be listed at most once.");
15124 auto copy{ *
this };
15125 copy.set(std::forward<Args>(args)...);
15132 return m_acquisitions;
15138 return m_acquisitions;
15144 m_acquisitions = value;
15170 return m_diagnostics;
15176 return m_diagnostics;
15182 m_diagnostics = value;
15189 m_diagnostics.
set(value);
15215 return m_processing;
15221 return m_processing;
15227 m_processing = value;
15234 m_processing.
set(value);
15241 m_processing.
set(value);
15248 m_processing.
set(value);
15255 m_processing.
set(value);
15262 m_processing.
set(value);
15269 m_processing.
set(value);
15276 m_processing.
set(value);
15283 m_processing.
set(value);
15290 m_processing.
set(value);
15297 m_processing.
set(value);
15304 m_processing.
set(value);
15311 m_processing.
set(value);
15318 m_processing.
set(value);
15325 m_processing.
set(value);
15332 m_processing.
set(value);
15339 m_processing.
set(value);
15346 m_processing.
set(value);
15353 m_processing.
set(value);
15360 m_processing.
set(value);
15367 m_processing.
set(value);
15374 m_processing.
set(value);
15381 m_processing.
set(value);
15388 m_processing.
set(value);
15395 m_processing.
set(value);
15402 m_processing.
set(value);
15409 m_processing.
set(value);
15416 m_processing.
set(value);
15423 m_processing.
set(value);
15430 m_processing.
set(value);
15437 m_processing.
set(value);
15444 m_processing.
set(value);
15451 m_processing.
set(value);
15458 m_processing.
set(value);
15465 m_processing.
set(value);
15472 m_processing.
set(value);
15479 m_processing.
set(value);
15486 m_processing.
set(value);
15493 m_processing.
set(value);
15500 m_processing.
set(value);
15507 m_processing.
set(value);
15514 m_processing.
set(value);
15521 m_processing.
set(value);
15528 m_processing.
set(value);
15535 m_processing.
set(value);
15542 m_processing.
set(value);
15549 m_processing.
set(value);
15556 m_processing.
set(value);
15563 m_processing.
set(value);
15570 m_processing.
set(value);
15577 return m_regionOfInterest;
15583 return m_regionOfInterest;
15589 m_regionOfInterest = value;
15596 m_regionOfInterest.
set(value);
15603 m_regionOfInterest.
set(value);
15610 m_regionOfInterest.
set(value);
15617 m_regionOfInterest.
set(value);
15624 m_regionOfInterest.
set(value);
15631 m_regionOfInterest.
set(value);
15638 m_regionOfInterest.
set(value);
15645 m_regionOfInterest.
set(value);
15652 m_regionOfInterest.
set(value);
15671 m_sampling = value;
15678 m_sampling.
set(value);
15685 m_sampling.
set(value);
15689 template<typename T, typename std::enable_if<std::is_same<T, Settings::Acquisitions>::value,
int>::type = 0>
15692 return m_acquisitions;
15695 template<typename T, typename std::enable_if<std::is_same<T, Settings::Color>::value,
int>::type = 0>
15701 template<typename T, typename std::enable_if<std::is_same<T, Settings::Diagnostics>::value,
int>::type = 0>
15704 return m_diagnostics;
15709 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
15715 template<typename T, typename std::enable_if<std::is_same<T, Settings::Engine>::value,
int>::type = 0>
15721 template<typename T, typename std::enable_if<std::is_same<T, Settings::Processing>::value,
int>::type = 0>
15724 return m_processing;
15729 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
15737 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
15745 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type = 0>
15753 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::type = 0>
15761 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
15769 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type = 0>
15777 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
15786 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
15794 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
15802 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
15810 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
15819 typename std::enable_if<
15820 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
15829 typename std::enable_if<
15830 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
15839 typename std::enable_if<
15840 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
15849 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::type = 0>
15857 typename std::enable_if<
15858 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
15867 typename std::enable_if<
15868 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
15877 typename std::enable_if<
15878 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled>::
15883 return m_processing
15889 typename std::enable_if<
15890 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength>::
15895 return m_processing
15901 typename std::enable_if<
15902 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
15911 typename std::enable_if<
15912 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
15917 return m_processing
15923 typename std::enable_if<
15924 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold>::
15929 return m_processing
15935 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
15943 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::type = 0>
15951 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
int>::
15961 enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
int>::type = 0>
15969 typename std::enable_if<
15970 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
15979 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
15987 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type =
15996 typename std::enable_if<
15997 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
16006 typename std::enable_if<
16007 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
16016 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::type =
16026 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
int>::type = 0>
16034 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::
16043 typename std::enable_if<
16044 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
16053 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
16061 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
16070 typename std::enable_if<
16071 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
16080 typename std::enable_if<
16081 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
16090 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type = 0>
16098 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
int>::
16107 typename std::enable_if<
16108 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
16117 typename std::enable_if<
16118 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
16127 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type = 0>
16135 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
int>::
16144 typename std::enable_if<
16145 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
16154 typename std::enable_if<
16155 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
16164 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling>::value,
int>::type = 0>
16172 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type = 0>
16178 template<typename T, typename std::enable_if<std::is_same<T, Settings::RegionOfInterest>::value,
int>::type = 0>
16181 return m_regionOfInterest;
16186 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
16194 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type = 0>
16202 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type = 0>
16210 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
16218 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
16226 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
16234 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
16242 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type = 0>
16250 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type = 0>
16256 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling>::value,
int>::type = 0>
16262 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
16268 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
16274 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
16277 return m_acquisitions;
16280 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
16286 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
16289 return m_diagnostics;
16292 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
16298 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
16301 return m_processing;
16304 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
16307 return m_regionOfInterest;
16310 template<size_t i, typename std::enable_if<i == 6, int>::type = 0>
16317 template<
typename F>
16325 f(m_regionOfInterest);
16330 template<
typename F>
16338 f(m_regionOfInterest);
16354 return stream << value.
toString();
16358 void save(
const std::string &fileName)
const;
16361 void load(
const std::string &fileName);
16364 void setFromString(
const std::string &value);
16366 void setFromString(
const std::string &fullPath,
const std::string &value);
16368 std::string getString(
const std::string &fullPath)
const;
16378 friend struct DataModel::Detail::Befriend<
Settings>;
16383 struct Settings::Version<27>
16406# pragma warning(pop)
16410# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
16415 struct tuple_size<
Zivid::Settings::Diagnostics> : integral_constant<size_t, 1>
16419 struct tuple_element<i,
Zivid::Settings::Diagnostics>
16421 static_assert(i < tuple_size<Zivid::Settings::Diagnostics>::value,
"Index must be less than 1");
16424 =
decltype(declval<Zivid::Settings::Diagnostics>().get<i>());
16428 struct tuple_size<
Zivid::Settings::Processing> : integral_constant<size_t, 3>
16432 struct tuple_element<i,
Zivid::Settings::Processing>
16434 static_assert(i < tuple_size<Zivid::Settings::Processing>::value,
"Index must be less than 3");
16437 =
decltype(declval<Zivid::Settings::Processing>().get<i>());
16441 struct tuple_size<
Zivid::Settings::Processing::Color> : integral_constant<size_t, 3>
16445 struct tuple_element<i,
Zivid::Settings::Processing::Color>
16447 static_assert(i < tuple_size<Zivid::Settings::Processing::Color>::value,
"Index must be less than 3");
16450 =
decltype(declval<Zivid::Settings::Processing::Color>().get<i>());
16454 struct tuple_size<
Zivid::Settings::Processing::Color::Balance> : integral_constant<size_t, 3>
16458 struct tuple_element<i,
Zivid::Settings::Processing::Color::Balance>
16460 static_assert(i < tuple_size<Zivid::Settings::Processing::Color::Balance>::value,
"Index must be less than 3");
16463 =
decltype(declval<Zivid::Settings::Processing::Color::Balance>().get<i>());
16467 struct tuple_size<
Zivid::Settings::Processing::Color::Experimental> : integral_constant<size_t, 1>
16471 struct tuple_element<i,
Zivid::Settings::Processing::Color::Experimental>
16474 i < tuple_size<Zivid::Settings::Processing::Color::Experimental>::value,
16475 "Index must be less than 1");
16478 =
decltype(declval<Zivid::Settings::Processing::Color::Experimental>().get<i>());
16482 struct tuple_size<
Zivid::Settings::Processing::Filters> : integral_constant<size_t, 7>
16486 struct tuple_element<i,
Zivid::Settings::Processing::Filters>
16488 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters>::value,
"Index must be less than 7");
16491 =
decltype(declval<Zivid::Settings::Processing::Filters>().get<i>());
16495 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster> : integral_constant<size_t, 1>
16499 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster>
16502 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster>::value,
16503 "Index must be less than 1");
16506 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster>().get<i>());
16510 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster::Removal> : integral_constant<size_t, 3>
16514 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster::Removal>
16517 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster::Removal>::value,
16518 "Index must be less than 3");
16521 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster::Removal>().get<i>());
16525 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental> : integral_constant<size_t, 1>
16529 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental>
16532 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental>::value,
16533 "Index must be less than 1");
16536 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental>().get<i>());
16540 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16541 : integral_constant<size_t, 2>
16545 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16548 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
16549 "Index must be less than 2");
16552 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>().get<i>());
16556 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16557 : integral_constant<size_t, 2>
16561 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16564 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
16565 "Index must be less than 2");
16568 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>()
16573 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16574 : integral_constant<size_t, 2>
16578 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16581 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
16582 "Index must be less than 2");
16585 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>()
16590 struct tuple_size<
Zivid::Settings::Processing::Filters::Hole> : integral_constant<size_t, 1>
16594 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Hole>
16596 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Hole>::value,
"Index must be less than 1");
16599 =
decltype(declval<Zivid::Settings::Processing::Filters::Hole>().get<i>());
16603 struct tuple_size<
Zivid::Settings::Processing::Filters::Hole::Repair> : integral_constant<size_t, 3>
16607 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Hole::Repair>
16610 i < tuple_size<Zivid::Settings::Processing::Filters::Hole::Repair>::value,
16611 "Index must be less than 3");
16614 =
decltype(declval<Zivid::Settings::Processing::Filters::Hole::Repair>().get<i>());
16618 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise> : integral_constant<size_t, 3>
16622 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise>
16624 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Noise>::value,
"Index must be less than 3");
16627 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise>().get<i>());
16631 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Removal> : integral_constant<size_t, 2>
16635 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Removal>
16638 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Removal>::value,
16639 "Index must be less than 2");
16642 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Removal>().get<i>());
16646 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Repair> : integral_constant<size_t, 1>
16650 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Repair>
16653 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Repair>::value,
16654 "Index must be less than 1");
16657 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Repair>().get<i>());
16661 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Suppression> : integral_constant<size_t, 1>
16665 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Suppression>
16668 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Suppression>::value,
16669 "Index must be less than 1");
16672 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Suppression>().get<i>());
16676 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier> : integral_constant<size_t, 1>
16680 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier>
16683 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier>::value,
16684 "Index must be less than 1");
16687 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier>().get<i>());
16691 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier::Removal> : integral_constant<size_t, 2>
16695 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier::Removal>
16698 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier::Removal>::value,
16699 "Index must be less than 2");
16702 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier::Removal>().get<i>());
16706 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection> : integral_constant<size_t, 1>
16710 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection>
16713 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection>::value,
16714 "Index must be less than 1");
16717 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection>().get<i>());
16721 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal> : integral_constant<size_t, 2>
16725 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal>
16728 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal>::value,
16729 "Index must be less than 2");
16732 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal>().get<i>());
16736 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing> : integral_constant<size_t, 1>
16740 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing>
16743 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing>::value,
16744 "Index must be less than 1");
16747 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing>().get<i>());
16751 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing::Gaussian> : integral_constant<size_t, 2>
16755 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing::Gaussian>
16758 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>::value,
16759 "Index must be less than 2");
16762 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>().get<i>());
16766 struct tuple_size<
Zivid::Settings::Processing::Resampling> : integral_constant<size_t, 1>
16770 struct tuple_element<i,
Zivid::Settings::Processing::Resampling>
16772 static_assert(i < tuple_size<Zivid::Settings::Processing::Resampling>::value,
"Index must be less than 1");
16775 =
decltype(declval<Zivid::Settings::Processing::Resampling>().get<i>());
16779 struct tuple_size<
Zivid::Settings::RegionOfInterest> : integral_constant<size_t, 2>
16783 struct tuple_element<i,
Zivid::Settings::RegionOfInterest>
16785 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest>::value,
"Index must be less than 2");
16788 =
decltype(declval<Zivid::Settings::RegionOfInterest>().get<i>());
16792 struct tuple_size<
Zivid::Settings::RegionOfInterest::Box> : integral_constant<size_t, 5>
16796 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Box>
16798 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Box>::value,
"Index must be less than 5");
16801 =
decltype(declval<Zivid::Settings::RegionOfInterest::Box>().get<i>());
16805 struct tuple_size<
Zivid::Settings::RegionOfInterest::Depth> : integral_constant<size_t, 2>
16809 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Depth>
16811 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Depth>::value,
"Index must be less than 2");
16814 =
decltype(declval<Zivid::Settings::RegionOfInterest::Depth>().get<i>());
16818 struct tuple_size<
Zivid::Settings::Sampling> : integral_constant<size_t, 2>
16822 struct tuple_element<i,
Zivid::Settings::Sampling>
16824 static_assert(i < tuple_size<Zivid::Settings::Sampling>::value,
"Index must be less than 2");
16827 =
decltype(declval<Zivid::Settings::Sampling>().get<i>());
16831 struct tuple_size<
Zivid::Settings> : integral_constant<size_t, 7>
16835 struct tuple_element<i,
Zivid::Settings>
16837 static_assert(i < tuple_size<Zivid::Settings>::value,
"Index must be less than 7");
16840 =
decltype(declval<Zivid::Settings>().get<i>());
16849#if defined(__has_include) && !defined(NO_DOC)
16850# if __has_include("Zivid/SettingsInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
16851# include "Zivid/SettingsInternal.h"
#define ZIVID_CORE_EXPORT
Definition CoreExport.h:56
Class describing a range of values for a given type T.
Definition Range.h:75
Settings used when capturing 2D images with a Zivid camera.
Definition Settings2D.h:79
Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to the effe...
Definition Settings.h:135
bool operator<(const Aperture &other) const
Comparison operator.
Definition Settings.h:198
friend std::ostream & operator<<(std::ostream &stream, const Aperture &value)
Operator to serialize the value to a stream.
Definition Settings.h:222
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:210
bool operator>(const Aperture &other) const
Comparison operator.
Definition Settings.h:204
bool operator==(const Aperture &other) const
Comparison operator.
Definition Settings.h:186
bool operator>=(const Aperture &other) const
Comparison operator.
Definition Settings.h:216
bool operator!=(const Aperture &other) const
Comparison operator.
Definition Settings.h:192
Aperture()=default
Default constructor.
constexpr Aperture(double value)
Constructor.
Definition Settings.h:166
double ValueType
The type of the underlying value.
Definition Settings.h:154
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Aperture.
Definition Settings.h:157
bool hasValue() const
Check if the value is set.
Brightness controls the light output from the projector.
Definition Settings.h:258
bool operator<=(const Brightness &other) const
Comparison operator.
Definition Settings.h:341
bool operator!=(const Brightness &other) const
Comparison operator.
Definition Settings.h:323
bool operator>=(const Brightness &other) const
Comparison operator.
Definition Settings.h:347
bool operator<(const Brightness &other) const
Comparison operator.
Definition Settings.h:329
bool operator>(const Brightness &other) const
Comparison operator.
Definition Settings.h:335
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Brightness.
Definition Settings.h:288
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:353
constexpr Brightness(double value)
Constructor.
Definition Settings.h:297
bool hasValue() const
Check if the value is set.
Brightness()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:285
bool operator==(const Brightness &other) const
Comparison operator.
Definition Settings.h:317
Exposure time for each single image in the measurement. Affects frame rate.
Definition Settings.h:379
bool operator>=(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:458
bool operator<(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:440
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:446
std::chrono::microseconds ValueType
The type of the underlying value.
Definition Settings.h:396
bool operator==(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:428
bool operator!=(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:434
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:399
constexpr ExposureTime(std::chrono::microseconds value)
Constructor.
Definition Settings.h:408
friend std::ostream & operator<<(std::ostream &stream, const ExposureTime &value)
Operator to serialize the value to a stream.
Definition Settings.h:464
bool operator<=(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:452
Analog gain in the camera.
Definition Settings.h:491
bool operator==(const Gain &other) const
Comparison operator.
Definition Settings.h:538
friend std::ostream & operator<<(std::ostream &stream, const Gain &value)
Operator to serialize the value to a stream.
Definition Settings.h:574
constexpr Gain(double value)
Constructor.
Definition Settings.h:518
bool operator>=(const Gain &other) const
Comparison operator.
Definition Settings.h:568
void reset()
Reset the node to unset state.
bool operator<=(const Gain &other) const
Comparison operator.
Definition Settings.h:562
static constexpr Range< double > validRange()
The range of valid values for Gain.
Definition Settings.h:509
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:506
std::string toString() const
Get the value as string.
bool operator!=(const Gain &other) const
Comparison operator.
Definition Settings.h:544
bool operator>(const Gain &other) const
Comparison operator.
Definition Settings.h:556
bool operator<(const Gain &other) const
Comparison operator.
Definition Settings.h:550
Settings for a single acquisition.
Definition Settings.h:115
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:848
Acquisition & set(const Aperture &value)
Set Aperture.
Definition Settings.h:727
const Aperture & aperture() const
Get Aperture.
Definition Settings.h:715
std::tuple< Settings::Acquisition::Aperture, Settings::Acquisition::Brightness, Settings::Acquisition::ExposureTime, Settings::Acquisition::Gain > Descendants
Definition Settings.h:596
Gain & gain()
Get Gain.
Definition Settings.h:778
const Settings::Acquisition::Aperture & get() const
Definition Settings.h:793
Brightness & brightness()
Get Brightness.
Definition Settings.h:740
friend std::ostream & operator<<(std::ostream &stream, const Acquisition &value)
Operator to send the value as string to a stream.
Definition Settings.h:876
bool operator==(const Acquisition &other) const
Equality operator.
const Settings::Acquisition::ExposureTime & get() const
Definition Settings.h:809
bool operator!=(const Acquisition &other) const
Inequality operator.
const ExposureTime & exposureTime() const
Get ExposureTime.
Definition Settings.h:753
Acquisition & set(const Brightness &value)
Set Brightness.
Definition Settings.h:746
Acquisition & set(const ExposureTime &value)
Set ExposureTime.
Definition Settings.h:765
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:660
const Brightness & brightness() const
Get Brightness.
Definition Settings.h:734
const Settings::Acquisition::Gain & get() const
Definition Settings.h:817
Acquisition & set(const Gain &value)
Set Gain.
Definition Settings.h:784
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:695
Aperture & aperture()
Get Aperture.
Definition Settings.h:721
const Settings::Acquisition::Brightness & get() const
Definition Settings.h:801
ExposureTime & exposureTime()
Get ExposureTime.
Definition Settings.h:759
const Gain & gain() const
Get Gain.
Definition Settings.h:772
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:858
List of Acquisition objects.
Definition Settings.h:900
bool operator!=(const Acquisitions &other) const
Comparison operator.
Definition Settings.h:1038
std::vector< Settings::Acquisition >::const_iterator ConstIterator
Constant iterator type for Acquisitions.
Definition Settings.h:1017
Iterator begin() noexcept
Returns an iterator to the first element of the list.
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:999
std::vector< Settings::Acquisition >::iterator Iterator
Iterator type for Acquisitions.
Definition Settings.h:1008
const Settings::Acquisition & at(std::size_t pos) const
Returns a const reference to the element at position pos in the list.
Acquisitions()=default
Default constructor.
Acquisitions(std::initializer_list< Settings::Acquisition > value)
Constructor.
Definition Settings.h:932
friend std::ostream & operator<<(std::ostream &stream, const Acquisitions &value)
Operator to serialize the value to a stream.
Definition Settings.h:1044
void forEach(const F &f)
Run the given function on each element in the list.
Definition Settings.h:989
Acquisitions(std::vector< Settings::Acquisition > value)
Constructor.
Definition Settings.h:927
std::vector< Settings::Acquisition > ValueType
The type of the underlying value.
Definition Settings.h:915
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Acquisitions.
Definition Settings.h:918
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.
Specify the settings used for the 2D color image when doing a 2D+3D capture. The value type of this n...
Definition Settings.h:1081
std::string toString() const
Get the value as string.
Color()=default
Default constructor.
void reset()
Reset the node to unset state.
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to serialize the value to a stream.
Definition Settings.h:1162
const Zivid::Settings2D & value() const
Get the value.
Color(Zivid::Settings2D value)
Constructor.
Definition Settings.h:1124
Zivid::Settings2D & value()
Get a mutable reference to the value.
bool hasValue() const
Check if the value is set.
bool operator==(const Color &other) const
Comparison operator.
Definition Settings.h:1150
bool operator!=(const Color &other) const
Comparison operator.
Definition Settings.h:1156
Enable or disable diagnostics.
Definition Settings.h:1211
static const Enabled no
Off/disabled.
Definition Settings.h:1228
bool hasValue() const
Check if the value is set.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:1231
void reset()
Reset the node to unset state.
Enabled()=default
Default constructor.
bool ValueType
The type of the underlying value.
Definition Settings.h:1226
static const Enabled yes
On/enabled.
Definition Settings.h:1227
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:1260
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:1272
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:1240
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:1266
std::string toString() const
Get the value as string.
When Diagnostics is enabled, additional diagnostic data is recorded during capture and included when ...
Definition Settings.h:1185
friend std::ostream & operator<<(std::ostream &stream, const Diagnostics &value)
Operator to send the value as string to a stream.
Definition Settings.h:1447
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:1425
std::tuple< Settings::Diagnostics::Enabled > Descendants
Definition Settings.h:1285
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:1371
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:1432
Diagnostics()
Default constructor.
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:1397
bool operator==(const Diagnostics &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:1339
const Settings::Diagnostics::Enabled & get() const
Definition Settings.h:1412
bool operator!=(const Diagnostics &other) const
Inequality operator.
Diagnostics & set(const Enabled &value)
Set Enabled.
Definition Settings.h:1403
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:1391
Set the Zivid Vision Engine to use.
Definition Settings.h:1490
std::string toString() const
Get the value as string.
bool operator==(const Engine &other) const
Comparison operator.
Definition Settings.h:1575
bool operator!=(const Engine &other) const
Comparison operator.
Definition Settings.h:1581
static const Engine omni
omni
Definition Settings.h:1536
friend std::ostream & operator<<(std::ostream &stream, const Engine &value)
Operator to serialize the value to a stream.
Definition Settings.h:1587
static const Engine sage
sage
Definition Settings.h:1537
static std::set< ValueType > validValues()
All valid values of Engine.
Definition Settings.h:1540
void reset()
Reset the node to unset state.
ValueType value() const
Get the value.
static const Engine stripe
stripe
Definition Settings.h:1535
static const Engine phase
phase
Definition Settings.h:1534
Engine()=default
Default constructor.
ValueType
The type of the underlying value.
Definition Settings.h:1528
constexpr Engine(ValueType value)
Constructor.
Definition Settings.h:1549
bool hasValue() const
Check if the value is set.
friend std::ostream & operator<<(std::ostream &stream, const Engine::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:1569
Digital gain applied to blue channel.
Definition Settings.h:1690
friend std::ostream & operator<<(std::ostream &stream, const Blue &value)
Operator to serialize the value to a stream.
Definition Settings.h:1780
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:1744
bool operator>=(const Blue &other) const
Comparison operator.
Definition Settings.h:1774
std::string toString() const
Get the value as string.
bool operator<(const Blue &other) const
Comparison operator.
Definition Settings.h:1756
constexpr Blue(double value)
Constructor.
Definition Settings.h:1724
Blue()=default
Default constructor.
bool operator<=(const Blue &other) const
Comparison operator.
Definition Settings.h:1768
bool operator!=(const Blue &other) const
Comparison operator.
Definition Settings.h:1750
bool hasValue() const
Check if the value is set.
double ValueType
The type of the underlying value.
Definition Settings.h:1712
bool operator>(const Blue &other) const
Comparison operator.
Definition Settings.h:1762
static constexpr Range< double > validRange()
The range of valid values for Blue.
Definition Settings.h:1715
Digital gain applied to green channel.
Definition Settings.h:1814
void reset()
Reset the node to unset state.
bool operator>(const Green &other) const
Comparison operator.
Definition Settings.h:1886
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:1904
double ValueType
The type of the underlying value.
Definition Settings.h:1836
bool operator>=(const Green &other) const
Comparison operator.
Definition Settings.h:1898
constexpr Green(double value)
Constructor.
Definition Settings.h:1848
bool operator==(const Green &other) const
Comparison operator.
Definition Settings.h:1868
bool operator!=(const Green &other) const
Comparison operator.
Definition Settings.h:1874
Green()=default
Default constructor.
std::string toString() const
Get the value as string.
bool operator<(const Green &other) const
Comparison operator.
Definition Settings.h:1880
static constexpr Range< double > validRange()
The range of valid values for Green.
Definition Settings.h:1839
bool operator<=(const Green &other) const
Comparison operator.
Definition Settings.h:1892
Digital gain applied to red channel.
Definition Settings.h:1938
bool operator!=(const Red &other) const
Comparison operator.
Definition Settings.h:1998
constexpr Red(double value)
Constructor.
Definition Settings.h:1972
friend std::ostream & operator<<(std::ostream &stream, const Red &value)
Operator to serialize the value to a stream.
Definition Settings.h:2028
bool operator>=(const Red &other) const
Comparison operator.
Definition Settings.h:2022
double ValueType
The type of the underlying value.
Definition Settings.h:1960
static constexpr Range< double > validRange()
The range of valid values for Red.
Definition Settings.h:1963
double value() const
Get the value.
bool operator==(const Red &other) const
Comparison operator.
Definition Settings.h:1992
Red()=default
Default constructor.
bool operator<(const Red &other) const
Comparison operator.
Definition Settings.h:2004
void reset()
Reset the node to unset state.
bool operator>(const Red &other) const
Comparison operator.
Definition Settings.h:2010
bool hasValue() const
Check if the value is set.
bool operator<=(const Red &other) const
Comparison operator.
Definition Settings.h:2016
std::string toString() const
Get the value as string.
Color balance settings.
Definition Settings.h:1665
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:2112
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:2274
bool operator!=(const Balance &other) const
Inequality operator.
Balance & set(const Red &value)
Set Red.
Definition Settings.h:2219
Green & green()
Get Green.
Definition Settings.h:2194
std::string toString() const
Get the value as string.
Red & red()
Get Red.
Definition Settings.h:2213
std::tuple< Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red > Descendants
Definition Settings.h:2051
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:2148
Balance & set(const Blue &value)
Set Blue.
Definition Settings.h:2181
Blue & blue()
Get Blue.
Definition Settings.h:2175
const Red & red() const
Get Red.
Definition Settings.h:2207
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:2283
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:2240
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:2249
Balance & set(const Green &value)
Set Green.
Definition Settings.h:2200
const Green & green() const
Get Green.
Definition Settings.h:2188
friend std::ostream & operator<<(std::ostream &stream, const Balance &value)
Operator to send the value as string to a stream.
Definition Settings.h:2300
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:2230
const Blue & blue() const
Get Blue.
Definition Settings.h:2169
Balance()
Default constructor.
This setting controls how the color image is computed.
Definition Settings.h:2370
static const Mode toneMapping
toneMapping
Definition Settings.h:2422
ValueType value() const
Get the value.
std::string toString() const
Get the value as string.
static const Mode automatic
automatic
Definition Settings.h:2420
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream.
Definition Settings.h:2472
void reset()
Reset the node to unset state.
static const Mode useFirstAcquisition
useFirstAcquisition
Definition Settings.h:2421
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:2466
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:2460
ValueType
The type of the underlying value.
Definition Settings.h:2415
bool hasValue() const
Check if the value is set.
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:2434
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:2425
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:2454
Experimental color settings. These may be renamed, moved or deleted in the future.
Definition Settings.h:2323
std::tuple< Settings::Processing::Color::Experimental::Mode > Descendants
Definition Settings.h:2497
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:2664
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:2649
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:2551
std::string toString() const
Get the value as string.
Experimental & set(const Mode &value)
Set Mode.
Definition Settings.h:2618
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:2642
bool operator==(const Experimental &other) const
Equality operator.
Experimental()
Default constructor.
Mode & mode()
Get Mode.
Definition Settings.h:2612
const Mode & mode() const
Get Mode.
Definition Settings.h:2606
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:2629
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:2585
Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma greater t...
Definition Settings.h:2693
friend std::ostream & operator<<(std::ostream &stream, const Gamma &value)
Operator to serialize the value to a stream.
Definition Settings.h:2786
double value() const
Get the value.
bool operator>(const Gamma &other) const
Comparison operator.
Definition Settings.h:2768
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Gamma.
Definition Settings.h:2721
Gamma()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:2718
bool hasValue() const
Check if the value is set.
bool operator>=(const Gamma &other) const
Comparison operator.
Definition Settings.h:2780
constexpr Gamma(double value)
Constructor.
Definition Settings.h:2730
bool operator!=(const Gamma &other) const
Comparison operator.
Definition Settings.h:2756
bool operator<(const Gamma &other) const
Comparison operator.
Definition Settings.h:2762
std::string toString() const
Get the value as string.
bool operator==(const Gamma &other) const
Comparison operator.
Definition Settings.h:2750
bool operator<=(const Gamma &other) const
Comparison operator.
Definition Settings.h:2774
Color settings.
Definition Settings.h:1641
Color & set(const Gamma &value)
Set Gamma.
Definition Settings.h:3019
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:3083
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:3056
bool operator==(const Color &other) const
Equality operator.
Color & set(const Experimental::Mode &value)
Set Experimental::Mode.
Definition Settings.h:3000
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:3047
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:2881
Color & set(const Experimental &value)
Set Experimental.
Definition Settings.h:2993
Color & set(const Balance &value)
Set Balance.
Definition Settings.h:2953
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to send the value as string to a stream.
Definition Settings.h:3134
const Balance & balance() const
Get Balance.
Definition Settings.h:2941
const Experimental & experimental() const
Get Experimental.
Definition Settings.h:2981
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:3117
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:3065
Color & set(const Balance::Green &value)
Set Balance::Green.
Definition Settings.h:2967
Experimental & experimental()
Get Experimental.
Definition Settings.h:2987
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:2808
Color & set(const Balance::Blue &value)
Set Balance::Blue.
Definition Settings.h:2960
Gamma & gamma()
Get Gamma.
Definition Settings.h:3013
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:2920
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:3075
Color & set(const Balance::Red &value)
Set Balance::Red.
Definition Settings.h:2974
const Gamma & gamma() const
Get Gamma.
Definition Settings.h:3007
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:3029
Balance & balance()
Get Balance.
Definition Settings.h:2947
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:3108
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:3038
Enable or disable cluster removal.
Definition Settings.h:3215
bool hasValue() const
Check if the value is set.
bool ValueType
The type of the underlying value.
Definition Settings.h:3232
static const Enabled no
Off/disabled.
Definition Settings.h:3234
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:3246
void reset()
Reset the node to unset state.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:3237
Enabled()=default
Default constructor.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:3272
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:3278
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:3266
std::string toString() const
Get the value as string.
bool value() const
Get the value.
static const Enabled yes
On/enabled.
Definition Settings.h:3233
Maximum normalized distance between neighboring points that are still classified as belonging to the ...
Definition Settings.h:3298
constexpr MaxNeighborDistance(double value)
Constructor.
Definition Settings.h:3332
bool operator!=(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3358
double value() const
Get the value.
std::string toString() const
Get the value as string.
double ValueType
The type of the underlying value.
Definition Settings.h:3320
bool hasValue() const
Check if the value is set.
MaxNeighborDistance()=default
Default constructor.
bool operator>=(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3382
bool operator<(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3364
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for MaxNeighborDistance.
Definition Settings.h:3323
bool operator<=(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3376
friend std::ostream & operator<<(std::ostream &stream, const MaxNeighborDistance &value)
Operator to serialize the value to a stream.
Definition Settings.h:3388
bool operator==(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3352
bool operator>(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3370
Clusters with area below this threshold are removed by the filter. The area is given in mm^2.
Definition Settings.h:3417
bool operator>=(const MinArea &other) const
Comparison operator.
Definition Settings.h:3498
double ValueType
The type of the underlying value.
Definition Settings.h:3436
friend std::ostream & operator<<(std::ostream &stream, const MinArea &value)
Operator to serialize the value to a stream.
Definition Settings.h:3504
bool operator<(const MinArea &other) const
Comparison operator.
Definition Settings.h:3480
bool operator!=(const MinArea &other) const
Comparison operator.
Definition Settings.h:3474
void reset()
Reset the node to unset state.
bool operator<=(const MinArea &other) const
Comparison operator.
Definition Settings.h:3492
constexpr MinArea(double value)
Constructor.
Definition Settings.h:3448
std::string toString() const
Get the value as string.
bool operator>(const MinArea &other) const
Comparison operator.
Definition Settings.h:3486
MinArea()=default
Default constructor.
static constexpr Range< double > validRange()
The range of valid values for MinArea.
Definition Settings.h:3439
double value() const
Get the value.
bool operator==(const MinArea &other) const
Comparison operator.
Definition Settings.h:3468
bool hasValue() const
Check if the value is set.
Cluster removal filter.
Definition Settings.h:3197
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:3778
const MaxNeighborDistance & maxNeighborDistance() const
Get MaxNeighborDistance.
Definition Settings.h:3664
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:3645
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:3717
std::string toString() const
Get the value as string.
MinArea & minArea()
Get MinArea.
Definition Settings.h:3689
const MinArea & minArea() const
Get MinArea.
Definition Settings.h:3683
Removal()
Default constructor.
bool operator!=(const Removal &other) const
Inequality operator.
std::tuple< Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea > Descendants
Definition Settings.h:3527
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:3624
Removal & set(const MaxNeighborDistance &value)
Set MaxNeighborDistance.
Definition Settings.h:3676
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:3727
Removal & set(const MinArea &value)
Set MinArea.
Definition Settings.h:3695
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:3752
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:3706
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:3651
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:3588
bool operator==(const Removal &other) const
Equality operator.
MaxNeighborDistance & maxNeighborDistance()
Get MaxNeighborDistance.
Definition Settings.h:3670
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:3761
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:3657
Removes floating points and isolated clusters from the point cloud.
Definition Settings.h:3176
const Removal & removal() const
Get Removal.
Definition Settings.h:3919
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:3994
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:3963
Cluster & set(const Removal::MaxNeighborDistance &value)
Set Removal::MaxNeighborDistance.
Definition Settings.h:3945
bool operator!=(const Cluster &other) const
Inequality operator.
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:3984
bool operator==(const Cluster &other) const
Equality operator.
std::tuple< Settings::Processing::Filters::Cluster::Removal, Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea > Descendants
Definition Settings.h:3797
Cluster copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:3898
Removal & removal()
Get Removal.
Definition Settings.h:3925
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:4014
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:4007
Cluster & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:3938
Cluster & set(const Removal &value)
Set Removal.
Definition Settings.h:3931
Cluster & set(const Removal::MinArea &value)
Set Removal::MinArea.
Definition Settings.h:3952
Cluster()
Default constructor.
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:3973
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:3861
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const Cluster &value)
Operator to send the value as string to a stream.
Definition Settings.h:4029
Enable or disable contrast distortion correction.
Definition Settings.h:4120
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:4140
bool ValueType
The type of the underlying value.
Definition Settings.h:4139
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:4144
static const Enabled no
Off/disabled.
Definition Settings.h:4141
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:4153
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:4185
bool hasValue() const
Check if the value is set.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:4173
bool value() const
Get the value.
Enabled()=default
Default constructor.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:4179
Strength of correction. Higher values give more correction.
Definition Settings.h:4202
double ValueType
The type of the underlying value.
Definition Settings.h:4221
bool operator>(const Strength &other) const
Comparison operator.
Definition Settings.h:4271
bool operator!=(const Strength &other) const
Comparison operator.
Definition Settings.h:4259
bool hasValue() const
Check if the value is set.
constexpr Strength(double value)
Constructor.
Definition Settings.h:4233
static constexpr Range< double > validRange()
The range of valid values for Strength.
Definition Settings.h:4224
double value() const
Get the value.
bool operator<=(const Strength &other) const
Comparison operator.
Definition Settings.h:4277
bool operator>=(const Strength &other) const
Comparison operator.
Definition Settings.h:4283
friend std::ostream & operator<<(std::ostream &stream, const Strength &value)
Operator to serialize the value to a stream.
Definition Settings.h:4289
Strength()=default
Default constructor.
bool operator<(const Strength &other) const
Comparison operator.
Definition Settings.h:4265
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:4253
Contrast distortion correction filter.
Definition Settings.h:4098
bool operator==(const Correction &other) const
Equality operator.
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:4432
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:4509
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:4426
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:4487
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:4405
Strength & strength()
Get Strength.
Definition Settings.h:4451
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:4472
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:4533
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:4370
Correction & set(const Enabled &value)
Set Enabled.
Definition Settings.h:4438
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:4517
std::string toString() const
Get the value as string.
Correction & set(const Strength &value)
Set Strength.
Definition Settings.h:4457
const Strength & strength() const
Get Strength.
Definition Settings.h:4445
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength > Descendants
Definition Settings.h:4312
Enable or disable contrast distortion removal.
Definition Settings.h:4577
std::string toString() const
Get the value as string.
static const Enabled yes
On/enabled.
Definition Settings.h:4597
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:4610
Enabled()=default
Default constructor.
void reset()
Reset the node to unset state.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:4636
bool ValueType
The type of the underlying value.
Definition Settings.h:4596
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:4601
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:4642
bool hasValue() const
Check if the value is set.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:4630
bool value() const
Get the value.
static const Enabled no
Off/disabled.
Definition Settings.h:4598
Threshold for removal. Higher values remove more points.
Definition Settings.h:4659
void reset()
Reset the node to unset state.
bool operator<=(const Threshold &other) const
Comparison operator.
Definition Settings.h:4734
constexpr Threshold(double value)
Constructor.
Definition Settings.h:4690
bool operator!=(const Threshold &other) const
Comparison operator.
Definition Settings.h:4716
bool operator<(const Threshold &other) const
Comparison operator.
Definition Settings.h:4722
static constexpr Range< double > validRange()
The range of valid values for Threshold.
Definition Settings.h:4681
Threshold()=default
Default constructor.
bool operator==(const Threshold &other) const
Comparison operator.
Definition Settings.h:4710
bool operator>=(const Threshold &other) const
Comparison operator.
Definition Settings.h:4740
std::string toString() const
Get the value as string.
bool operator>(const Threshold &other) const
Comparison operator.
Definition Settings.h:4728
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:4746
double value() const
Get the value.
double ValueType
The type of the underlying value.
Definition Settings.h:4678
Contrast distortion removal filter.
Definition Settings.h:4555
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:4964
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold > Descendants
Definition Settings.h:4769
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:4827
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:4988
const Threshold & threshold() const
Get Threshold.
Definition Settings.h:4902
Removal & set(const Threshold &value)
Set Threshold.
Definition Settings.h:4914
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:4862
Threshold & threshold()
Get Threshold.
Definition Settings.h:4908
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:4895
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:4929
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:4889
Removal()
Default constructor.
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:4883
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:4943
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:4972
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:4074
ContrastDistortion & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:5188
ContrastDistortion & set(const Correction::Enabled &value)
Set Correction::Enabled.
Definition Settings.h:5155
ContrastDistortion & set(const Correction &value)
Set Correction.
Definition Settings.h:5148
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:5299
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:5323
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:5115
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:5006
ContrastDistortion & set(const Correction::Strength &value)
Set Correction::Strength.
Definition Settings.h:5162
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:5076
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:5307
ContrastDistortion & set(const Removal &value)
Set Removal.
Definition Settings.h:5181
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:5278
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:5250
const Removal & removal() const
Get Removal.
Definition Settings.h:5169
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:5222
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:5208
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:5237
std::string toString() const
Get the value as string.
Removal & removal()
Get Removal.
Definition Settings.h:5175
bool operator==(const ContrastDistortion &other) const
Equality operator.
ContrastDistortion & set(const Removal::Threshold &value)
Set Removal::Threshold.
Definition Settings.h:5195
const Correction & correction() const
Get Correction.
Definition Settings.h:5136
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:5263
Correction & correction()
Get Correction.
Definition Settings.h:5142
Experimental filters. These may be renamed, moved or deleted in the future.
Definition Settings.h:4050
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:5644
ContrastDistortion & contrastDistortion()
Get ContrastDistortion.
Definition Settings.h:5481
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:5594
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:5454
Experimental & set(const ContrastDistortion &value)
Set ContrastDistortion.
Definition Settings.h:5487
Experimental & set(const ContrastDistortion::Removal::Threshold &value)
Set ContrastDistortion::Removal::Threshold.
Definition Settings.h:5529
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:5414
Experimental & set(const ContrastDistortion::Correction::Strength &value)
Set ContrastDistortion::Correction::Strength.
Definition Settings.h:5508
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream.
Definition Settings.h:5659
Experimental()
Default constructor.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:5581
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:5637
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:5341
Experimental & set(const ContrastDistortion::Removal &value)
Set ContrastDistortion::Removal.
Definition Settings.h:5515
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:5540
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:5552
bool operator!=(const Experimental &other) const
Inequality operator.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:5622
Experimental & set(const ContrastDistortion::Correction::Enabled &value)
Set ContrastDistortion::Correction::Enabled.
Definition Settings.h:5501
const ContrastDistortion & contrastDistortion() const
Get ContrastDistortion.
Definition Settings.h:5475
std::string toString() const
Get the value as string.
bool operator==(const Experimental &other) const
Equality operator.
Experimental & set(const ContrastDistortion::Correction &value)
Set ContrastDistortion::Correction.
Definition Settings.h:5494
Experimental & set(const ContrastDistortion::Removal::Enabled &value)
Set ContrastDistortion::Removal::Enabled.
Definition Settings.h:5522
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:5566
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:5608
Enable or disable hole repair.
Definition Settings.h:5722
static const Enabled yes
On/enabled.
Definition Settings.h:5740
static const Enabled no
Off/disabled.
Definition Settings.h:5741
bool value() const
Get the value.
bool ValueType
The type of the underlying value.
Definition Settings.h:5739
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:5779
std::string toString() const
Get the value as string.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:5773
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:5744
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:5785
Enabled()=default
Default constructor.
bool hasValue() const
Check if the value is set.
void reset()
Reset the node to unset state.
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:5753
Relative diameter of holes to fill. Increasing this will fill more points, but require more computati...
Definition Settings.h:5805
HoleSize()=default
Default constructor.
bool operator<(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5869
bool operator>=(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5887
double value() const
Get the value.
static constexpr Range< double > validRange()
The range of valid values for HoleSize.
Definition Settings.h:5828
friend std::ostream & operator<<(std::ostream &stream, const HoleSize &value)
Operator to serialize the value to a stream.
Definition Settings.h:5893
bool operator!=(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5863
bool operator<=(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5881
bool operator==(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5857
bool hasValue() const
Check if the value is set.
std::string toString() const
Get the value as string.
constexpr HoleSize(double value)
Constructor.
Definition Settings.h:5837
double ValueType
The type of the underlying value.
Definition Settings.h:5825
void reset()
Reset the node to unset state.
bool operator>(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5875
Level of strictness when considering if a point should be filled. A higher level of strictness requir...
Definition Settings.h:5924
static constexpr Range< int32_t > validRange()
The range of valid values for Strictness.
Definition Settings.h:5948
bool operator>=(const Strictness &other) const
Comparison operator.
Definition Settings.h:6007
int32_t value() const
Get the value.
void reset()
Reset the node to unset state.
bool operator==(const Strictness &other) const
Comparison operator.
Definition Settings.h:5977
std::string toString() const
Get the value as string.
bool operator<=(const Strictness &other) const
Comparison operator.
Definition Settings.h:6001
Strictness()=default
Default constructor.
bool operator>(const Strictness &other) const
Comparison operator.
Definition Settings.h:5995
bool hasValue() const
Check if the value is set.
int32_t ValueType
The type of the underlying value.
Definition Settings.h:5945
friend std::ostream & operator<<(std::ostream &stream, const Strictness &value)
Operator to serialize the value to a stream.
Definition Settings.h:6013
constexpr Strictness(int32_t value)
Constructor.
Definition Settings.h:5957
bool operator!=(const Strictness &other) const
Comparison operator.
Definition Settings.h:5983
bool operator<(const Strictness &other) const
Comparison operator.
Definition Settings.h:5989
Fills in point cloud holes by interpolating remaining surrounding points.
Definition Settings.h:5701
Repair & set(const Strictness &value)
Set Strictness.
Definition Settings.h:6204
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:6097
HoleSize & holeSize()
Get HoleSize.
Definition Settings.h:6179
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:6260
Repair & set(const HoleSize &value)
Set HoleSize.
Definition Settings.h:6185
bool operator==(const Repair &other) const
Equality operator.
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:6225
Repair copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:6133
const Strictness & strictness() const
Get Strictness.
Definition Settings.h:6192
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:6215
friend std::ostream & operator<<(std::ostream &stream, const Repair &value)
Operator to send the value as string to a stream.
Definition Settings.h:6286
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:6154
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:6160
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:6235
Repair()
Default constructor.
Strictness & strictness()
Get Strictness.
Definition Settings.h:6198
bool operator!=(const Repair &other) const
Inequality operator.
Repair & set(const Enabled &value)
Set Enabled.
Definition Settings.h:6166
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:6269
std::tuple< Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness > Descendants
Definition Settings.h:6036
const HoleSize & holeSize() const
Get HoleSize.
Definition Settings.h:6173
Contains filters that can be used to deal with holes in the point cloud.
Definition Settings.h:5680
const Repair & repair() const
Get Repair.
Definition Settings.h:6427
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:6471
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:6501
std::tuple< Settings::Processing::Filters::Hole::Repair, Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness > Descendants
Definition Settings.h:6305
friend std::ostream & operator<<(std::ostream &stream, const Hole &value)
Operator to send the value as string to a stream.
Definition Settings.h:6536
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:6491
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:6514
Hole & set(const Repair &value)
Set Repair.
Definition Settings.h:6439
Hole & set(const Repair::Strictness &value)
Set Repair::Strictness.
Definition Settings.h:6460
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:6521
Hole()
Default constructor.
Hole copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:6406
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:6481
bool operator!=(const Hole &other) const
Inequality operator.
bool operator==(const Hole &other) const
Equality operator.
std::string toString() const
Get the value as string.
Repair & repair()
Get Repair.
Definition Settings.h:6433
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:6369
Hole & set(const Repair::Enabled &value)
Set Repair::Enabled.
Definition Settings.h:6446
Hole & set(const Repair::HoleSize &value)
Set Repair::HoleSize.
Definition Settings.h:6453
Enable or disable the SNR filter.
Definition Settings.h:6597
static const Enabled yes
On/enabled.
Definition Settings.h:6615
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:6654
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:6648
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:6619
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:6628
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:6660
Enabled()=default
Default constructor.
static const Enabled no
Off/disabled.
Definition Settings.h:6616
bool ValueType
The type of the underlying value.
Definition Settings.h:6614
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:6677
double value() const
Get the value.
bool hasValue() const
Check if the value is set.
Threshold()=default
Default constructor.
bool operator>=(const Threshold &other) const
Comparison operator.
Definition Settings.h:6756
constexpr Threshold(double value)
Constructor.
Definition Settings.h:6706
bool operator==(const Threshold &other) const
Comparison operator.
Definition Settings.h:6726
bool operator<=(const Threshold &other) const
Comparison operator.
Definition Settings.h:6750
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Threshold.
Definition Settings.h:6697
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream.
Definition Settings.h:6762
bool operator>(const Threshold &other) const
Comparison operator.
Definition Settings.h:6744
bool operator<(const Threshold &other) const
Comparison operator.
Definition Settings.h:6738
std::string toString() const
Get the value as string.
double ValueType
The type of the underlying value.
Definition Settings.h:6694
bool operator!=(const Threshold &other) const
Comparison operator.
Definition Settings.h:6732
Discard points with signal-to-noise ratio (SNR) values below a threshold.
Definition Settings.h:6577
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:6994
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:6899
const Threshold & threshold() const
Get Threshold.
Definition Settings.h:6918
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:6978
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:6911
Removal & set(const Threshold &value)
Set Threshold.
Definition Settings.h:6930
bool operator==(const Removal &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:6843
bool operator!=(const Removal &other) const
Inequality operator.
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:6951
Threshold & threshold()
Get Threshold.
Definition Settings.h:6924
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:6970
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:6878
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:6905
Removal()
Default constructor.
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:6941
std::tuple< Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold > Descendants
Definition Settings.h:6785
Enable or disable noise repair.
Definition Settings.h:7042
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:7064
bool ValueType
The type of the underlying value.
Definition Settings.h:7059
static const Enabled no
Off/disabled.
Definition Settings.h:7061
void reset()
Reset the node to unset state.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:7099
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:7073
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:7060
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:7105
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:7093
Enabled()=default
Default constructor.
bool value() const
Get the value.
Get better surface coverage by repairing regions of missing data due to noisy points....
Definition Settings.h:7019
Repair()
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:7263
bool operator!=(const Repair &other) const
Inequality operator.
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:7270
bool operator==(const Repair &other) const
Equality operator.
Repair & set(const Enabled &value)
Set Enabled.
Definition Settings.h:7239
std::tuple< Settings::Processing::Filters::Noise::Repair::Enabled > Descendants
Definition Settings.h:7118
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:7233
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:7227
Repair copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:7206
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:7250
friend std::ostream & operator<<(std::ostream &stream, const Repair &value)
Operator to send the value as string to a stream.
Definition Settings.h:7285
std::string toString() const
Get the value as string.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:7172
Enable or disable noise suppression.
Definition Settings.h:7332
static const Enabled no
Off/disabled.
Definition Settings.h:7351
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:7363
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:7389
void reset()
Reset the node to unset state.
bool ValueType
The type of the underlying value.
Definition Settings.h:7349
std::string toString() const
Get the value as string.
Enabled()=default
Default constructor.
static const Enabled yes
On/enabled.
Definition Settings.h:7350
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:7354
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:7395
bool hasValue() const
Check if the value is set.
bool value() const
Get the value.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:7383
Reduce noise and outliers in the point cloud. This filter can also be used to reduce ripple effects c...
Definition Settings.h:7309
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:7540
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:7553
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:7523
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:7517
std::string toString() const
Get the value as string.
std::tuple< Settings::Processing::Filters::Noise::Suppression::Enabled > Descendants
Definition Settings.h:7408
Suppression copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:7496
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:7462
friend std::ostream & operator<<(std::ostream &stream, const Suppression &value)
Operator to send the value as string to a stream.
Definition Settings.h:7575
bool operator!=(const Suppression &other) const
Inequality operator.
Suppression & set(const Enabled &value)
Set Enabled.
Definition Settings.h:7529
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:7560
bool operator==(const Suppression &other) const
Equality operator.
Suppression()
Default constructor.
Contains filters that can be used to clean up a noisy point cloud.
Definition Settings.h:6557
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:7900
Noise & set(const Suppression &value)
Set Suppression.
Definition Settings.h:7797
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:7865
Suppression & suppression()
Get Suppression.
Definition Settings.h:7791
Removal & removal()
Get Removal.
Definition Settings.h:7732
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:7875
Noise()
Default constructor.
Noise & set(const Removal::Threshold &value)
Set Removal::Threshold.
Definition Settings.h:7752
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:7705
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:7909
const Suppression & suppression() const
Get Suppression.
Definition Settings.h:7785
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:7835
std::tuple< Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Noise::Repair, Settings::Processing::Filters::Noise::Repair::Enabled, Settings::Processing::Filters::Noise::Suppression, Settings::Processing::Filters::Noise::Suppression::Enabled > Descendants
Definition Settings.h:7592
Noise & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:7745
const Repair & repair() const
Get Repair.
Definition Settings.h:7759
Noise & set(const Repair::Enabled &value)
Set Repair::Enabled.
Definition Settings.h:7778
Noise & set(const Repair &value)
Set Repair.
Definition Settings.h:7771
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:7665
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:7926
Repair & repair()
Get Repair.
Definition Settings.h:7765
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:7845
const Removal & removal() const
Get Removal.
Definition Settings.h:7726
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:7825
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:7855
bool operator==(const Noise &other) const
Equality operator.
Noise & set(const Suppression::Enabled &value)
Set Suppression::Enabled.
Definition Settings.h:7804
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:7815
Noise & set(const Removal &value)
Set Removal.
Definition Settings.h:7738
Enable or disable the outlier filter.
Definition Settings.h:7989
bool ValueType
The type of the underlying value.
Definition Settings.h:8006
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:8046
bool value() const
Get the value.
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:8020
static const Enabled no
Off/disabled.
Definition Settings.h:8008
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:8007
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:8052
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:8011
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:8040
Enabled()=default
Default constructor.
Discard point if Euclidean distance to neighboring points is above the given value.
Definition Settings.h:8069
static constexpr Range< double > validRange()
The range of valid values for Threshold.
Definition Settings.h:8089
bool hasValue() const
Check if the value is set.
double value() const
Get the value.
constexpr Threshold(double value)
Constructor.
Definition Settings.h:8098
bool operator<(const Threshold &other) const
Comparison operator.
Definition Settings.h:8130
bool operator==(const Threshold &other) const
Comparison operator.
Definition Settings.h:8118
bool operator>=(const Threshold &other) const
Comparison operator.
Definition Settings.h:8148
bool operator!=(const Threshold &other) const
Comparison operator.
Definition Settings.h:8124
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream.
Definition Settings.h:8154
void reset()
Reset the node to unset state.
bool operator<=(const Threshold &other) const
Comparison operator.
Definition Settings.h:8142
bool operator>(const Threshold &other) const
Comparison operator.
Definition Settings.h:8136
std::string toString() const
Get the value as string.
double ValueType
The type of the underlying value.
Definition Settings.h:8086
Threshold()=default
Default constructor.
Discard point if Euclidean distance to neighboring points is above a threshold.
Definition Settings.h:7969
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:8386
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:8291
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:8270
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:8303
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:8297
Removal & set(const Threshold &value)
Set Threshold.
Definition Settings.h:8322
std::tuple< Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition Settings.h:8177
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:8333
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:8343
const Threshold & threshold() const
Get Threshold.
Definition Settings.h:8310
Threshold & threshold()
Get Threshold.
Definition Settings.h:8316
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:8362
Removal()
Default constructor.
bool operator==(const Removal &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8235
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:8370
Contains a filter that removes points with large Euclidean distance to neighboring points.
Definition Settings.h:7949
const Removal & removal() const
Get Removal.
Definition Settings.h:8522
Outlier & set(const Removal &value)
Set Removal.
Definition Settings.h:8534
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:8599
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:8592
bool operator!=(const Outlier &other) const
Inequality operator.
Outlier & set(const Removal::Threshold &value)
Set Removal::Threshold.
Definition Settings.h:8548
Outlier & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:8541
std::tuple< Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition Settings.h:8404
Removal & removal()
Get Removal.
Definition Settings.h:8528
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:8501
friend std::ostream & operator<<(std::ostream &stream, const Outlier &value)
Operator to send the value as string to a stream.
Definition Settings.h:8614
bool operator==(const Outlier &other) const
Equality operator.
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:8579
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:8559
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:8569
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8465
Enable or disable the reflection filter. Note that this filter is computationally intensive and may a...
Definition Settings.h:8675
bool ValueType
The type of the underlying value.
Definition Settings.h:8692
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:8693
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:8732
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:8706
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:8738
bool value() const
Get the value.
static const Enabled no
Off/disabled.
Definition Settings.h:8694
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:8726
Enabled()=default
Default constructor.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:8697
The reflection filter has two modes: Local and Global. Local mode preserves more 3D data on thinner o...
Definition Settings.h:8762
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:8804
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:8795
ValueType
The type of the underlying value.
Definition Settings.h:8787
static const Mode local
local
Definition Settings.h:8792
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:8836
void reset()
Reset the node to unset state.
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream.
Definition Settings.h:8842
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:8830
std::string toString() const
Get the value as string.
bool hasValue() const
Check if the value is set.
Mode()=default
Default constructor.
ValueType value() const
Get the value.
static const Mode global
global
Definition Settings.h:8791
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:8824
Discard points likely introduced by reflections (useful for shiny materials).
Definition Settings.h:8655
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:8987
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:9076
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:9023
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8925
Removal()
Default constructor.
std::tuple< Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode > Descendants
Definition Settings.h:8867
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:9052
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:8960
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:8993
Mode & mode()
Get Mode.
Definition Settings.h:9006
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9060
const Mode & mode() const
Get Mode.
Definition Settings.h:9000
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:8981
bool operator!=(const Removal &other) const
Inequality operator.
Removal & set(const Mode &value)
Set Mode.
Definition Settings.h:9012
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:9033
Contains a filter that removes points likely introduced by reflections (useful for shiny materials).
Definition Settings.h:8635
bool operator!=(const Reflection &other) const
Inequality operator.
bool operator==(const Reflection &other) const
Equality operator.
Removal & removal()
Get Removal.
Definition Settings.h:9218
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9155
friend std::ostream & operator<<(std::ostream &stream, const Reflection &value)
Operator to send the value as string to a stream.
Definition Settings.h:9304
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9289
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:9282
Reflection & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:9231
Reflection()
Default constructor.
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:9259
std::tuple< Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode > Descendants
Definition Settings.h:9094
std::string toString() const
Get the value as string.
Reflection & set(const Removal::Mode &value)
Set Removal::Mode.
Definition Settings.h:9238
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:9269
const Removal & removal() const
Get Removal.
Definition Settings.h:9212
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:9249
Reflection & set(const Removal &value)
Set Removal.
Definition Settings.h:9224
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:9191
Enable or disable the smoothing filter.
Definition Settings.h:9363
bool ValueType
The type of the underlying value.
Definition Settings.h:9380
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:9385
bool value() const
Get the value.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:9420
static const Enabled yes
On/enabled.
Definition Settings.h:9381
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:9414
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:9426
static const Enabled no
Off/disabled.
Definition Settings.h:9382
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:9394
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:9443
Sigma()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:9460
bool operator!=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9498
bool operator>(const Sigma &other) const
Comparison operator.
Definition Settings.h:9510
double value() const
Get the value.
bool hasValue() const
Check if the value is set.
constexpr Sigma(double value)
Constructor.
Definition Settings.h:9472
static constexpr Range< double > validRange()
The range of valid values for Sigma.
Definition Settings.h:9463
friend std::ostream & operator<<(std::ostream &stream, const Sigma &value)
Operator to serialize the value to a stream.
Definition Settings.h:9528
void reset()
Reset the node to unset state.
bool operator>=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9522
bool operator==(const Sigma &other) const
Comparison operator.
Definition Settings.h:9492
bool operator<=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9516
std::string toString() const
Get the value as string.
bool operator<(const Sigma &other) const
Comparison operator.
Definition Settings.h:9504
Gaussian smoothing of the point cloud.
Definition Settings.h:9343
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:9671
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:9736
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:9717
Gaussian & set(const Enabled &value)
Set Enabled.
Definition Settings.h:9677
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition Settings.h:9551
friend std::ostream & operator<<(std::ostream &stream, const Gaussian &value)
Operator to send the value as string to a stream.
Definition Settings.h:9760
const Sigma & sigma() const
Get Sigma.
Definition Settings.h:9684
bool operator==(const Gaussian &other) const
Equality operator.
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:9665
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:9707
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:9644
Gaussian & set(const Sigma &value)
Set Sigma.
Definition Settings.h:9696
Sigma & sigma()
Get Sigma.
Definition Settings.h:9690
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9609
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9744
Smoothing filters.
Definition Settings.h:9325
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:9875
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9839
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition Settings.h:9778
Smoothing & set(const Gaussian &value)
Set Gaussian.
Definition Settings.h:9908
Smoothing()
Default constructor.
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:9943
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9973
Smoothing & set(const Gaussian::Sigma &value)
Set Gaussian::Sigma.
Definition Settings.h:9922
Smoothing & set(const Gaussian::Enabled &value)
Set Gaussian::Enabled.
Definition Settings.h:9915
bool operator!=(const Smoothing &other) const
Inequality operator.
const Gaussian & gaussian() const
Get Gaussian.
Definition Settings.h:9896
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:9933
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:9966
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:9953
friend std::ostream & operator<<(std::ostream &stream, const Smoothing &value)
Operator to send the value as string to a stream.
Definition Settings.h:9988
Gaussian & gaussian()
Get Gaussian.
Definition Settings.h:9902
Filter settings.
Definition Settings.h:3157
bool operator!=(const Filters &other) const
Inequality operator.
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:10895
Filters & set(const Reflection::Removal::Enabled &value)
Set Reflection::Removal::Enabled.
Definition Settings.h:10558
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:11055
Filters & set(const Cluster &value)
Set Cluster.
Definition Settings.h:10274
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:10905
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:10241
Filters & set(const Hole &value)
Set Hole.
Definition Settings.h:10389
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:10751
Filters & set(const Hole::Repair::HoleSize &value)
Set Hole::Repair::HoleSize.
Definition Settings.h:10410
Filters & set(const Noise::Repair &value)
Set Noise::Repair.
Definition Settings.h:10464
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:10799
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:10866
Filters & set(const Cluster::Removal::MaxNeighborDistance &value)
Set Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:10295
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:10827
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:10760
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:10876
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:10963
Filters & set(const Noise::Repair::Enabled &value)
Set Noise::Repair::Enabled.
Definition Settings.h:10471
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:10625
Cluster & cluster()
Get Cluster.
Definition Settings.h:10268
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:10934
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:10779
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:10924
Filters & set(const Outlier::Removal::Threshold &value)
Set Outlier::Removal::Threshold.
Definition Settings.h:10525
Filters & set(const Experimental::ContrastDistortion::Correction::Strength &value)
Set Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:10349
Filters & set(const Experimental &value)
Set Experimental.
Definition Settings.h:10321
Outlier & outlier()
Get Outlier.
Definition Settings.h:10498
Filters & set(const Reflection::Removal::Mode &value)
Set Reflection::Removal::Mode.
Definition Settings.h:10565
Filters & set(const Hole::Repair::Enabled &value)
Set Hole::Repair::Enabled.
Definition Settings.h:10403
Filters & set(const Noise::Suppression &value)
Set Noise::Suppression.
Definition Settings.h:10478
Filters & set(const Outlier::Removal &value)
Set Outlier::Removal.
Definition Settings.h:10511
const Cluster & cluster() const
Get Cluster.
Definition Settings.h:10262
const Experimental & experimental() const
Get Experimental.
Definition Settings.h:10309
Filters & set(const Experimental::ContrastDistortion &value)
Set Experimental::ContrastDistortion.
Definition Settings.h:10328
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:11076
Filters & set(const Cluster::Removal::Enabled &value)
Set Cluster::Removal::Enabled.
Definition Settings.h:10288
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:10944
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:10885
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:10674
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:10993
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:10171
Filters & set(const Hole::Repair &value)
Set Hole::Repair.
Definition Settings.h:10396
const Reflection & reflection() const
Get Reflection.
Definition Settings.h:10532
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:10664
Filters & set(const Noise::Removal::Threshold &value)
Set Noise::Removal::Threshold.
Definition Settings.h:10457
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:10983
Filters & set(const Reflection &value)
Set Reflection.
Definition Settings.h:10544
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:10713
Filters & set(const Experimental::ContrastDistortion::Removal &value)
Set Experimental::ContrastDistortion::Removal.
Definition Settings.h:10356
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:11042
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:10635
Filters & set(const Outlier &value)
Set Outlier.
Definition Settings.h:10504
const Noise & noise() const
Get Noise.
Definition Settings.h:10424
Filters & set(const Experimental::ContrastDistortion::Correction &value)
Set Experimental::ContrastDistortion::Correction.
Definition Settings.h:10335
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:10769
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:10699
Filters & set(const Reflection::Removal &value)
Set Reflection::Removal.
Definition Settings.h:10551
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:10817
Filters & set(const Noise::Removal::Enabled &value)
Set Noise::Removal::Enabled.
Definition Settings.h:10450
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:10954
Filters & set(const Smoothing::Gaussian::Enabled &value)
Set Smoothing::Gaussian::Enabled.
Definition Settings.h:10598
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:10808
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:10856
Filters & set(const Experimental::ContrastDistortion::Removal::Threshold &value)
Set Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:10370
Filters & set(const Smoothing::Gaussian &value)
Set Smoothing::Gaussian.
Definition Settings.h:10591
bool operator==(const Filters &other) const
Equality operator.
Filters & set(const Hole::Repair::Strictness &value)
Set Hole::Repair::Strictness.
Definition Settings.h:10417
Filters & set(const Outlier::Removal::Enabled &value)
Set Outlier::Removal::Enabled.
Definition Settings.h:10518
Filters & set(const Cluster::Removal &value)
Set Cluster::Removal.
Definition Settings.h:10281
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:10789
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:10738
const Hole & hole() const
Get Hole.
Definition Settings.h:10377
std::tuple< Settings::Processing::Filters::Cluster, Settings::Processing::Filters::Cluster::Removal, Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea, 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::Hole, Settings::Processing::Filters::Hole::Repair, Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness, Settings::Processing::Filters::Noise, Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Noise::Repair, Settings::Processing::Filters::Noise::Repair::Enabled, Settings::Processing::Filters::Noise::Suppression, Settings::Processing::Filters::Noise::Suppression::Enabled, 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::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:10005
Filters & set(const Cluster::Removal::MinArea &value)
Set Cluster::Removal::MinArea.
Definition Settings.h:10302
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:10725
Noise & noise()
Get Noise.
Definition Settings.h:10430
Filters & set(const Smoothing &value)
Set Smoothing.
Definition Settings.h:10584
Filters & set(const Experimental::ContrastDistortion::Correction::Enabled &value)
Set Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:10342
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:10645
Filters & set(const Noise::Removal &value)
Set Noise::Removal.
Definition Settings.h:10443
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:10615
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:10915
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:10837
Smoothing & smoothing()
Get Smoothing.
Definition Settings.h:10578
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:10655
Filters & set(const Noise::Suppression::Enabled &value)
Set Noise::Suppression::Enabled.
Definition Settings.h:10485
Hole & hole()
Get Hole.
Definition Settings.h:10383
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:10973
Filters & set(const Experimental::ContrastDistortion::Removal::Enabled &value)
Set Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:10363
const Outlier & outlier() const
Get Outlier.
Definition Settings.h:10492
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:10846
Reflection & reflection()
Get Reflection.
Definition Settings.h:10538
Filters & set(const Noise &value)
Set Noise.
Definition Settings.h:10436
Filters & set(const Smoothing::Gaussian::Sigma &value)
Set Smoothing::Gaussian::Sigma.
Definition Settings.h:10605
const Smoothing & smoothing() const
Get Smoothing.
Definition Settings.h:10572
Experimental & experimental()
Get Experimental.
Definition Settings.h:10315
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:10685
Setting for upsampling or downsampling the point cloud data by some factor. This operation is perform...
Definition Settings.h:11147
void reset()
Reset the node to unset state.
static const Mode upsample2x2
upsample2x2
Definition Settings.h:11197
static const Mode downsample4x4
downsample4x4
Definition Settings.h:11196
Mode()=default
Default constructor.
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream.
Definition Settings.h:11252
static const Mode upsample4x4
upsample4x4
Definition Settings.h:11198
static const Mode downsample2x2
downsample2x2
Definition Settings.h:11195
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:11246
ValueType
The type of the underlying value.
Definition Settings.h:11187
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:11240
bool hasValue() const
Check if the value is set.
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:11201
std::string toString() const
Get the value as string.
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:11214
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:11234
static const Mode disabled
disabled
Definition Settings.h:11194
ValueType value() const
Get the value.
Settings for changing the output resolution of the point cloud.
Definition Settings.h:11104
Resampling & set(const Mode &value)
Set Mode.
Definition Settings.h:11398
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:11332
const Mode & mode() const
Get Mode.
Definition Settings.h:11386
bool operator==(const Resampling &other) const
Equality operator.
Resampling()
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:11421
Mode & mode()
Get Mode.
Definition Settings.h:11392
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const Resampling &value)
Operator to send the value as string to a stream.
Definition Settings.h:11443
std::tuple< Settings::Processing::Resampling::Mode > Descendants
Definition Settings.h:11278
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:11408
bool operator!=(const Resampling &other) const
Inequality operator.
Resampling copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:11365
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:11428
Settings related to processing of a capture, including filters and color balance.
Definition Settings.h:1615
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:12193
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:12373
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:12321
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:12383
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:12563
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:12534
Resampling & resampling()
Get Resampling.
Definition Settings.h:12118
Processing & set(const Color::Experimental &value)
Set Color::Experimental.
Definition Settings.h:11806
Processing & set(const Color &value)
Set Color.
Definition Settings.h:11771
Processing & set(const Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Filters::Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:11867
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:12449
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:12175
Processing & set(const Color::Balance &value)
Set Color::Balance.
Definition Settings.h:11778
Processing & set(const Filters::Smoothing::Gaussian &value)
Set Filters::Smoothing::Gaussian.
Definition Settings.h:12091
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:11739
Filters & filters()
Get Filters.
Definition Settings.h:11833
Processing & set(const Filters::Smoothing::Gaussian::Enabled &value)
Set Filters::Smoothing::Gaussian::Enabled.
Definition Settings.h:12098
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:12468
Processing & set(const Resampling &value)
Set Resampling.
Definition Settings.h:12124
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:12201
Processing & set(const Filters::Experimental::ContrastDistortion::Removal &value)
Set Filters::Experimental::ContrastDistortion::Removal.
Definition Settings.h:11916
Processing & set(const Resampling::Mode &value)
Set Resampling::Mode.
Definition Settings.h:12131
Processing()
Default constructor.
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::Cluster, Settings::Processing::Filters::Cluster::Removal, Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea, 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::Hole, Settings::Processing::Filters::Hole::Repair, Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness, Settings::Processing::Filters::Noise, Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Noise::Repair, Settings::Processing::Filters::Noise::Repair::Enabled, Settings::Processing::Filters::Noise::Suppression, Settings::Processing::Filters::Noise::Suppression::Enabled, 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::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma, Settings::Processing::Resampling, Settings::Processing::Resampling::Mode > Descendants
Definition Settings.h:11460
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:12553
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Filters::Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:11930
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:12166
Processing & set(const Filters::Outlier::Removal &value)
Set Filters::Outlier::Removal.
Definition Settings.h:12035
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:11923
Processing & set(const Filters::Cluster::Removal::Enabled &value)
Set Filters::Cluster::Removal::Enabled.
Definition Settings.h:11860
friend std::ostream & operator<<(std::ostream &stream, const Processing &value)
Operator to send the value as string to a stream.
Definition Settings.h:12650
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:12458
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:12332
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:12524
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:12430
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:12363
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:12583
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:12420
Processing & set(const Color::Balance::Blue &value)
Set Color::Balance::Blue.
Definition Settings.h:11785
Color & color()
Get Color.
Definition Settings.h:11765
Processing & set(const Filters::Hole::Repair::Strictness &value)
Set Filters::Hole::Repair::Strictness.
Definition Settings.h:11965
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:12573
Processing & set(const Filters::Reflection &value)
Set Filters::Reflection.
Definition Settings.h:12056
Processing & set(const Filters::Noise &value)
Set Filters::Noise.
Definition Settings.h:11972
Processing & set(const Filters::Hole &value)
Set Filters::Hole.
Definition Settings.h:11937
Processing & set(const Filters::Cluster &value)
Set Filters::Cluster.
Definition Settings.h:11846
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:12476
const Settings::Processing::Filters & get() const
Definition Settings.h:12209
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Filters::Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:11909
Processing & set(const Filters::Noise::Removal::Enabled &value)
Set Filters::Noise::Removal::Enabled.
Definition Settings.h:11986
Processing & set(const Filters::Smoothing &value)
Set Filters::Smoothing.
Definition Settings.h:12084
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:12148
const Filters & filters() const
Get Filters.
Definition Settings.h:11827
Processing & set(const Filters::Cluster::Removal &value)
Set Filters::Cluster::Removal.
Definition Settings.h:11853
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:12393
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:12633
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:12256
Processing & set(const Filters::Smoothing::Gaussian::Sigma &value)
Set Filters::Smoothing::Gaussian::Sigma.
Definition Settings.h:12105
Processing & set(const Filters::Noise::Suppression &value)
Set Filters::Noise::Suppression.
Definition Settings.h:12014
Processing & set(const Filters::Noise::Removal &value)
Set Filters::Noise::Removal.
Definition Settings.h:11979
Processing & set(const Filters::Reflection::Removal::Mode &value)
Set Filters::Reflection::Removal::Mode.
Definition Settings.h:12077
Processing & set(const Filters::Hole::Repair::Enabled &value)
Set Filters::Hole::Repair::Enabled.
Definition Settings.h:11951
const Settings::Processing::Resampling & get() const
Definition Settings.h:12591
Processing & set(const Filters::Outlier::Removal::Enabled &value)
Set Filters::Outlier::Removal::Enabled.
Definition Settings.h:12042
Processing & set(const Filters::Noise::Removal::Threshold &value)
Set Filters::Noise::Removal::Threshold.
Definition Settings.h:11993
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:12157
Processing & set(const Filters::Cluster::Removal::MinArea &value)
Set Filters::Cluster::Removal::MinArea.
Definition Settings.h:11874
Processing & set(const Filters::Experimental &value)
Set Filters::Experimental.
Definition Settings.h:11881
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:12410
Processing & set(const Filters::Outlier::Removal::Threshold &value)
Set Filters::Outlier::Removal::Threshold.
Definition Settings.h:12049
Processing & set(const Color::Balance::Green &value)
Set Color::Balance::Green.
Definition Settings.h:11792
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:12184
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:12310
Processing & set(const Filters::Outlier &value)
Set Filters::Outlier.
Definition Settings.h:12028
Processing & set(const Filters::Noise::Repair::Enabled &value)
Set Filters::Noise::Repair::Enabled.
Definition Settings.h:12007
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:12544
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:12297
Processing & set(const Color::Experimental::Mode &value)
Set Color::Experimental::Mode.
Definition Settings.h:11813
Processing & set(const Filters::Reflection::Removal::Enabled &value)
Set Filters::Reflection::Removal::Enabled.
Definition Settings.h:12070
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:11902
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:12236
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:12505
Processing & set(const Filters::Reflection::Removal &value)
Set Filters::Reflection::Removal.
Definition Settings.h:12063
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:12246
Processing & set(const Filters::Experimental::ContrastDistortion::Correction &value)
Set Filters::Experimental::ContrastDistortion::Correction.
Definition Settings.h:11895
const Settings::Processing::Color & get() const
Definition Settings.h:12140
bool operator==(const Processing &other) const
Equality operator.
const Color & color() const
Get Color.
Definition Settings.h:11759
Processing & set(const Filters::Experimental::ContrastDistortion &value)
Set Filters::Experimental::ContrastDistortion.
Definition Settings.h:11888
Processing & set(const Filters::Noise::Suppression::Enabled &value)
Set Filters::Noise::Suppression::Enabled.
Definition Settings.h:12021
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:12226
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:12514
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:12495
Processing & set(const Filters &value)
Set Filters.
Definition Settings.h:11839
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:12599
Processing & set(const Color::Balance::Red &value)
Set Color::Balance::Red.
Definition Settings.h:11799
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:12401
bool operator!=(const Processing &other) const
Inequality operator.
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:12265
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:12439
Processing & set(const Color::Gamma &value)
Set Color::Gamma.
Definition Settings.h:11820
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:11659
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:12345
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:12217
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:12285
Processing & set(const Filters::Noise::Repair &value)
Set Filters::Noise::Repair.
Definition Settings.h:12000
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:12275
const Resampling & resampling() const
Get Resampling.
Definition Settings.h:12112
Processing & set(const Filters::Hole::Repair::HoleSize &value)
Set Filters::Hole::Repair::HoleSize.
Definition Settings.h:11958
Processing & set(const Filters::Hole::Repair &value)
Set Filters::Hole::Repair.
Definition Settings.h:11944
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:12624
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:12485
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:12354
Enable or disable box filter.
Definition Settings.h:12743
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:12774
bool ValueType
The type of the underlying value.
Definition Settings.h:12760
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:12794
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:12765
static const Enabled yes
On/enabled.
Definition Settings.h:12761
static const Enabled no
Off/disabled.
Definition Settings.h:12762
bool hasValue() const
Check if the value is set.
void reset()
Reset the node to unset state.
Enabled()=default
Default constructor.
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:12806
bool value() const
Get the value.
std::string toString() const
Get the value as string.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:12800
Two points on the normal describing the direction and distance from the plane from which the normal i...
Definition Settings.h:12823
std::string toString() const
Get the value as string.
bool operator==(const Extents &other) const
Comparison operator.
Definition Settings.h:12871
Extents()=default
Default constructor.
void reset()
Reset the node to unset state.
constexpr Extents(Zivid::Range< double > value)
Constructor.
Definition Settings.h:12846
constexpr Extents(double minValue, double maxValue)
Constructor.
Definition Settings.h:12866
bool hasValue() const
Check if the value is set.
friend std::ostream & operator<<(std::ostream &stream, const Extents &value)
Operator to serialize the value to a stream.
Definition Settings.h:12883
const Zivid::Range< double > & value() const
Get the value.
bool operator!=(const Extents &other) const
Comparison operator.
Definition Settings.h:12877
A point such that the vector from PointO to PointA describes the first edge of the parallelogram.
Definition Settings.h:12900
void reset()
Reset the node to unset state.
constexpr PointA(float x, float y, float z)
Constructor.
Definition Settings.h:12943
bool operator!=(const PointA &other) const
Comparison operator.
Definition Settings.h:12954
PointA()=default
Default constructor.
bool operator==(const PointA &other) const
Comparison operator.
Definition Settings.h:12948
bool hasValue() const
Check if the value is set.
friend std::ostream & operator<<(std::ostream &stream, const PointA &value)
Operator to serialize the value to a stream.
Definition Settings.h:12960
constexpr PointA(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:12923
Zivid::PointXYZ value() const
Get the value.
std::string toString() const
Get the value as string.
A point such that the vector from PointO to PointB describes the second edge of the parallelogram.
Definition Settings.h:12977
PointB()=default
Default constructor.
bool operator==(const PointB &other) const
Comparison operator.
Definition Settings.h:13025
bool hasValue() const
Check if the value is set.
friend std::ostream & operator<<(std::ostream &stream, const PointB &value)
Operator to serialize the value to a stream.
Definition Settings.h:13037
void reset()
Reset the node to unset state.
std::string toString() const
Get the value as string.
constexpr PointB(float x, float y, float z)
Constructor.
Definition Settings.h:13020
constexpr PointB(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:13000
Zivid::PointXYZ value() const
Get the value.
bool operator!=(const PointB &other) const
Comparison operator.
Definition Settings.h:13031
The point at the intersection of two adjacent edges defining a parallelogram.
Definition Settings.h:13054
constexpr PointO(float x, float y, float z)
Constructor.
Definition Settings.h:13097
void reset()
Reset the node to unset state.
bool operator!=(const PointO &other) const
Comparison operator.
Definition Settings.h:13108
PointO()=default
Default constructor.
constexpr PointO(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:13077
bool operator==(const PointO &other) const
Comparison operator.
Definition Settings.h:13102
bool hasValue() const
Check if the value is set.
Zivid::PointXYZ value() const
Get the value.
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const PointO &value)
Operator to serialize the value to a stream.
Definition Settings.h:13114
Removes points outside the given three-dimensional box.
Definition Settings.h:12708
std::string toString() const
Get the value as string.
std::tuple< Settings::RegionOfInterest::Box::Enabled, Settings::RegionOfInterest::Box::Extents, Settings::RegionOfInterest::Box::PointA, Settings::RegionOfInterest::Box::PointB, Settings::RegionOfInterest::Box::PointO > Descendants
Definition Settings.h:13127
Box & set(const PointA &value)
Set PointA.
Definition Settings.h:13302
Box copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:13231
const PointO & pointO() const
Get PointO.
Definition Settings.h:13328
Box & set(const PointO &value)
Set PointO.
Definition Settings.h:13340
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:13258
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:13252
Box & set(const Extents &value)
Set Extents.
Definition Settings.h:13283
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:13350
PointA & pointA()
Get PointA.
Definition Settings.h:13296
PointB & pointB()
Get PointB.
Definition Settings.h:13315
Box & set(const PointB &value)
Set PointB.
Definition Settings.h:13321
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:13386
Box()
Default constructor.
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:13368
const Extents & extents() const
Get Extents.
Definition Settings.h:13271
const PointA & pointA() const
Get PointA.
Definition Settings.h:13290
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13194
PointO & pointO()
Get PointO.
Definition Settings.h:13334
Extents & extents()
Get Extents.
Definition Settings.h:13277
const PointB & pointB() const
Get PointB.
Definition Settings.h:13309
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:13423
friend std::ostream & operator<<(std::ostream &stream, const Box &value)
Operator to send the value as string to a stream.
Definition Settings.h:13453
bool operator!=(const Box &other) const
Inequality operator.
bool operator==(const Box &other) const
Equality operator.
const Settings::RegionOfInterest::Box::PointB & get() const
Definition Settings.h:13377
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13434
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:13359
Box & set(const Enabled &value)
Set Enabled.
Definition Settings.h:13264
Enable or disable depth filter.
Definition Settings.h:13502
Enabled()=default
Default constructor.
static const Enabled yes
On/enabled.
Definition Settings.h:13520
bool hasValue() const
Check if the value is set.
void reset()
Reset the node to unset state.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:13553
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:13559
bool ValueType
The type of the underlying value.
Definition Settings.h:13519
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:13565
bool value() const
Get the value.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:13524
std::string toString() const
Get the value as string.
static const Enabled no
Off/disabled.
Definition Settings.h:13521
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:13533
Specify the minimum and maximum Z value that will be included.
Definition Settings.h:13582
constexpr Range(double minValue, double maxValue)
Constructor.
Definition Settings.h:13625
constexpr Range(Zivid::Range< double > value)
Constructor.
Definition Settings.h:13605
const Zivid::Range< double > & value() const
Get the value.
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const Range &value)
Operator to serialize the value to a stream.
Definition Settings.h:13642
Range()=default
Default constructor.
bool operator==(const Range &other) const
Comparison operator.
Definition Settings.h:13630
bool operator!=(const Range &other) const
Comparison operator.
Definition Settings.h:13636
void reset()
Reset the node to unset state.
bool hasValue() const
Check if the value is set.
Removes points that reside outside of a depth range, meaning that their Z coordinate falls above a gi...
Definition Settings.h:13480
Depth()
Default constructor.
Depth & set(const Enabled &value)
Set Enabled.
Definition Settings.h:13779
std::string toString() const
Get the value as string.
const Range & range() const
Get Range.
Definition Settings.h:13786
Depth & set(const Range &value)
Set Range.
Definition Settings.h:13798
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:13767
bool operator==(const Depth &other) const
Equality operator.
std::tuple< Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range > Descendants
Definition Settings.h:13655
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13844
bool operator!=(const Depth &other) const
Inequality operator.
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:13808
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:13836
Range & range()
Get Range.
Definition Settings.h:13792
friend std::ostream & operator<<(std::ostream &stream, const Depth &value)
Operator to send the value as string to a stream.
Definition Settings.h:13860
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13712
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:13773
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:13817
Depth copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:13746
Removes points outside the region of interest.
Definition Settings.h:12674
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:14165
Depth & depth()
Get Depth.
Definition Settings.h:14077
RegionOfInterest & set(const Depth::Enabled &value)
Set Depth::Enabled.
Definition Settings.h:14090
const Box & box() const
Get Box.
Definition Settings.h:14017
RegionOfInterest & set(const Box &value)
Set Box.
Definition Settings.h:14029
friend std::ostream & operator<<(std::ostream &stream, const RegionOfInterest &value)
Operator to send the value as string to a stream.
Definition Settings.h:14217
RegionOfInterest & set(const Box::PointO &value)
Set Box::PointO.
Definition Settings.h:14064
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:14148
std::string toString() const
Get the value as string.
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:14132
const Settings::RegionOfInterest::Depth & get() const
Definition Settings.h:14156
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:14124
std::tuple< Settings::RegionOfInterest::Box, Settings::RegionOfInterest::Box::Enabled, Settings::RegionOfInterest::Box::Extents, Settings::RegionOfInterest::Box::PointA, Settings::RegionOfInterest::Box::PointB, Settings::RegionOfInterest::Box::PointO, Settings::RegionOfInterest::Depth, Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range > Descendants
Definition Settings.h:13878
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:14174
const Settings::RegionOfInterest::Box::PointB & get() const
Definition Settings.h:14140
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13957
RegionOfInterest copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:13997
Box & box()
Get Box.
Definition Settings.h:14023
const Settings::RegionOfInterest::Box & get() const
Definition Settings.h:14106
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:14193
RegionOfInterest & set(const Box::PointA &value)
Set Box::PointA.
Definition Settings.h:14050
const Depth & depth() const
Get Depth.
Definition Settings.h:14071
RegionOfInterest & set(const Box::Extents &value)
Set Box::Extents.
Definition Settings.h:14043
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:14201
RegionOfInterest & set(const Box::Enabled &value)
Set Box::Enabled.
Definition Settings.h:14036
RegionOfInterest & set(const Depth::Range &value)
Set Depth::Range.
Definition Settings.h:14097
bool operator!=(const RegionOfInterest &other) const
Inequality operator.
RegionOfInterest & set(const Depth &value)
Set Depth.
Definition Settings.h:14083
RegionOfInterest & set(const Box::PointB &value)
Set Box::PointB.
Definition Settings.h:14057
bool operator==(const RegionOfInterest &other) const
Equality operator.
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:14115
RegionOfInterest()
Default constructor.
Choose how to sample colors for the point cloud. The rgb option gives a 2D image with full colors....
Definition Settings.h:14271
ValueType
The type of the underlying value.
Definition Settings.h:14301
std::string toString() const
Get the value as string.
static std::set< ValueType > validValues()
All valid values of Color.
Definition Settings.h:14311
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to serialize the value to a stream.
Definition Settings.h:14358
constexpr Color(ValueType value)
Constructor.
Definition Settings.h:14320
static const Color grayscale
grayscale
Definition Settings.h:14308
bool operator!=(const Color &other) const
Comparison operator.
Definition Settings.h:14352
Color()=default
Default constructor.
static const Color disabled
disabled
Definition Settings.h:14307
bool hasValue() const
Check if the value is set.
void reset()
Reset the node to unset state.
bool operator==(const Color &other) const
Comparison operator.
Definition Settings.h:14346
friend std::ostream & operator<<(std::ostream &stream, const Color::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:14340
static const Color rgb
rgb
Definition Settings.h:14306
ValueType value() const
Get the value.
For Zivid 2/2+, this setting controls whether to read out the full image sensor and use white project...
Definition Settings.h:14396
ValueType value() const
Get the value.
void reset()
Reset the node to unset state.
static std::set< ValueType > validValues()
All valid values of Pixel.
Definition Settings.h:14443
static const Pixel redSubsample4x4
redSubsample4x4
Definition Settings.h:14438
constexpr Pixel(ValueType value)
Constructor.
Definition Settings.h:14458
static const Pixel all
all
Definition Settings.h:14434
static const Pixel blueSubsample2x2
blueSubsample2x2
Definition Settings.h:14435
static const Pixel by2x2
by2x2
Definition Settings.h:14439
static const Pixel by4x4
by4x4
Definition Settings.h:14440
bool operator!=(const Pixel &other) const
Comparison operator.
Definition Settings.h:14490
ValueType
The type of the underlying value.
Definition Settings.h:14425
static const Pixel redSubsample2x2
redSubsample2x2
Definition Settings.h:14436
Pixel()=default
Default constructor.
bool operator==(const Pixel &other) const
Comparison operator.
Definition Settings.h:14484
static const Pixel blueSubsample4x4
blueSubsample4x4
Definition Settings.h:14437
bool hasValue() const
Check if the value is set.
friend std::ostream & operator<<(std::ostream &stream, const Pixel::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:14478
friend std::ostream & operator<<(std::ostream &stream, const Pixel &value)
Operator to serialize the value to a stream.
Definition Settings.h:14496
std::string toString() const
Get the value as string.
Sampling settings.
Definition Settings.h:14240
std::tuple< Settings::Sampling::Color, Settings::Sampling::Pixel > Descendants
Definition Settings.h:14522
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:14578
bool operator==(const Sampling &other) const
Equality operator.
Color & color()
Get Color.
Definition Settings.h:14637
Sampling copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:14611
const Pixel & pixel() const
Get Pixel.
Definition Settings.h:14650
friend std::ostream & operator<<(std::ostream &stream, const Sampling &value)
Operator to send the value as string to a stream.
Definition Settings.h:14722
Pixel & pixel()
Get Pixel.
Definition Settings.h:14656
const Settings::Sampling::Color & get() const
Definition Settings.h:14671
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:14698
Sampling()
Default constructor.
const Settings::Sampling::Pixel & get() const
Definition Settings.h:14679
bool operator!=(const Sampling &other) const
Inequality operator.
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:14706
const Color & color() const
Get Color.
Definition Settings.h:14631
std::string toString() const
Get the value as string.
Sampling & set(const Color &value)
Set Color.
Definition Settings.h:14643
Sampling & set(const Pixel &value)
Set Pixel.
Definition Settings.h:14662
Settings used when capturing a 3D capture or 2D+3D capture with a Zivid camera.
Definition Settings.h:81
const Settings::RegionOfInterest::Depth & get() const
Definition Settings.h:16235
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:16073
const Settings::Color & get() const
Definition Settings.h:15696
Settings(Args &&...args)
Constructor taking variadic number of arguments.
Definition Settings.h:14918
Settings & set(const Processing::Filters::Cluster::Removal::MinArea &value)
Set Processing::Filters::Cluster::Removal::MinArea.
Definition Settings.h:15323
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:16054
Settings & set(const RegionOfInterest::Box::PointB &value)
Set RegionOfInterest::Box::PointB.
Definition Settings.h:15622
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:15944
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:15738
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:15372
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:15762
Settings & set(const Processing::Color::Experimental::Mode &value)
Set Processing::Color::Experimental::Mode.
Definition Settings.h:15274
Settings & set(const Processing::Filters::Smoothing &value)
Set Processing::Filters::Smoothing.
Definition Settings.h:15533
const Settings::RegionOfInterest & get() const
Definition Settings.h:16179
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:15989
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:15111
const Processing & processing() const
Get Processing.
Definition Settings.h:15213
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:15787
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:15904
Settings & set(const Processing &value)
Set Processing.
Definition Settings.h:15225
const Settings::Sampling::Pixel & get() const
Definition Settings.h:16269
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:15927
Settings & set(const Sampling &value)
Set Sampling.
Definition Settings.h:15669
static Settings fromSerialized(const std::string &value)
Construct a new Settings instance from a previously serialized string.
Settings & set(const Processing::Filters::Outlier::Removal::Enabled &value)
Set Processing::Filters::Outlier::Removal::Enabled.
Definition Settings.h:15491
Settings & set(const Processing::Filters::Hole::Repair::Enabled &value)
Set Processing::Filters::Hole::Repair::Enabled.
Definition Settings.h:15400
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:15832
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:15936
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:15379
Settings & set(const Processing::Filters::Smoothing::Gaussian &value)
Set Processing::Filters::Smoothing::Gaussian.
Definition Settings.h:15540
Settings & set(const Sampling::Color &value)
Set Sampling::Color.
Definition Settings.h:15676
Color & color()
Get Color.
Definition Settings.h:15155
Settings & set(const Diagnostics &value)
Set Diagnostics.
Definition Settings.h:15180
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:15915
Settings & set(const RegionOfInterest::Depth::Enabled &value)
Set RegionOfInterest::Depth::Enabled.
Definition Settings.h:15643
Settings & set(const Processing::Filters::Noise &value)
Set Processing::Filters::Noise.
Definition Settings.h:15421
const Sampling & sampling() const
Get Sampling.
Definition Settings.h:15657
void load(const std::string &fileName)
Load from the given file.
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:15842
const Settings::Acquisitions & get() const
Definition Settings.h:15690
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:15850
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:16036
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:16063
Settings & set(const Processing::Filters::Cluster &value)
Set Processing::Filters::Cluster.
Definition Settings.h:15295
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:16157
const Settings::Diagnostics & get() const
Definition Settings.h:15702
RegionOfInterest & regionOfInterest()
Get RegionOfInterest.
Definition Settings.h:15581
const Settings::Processing::Resampling & get() const
Definition Settings.h:16165
Settings & set(const Processing::Filters::Hole &value)
Set Processing::Filters::Hole.
Definition Settings.h:15386
Settings & set(const Processing::Filters::Reflection::Removal::Mode &value)
Set Processing::Filters::Reflection::Removal::Mode.
Definition Settings.h:15526
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:16147
const Settings::RegionOfInterest::Box & get() const
Definition Settings.h:16187
Settings & set(const Processing::Color::Balance &value)
Set Processing::Color::Balance.
Definition Settings.h:15239
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:16227
Settings & set(const RegionOfInterest::Depth &value)
Set RegionOfInterest::Depth.
Definition Settings.h:15636
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:15999
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:16243
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:15972
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:15870
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:16318
std::string serialize() const
Serialize to a string.
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:15754
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:16203
Settings & set(const Processing::Filters::Smoothing::Gaussian::Enabled &value)
Set Processing::Filters::Smoothing::Gaussian::Enabled.
Definition Settings.h:15547
const Settings::Processing & get() const
Definition Settings.h:15722
Settings & set(const Processing::Filters::Reflection &value)
Set Processing::Filters::Reflection.
Definition Settings.h:15505
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:16331
Settings()
Default constructor.
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:15860
Settings & set(const Processing::Filters::Outlier::Removal::Threshold &value)
Set Processing::Filters::Outlier::Removal::Threshold.
Definition Settings.h:15498
Settings & set(const Processing::Filters::Hole::Repair::HoleSize &value)
Set Processing::Filters::Hole::Repair::HoleSize.
Definition Settings.h:15407
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:16195
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:15779
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:15358
Settings & set(const RegionOfInterest::Box::Enabled &value)
Set RegionOfInterest::Box::Enabled.
Definition Settings.h:15601
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:15962
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:15893
Settings & set(const RegionOfInterest::Box::Extents &value)
Set RegionOfInterest::Box::Extents.
Definition Settings.h:15608
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:15746
Settings & set(const Processing::Resampling::Mode &value)
Set Processing::Resampling::Mode.
Definition Settings.h:15568
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:15953
const Acquisitions & acquisitions() const
Get Acquisitions.
Definition Settings.h:15130
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:15012
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:16091
Settings & set(const Processing::Filters::Experimental &value)
Set Processing::Filters::Experimental.
Definition Settings.h:15330
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:16128
const Settings::Processing::Filters & get() const
Definition Settings.h:15795
Settings & set(const Processing::Color::Experimental &value)
Set Processing::Color::Experimental.
Definition Settings.h:15267
void save(const std::string &fileName) const
Save to the given file.
Settings & set(const Engine &value)
Set Engine.
Definition Settings.h:15206
Settings & set(const RegionOfInterest::Depth::Range &value)
Set RegionOfInterest::Depth::Range.
Definition Settings.h:15650
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:15770
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:16018
Settings & set(const Processing::Resampling &value)
Set Processing::Resampling.
Definition Settings.h:15561
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal.
Definition Settings.h:15365
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:16211
Settings & set(const Processing::Color &value)
Set Processing::Color.
Definition Settings.h:15232
Settings & set(const Processing::Filters::Outlier &value)
Set Processing::Filters::Outlier.
Definition Settings.h:15477
bool operator==(const Settings &other) const
Equality operator.
Acquisitions & acquisitions()
Get Acquisitions.
Definition Settings.h:15136
Settings & set(const Processing::Filters::Reflection::Removal &value)
Set Processing::Filters::Reflection::Removal.
Definition Settings.h:15512
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:16046
const Settings::Engine & get() const
Definition Settings.h:15716
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:15803
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:16027
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:15260
Settings & set(const RegionOfInterest::Box::PointO &value)
Set RegionOfInterest::Box::PointO.
Definition Settings.h:15629
const Settings::Sampling::Color & get() const
Definition Settings.h:16263
Settings & set(const Processing::Filters::Cluster::Removal &value)
Set Processing::Filters::Cluster::Removal.
Definition Settings.h:15302
Settings & set(const RegionOfInterest::Box &value)
Set RegionOfInterest::Box.
Definition Settings.h:15594
Settings & set(const Processing::Filters::Noise::Suppression &value)
Set Processing::Filters::Noise::Suppression.
Definition Settings.h:15463
const Engine & engine() const
Get Engine.
Definition Settings.h:15194
Diagnostics & diagnostics()
Get Diagnostics.
Definition Settings.h:15174
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:16009
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:15822
const Color & color() const
Get Color.
Definition Settings.h:15149
Sampling & sampling()
Get Sampling.
Definition Settings.h:15663
Settings & set(const Processing::Filters::Reflection::Removal::Enabled &value)
Set Processing::Filters::Reflection::Removal::Enabled.
Definition Settings.h:15519
Processing & processing()
Get Processing.
Definition Settings.h:15219
Settings & set(const RegionOfInterest::Box::PointA &value)
Set RegionOfInterest::Box::PointA.
Definition Settings.h:15615
Settings & set(const Diagnostics::Enabled &value)
Set Diagnostics::Enabled.
Definition Settings.h:15187
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:15980
const Settings::Diagnostics::Enabled & get() const
Definition Settings.h:15710
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:15812
Settings & set(const Color &value)
Set Color.
Definition Settings.h:15161
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:16120
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:15881
const Settings::RegionOfInterest::Box::PointB & get() const
Definition Settings.h:16219
Settings & set(const Processing::Filters::Experimental::ContrastDistortion &value)
Set Processing::Filters::Experimental::ContrastDistortion.
Definition Settings.h:15337
Settings & set(const Sampling::Pixel &value)
Set Sampling::Pixel.
Definition Settings.h:15683
Settings & set(const Processing::Filters::Hole::Repair::Strictness &value)
Set Processing::Filters::Hole::Repair::Strictness.
Definition Settings.h:15414
Settings & set(const Processing::Color::Gamma &value)
Set Processing::Color::Gamma.
Definition Settings.h:15281
Settings & set(const Processing::Filters::Cluster::Removal::Enabled &value)
Set Processing::Filters::Cluster::Removal::Enabled.
Definition Settings.h:15309
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:16251
const Settings::Sampling & get() const
Definition Settings.h:16257
Settings & set(const Processing::Filters::Noise::Removal::Threshold &value)
Set Processing::Filters::Noise::Removal::Threshold.
Definition Settings.h:15442
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:15351
Settings & set(const Acquisitions &value)
Set Acquisitions.
Definition Settings.h:15142
Settings & set(const Processing::Filters::Smoothing::Gaussian::Sigma &value)
Set Processing::Filters::Smoothing::Gaussian::Sigma.
Definition Settings.h:15554
const Diagnostics & diagnostics() const
Get Diagnostics.
Definition Settings.h:15168
bool operator!=(const Settings &other) const
Inequality operator.
Settings & set(const Processing::Filters::Noise::Removal &value)
Set Processing::Filters::Noise::Removal.
Definition Settings.h:15428
Settings & set(const Processing::Filters::Noise::Repair &value)
Set Processing::Filters::Noise::Repair.
Definition Settings.h:15449
Settings & set(const Processing::Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Processing::Filters::Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:15316
Settings & set(const Processing::Filters::Outlier::Removal &value)
Set Processing::Filters::Outlier::Removal.
Definition Settings.h:15484
Settings & set(const RegionOfInterest &value)
Set RegionOfInterest.
Definition Settings.h:15587
Settings & set(const Processing::Filters::Noise::Removal::Enabled &value)
Set Processing::Filters::Noise::Removal::Enabled.
Definition Settings.h:15435
Engine & engine()
Get Engine.
Definition Settings.h:15200
Settings & set(const Processing::Filters::Hole::Repair &value)
Set Processing::Filters::Hole::Repair.
Definition Settings.h:15393
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction.
Definition Settings.h:15344
const Settings::Processing::Color & get() const
Definition Settings.h:15730
Settings & set(const Processing::Filters::Noise::Repair::Enabled &value)
Set Processing::Filters::Noise::Repair::Enabled.
Definition Settings.h:15456
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:16110
Settings & set(const Processing::Filters::Noise::Suppression::Enabled &value)
Set Processing::Filters::Noise::Suppression::Enabled.
Definition Settings.h:15470
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:16100
Settings & set(const Processing::Color::Balance::Green &value)
Set Processing::Color::Balance::Green.
Definition Settings.h:15253
Settings & set(const Processing::Filters &value)
Set Processing::Filters.
Definition Settings.h:15288
const RegionOfInterest & regionOfInterest() const
Get RegionOfInterest.
Definition Settings.h:15575
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:16173
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:16083
std::tuple< Settings::Acquisitions, Settings::Color, Settings::Diagnostics, Settings::Diagnostics::Enabled, Settings::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::Cluster, Settings::Processing::Filters::Cluster::Removal, Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea, 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::Hole, Settings::Processing::Filters::Hole::Repair, Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness, Settings::Processing::Filters::Noise, Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Noise::Repair, Settings::Processing::Filters::Noise::Repair::Enabled, Settings::Processing::Filters::Noise::Suppression, Settings::Processing::Filters::Noise::Suppression::Enabled, 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::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma, Settings::Processing::Resampling, Settings::Processing::Resampling::Mode, Settings::RegionOfInterest, Settings::RegionOfInterest::Box, Settings::RegionOfInterest::Box::Enabled, Settings::RegionOfInterest::Box::Extents, Settings::RegionOfInterest::Box::PointA, Settings::RegionOfInterest::Box::PointB, Settings::RegionOfInterest::Box::PointO, Settings::RegionOfInterest::Depth, Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range, Settings::Sampling, Settings::Sampling::Color, Settings::Sampling::Pixel > Descendants
Definition Settings.h:14740
Settings & set(const Processing::Color::Balance::Blue &value)
Set Processing::Color::Balance::Blue.
Definition Settings.h:15246
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:16137
friend std::ostream & operator<<(std::ostream &stream, const Settings &value)
Operator to send the value as string to a stream.
Definition Settings.h:16352
NodeType
Definition NodeType.h:49
Definition EnvironmentInfo.h:74
The main Zivid namespace. All Zivid code is found here.
Definition Application.h:84
Point with three coordinates as float.
Definition Point.h:60