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{ 200 }, 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>;
8773 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Mode" };
8776 static constexpr const char *name{
"Mode" };
8779 static constexpr const char *description{
8780 R
"description(The reflection filter has two modes: Local and Global. Global mode is generally better at
8781removing outlier points in the point cloud, whereas Local mode preserves more 3D data on
8782thin objects far from the background.
8784Additionally, Local mode behaves slightly differently depending on the Engine used. With
8785Phase engine or Stripe engine, Local mode will process faster than Global mode and remove
8786more reflection artifacts. Also with Stripe engine, Local mode might reduce the number of
8787points resolved on shiny and reflective objects. With Omni engine, Local mode will reduce
8788the amount of artifacts in low projector signal regions, but might also reduce coverage on
8789surfaces with low projector signal.
8791It is advised to use the Cluster filter together with Local mode.
8807 return { ValueType::global, ValueType::local };
8815 : m_opt{ verifyValue(value) }
8842 return m_opt == other.m_opt;
8848 return m_opt != other.m_opt;
8858 void setFromString(
const std::string &value);
8860 constexpr ValueType
static verifyValue(
const ValueType &value)
8862 return value == ValueType::global || value == ValueType::local
8864 :
throw std::invalid_argument{
8865 "Invalid value: Mode{ "
8867 static_cast<std::underlying_type<ValueType>::type
>(value))
8872 std::optional<ValueType> m_opt;
8874 friend struct DataModel::Detail::Befriend<
Mode>;
8899 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8900 typename std::enable_if<
8901 Zivid::Detail::TypeTraits::
8902 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8905 template<typename... Args>
8909 using namespace Zivid::Detail::TypeTraits;
8912 AllArgsDecayedAreUnique<Args...>::value,
8913 "Found duplicate types among the arguments passed to Removal(...). "
8914 "Types should be listed at most once.");
8916 set(std::forward<Args>(args)...);
8931 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8933 template<typename... Args>
8937 using namespace Zivid::Detail::TypeTraits;
8939 using AllArgsAreDescendantNodes =
8940 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8942 AllArgsAreDescendantNodes::value,
8943 "All arguments passed to set(...) must be descendant nodes.");
8946 AllArgsDecayedAreUnique<Args...>::value,
8947 "Found duplicate types among the arguments passed to set(...). "
8948 "Types should be listed at most once.");
8950 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8966 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8968 template<typename... Args>
8972 using namespace Zivid::Detail::TypeTraits;
8974 using AllArgsAreDescendantNodes =
8975 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8977 AllArgsAreDescendantNodes::value,
8978 "All arguments passed to copyWith(...) must be descendant nodes.");
8981 AllArgsDecayedAreUnique<Args...>::value,
8982 "Found duplicate types among the arguments passed to copyWith(...). "
8983 "Types should be listed at most once.");
8986 copy.set(std::forward<Args>(args)...);
9030 typename std::enable_if<
9031 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
9040 typename std::enable_if<
9041 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
9048 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9054 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9061 template<
typename F>
9069 template<
typename F>
9092 void setFromString(
const std::string &value);
9094 void setFromString(
const std::string &fullPath,
const std::string &value);
9096 std::string getString(
const std::string &fullPath)
const;
9101 friend struct DataModel::Detail::Befriend<
Removal>;
9128 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9129 typename std::enable_if<
9130 Zivid::Detail::TypeTraits::
9131 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9134 template<typename... Args>
9138 using namespace Zivid::Detail::TypeTraits;
9141 AllArgsDecayedAreUnique<Args...>::value,
9142 "Found duplicate types among the arguments passed to Reflection(...). "
9143 "Types should be listed at most once.");
9145 set(std::forward<Args>(args)...);
9161 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9163 template<typename... Args>
9167 using namespace Zivid::Detail::TypeTraits;
9169 using AllArgsAreDescendantNodes =
9170 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9172 AllArgsAreDescendantNodes::value,
9173 "All arguments passed to set(...) must be descendant nodes.");
9176 AllArgsDecayedAreUnique<Args...>::value,
9177 "Found duplicate types among the arguments passed to set(...). "
9178 "Types should be listed at most once.");
9180 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9197 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9199 template<typename... Args>
9203 using namespace Zivid::Detail::TypeTraits;
9205 using AllArgsAreDescendantNodes =
9206 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9208 AllArgsAreDescendantNodes::value,
9209 "All arguments passed to copyWith(...) must be descendant nodes.");
9212 AllArgsDecayedAreUnique<Args...>::value,
9213 "Found duplicate types among the arguments passed to copyWith(...). "
9214 "Types should be listed at most once.");
9217 copy.set(std::forward<Args>(args)...);
9243 m_removal.
set(value);
9250 m_removal.
set(value);
9256 typename std::enable_if<
9257 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
9266 typename std::enable_if<
9267 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
9276 typename std::enable_if<
9277 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
9284 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9291 template<
typename F>
9298 template<
typename F>
9320 void setFromString(
const std::string &value);
9322 void setFromString(
const std::string &fullPath,
const std::string &value);
9324 std::string getString(
const std::string &fullPath)
const;
9328 friend struct DataModel::Detail::Befriend<
Reflection>;
9341 static constexpr const char *path{
"Processing/Filters/Smoothing" };
9344 static constexpr const char *name{
"Smoothing" };
9347 static constexpr const char *description{ R
"description(Smoothing filters.)description" };
9359 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian" };
9362 static constexpr const char *name{
"Gaussian" };
9365 static constexpr const char *description{
9366 R
"description(Gaussian smoothing of the point cloud.)description"
9379 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Enabled" };
9382 static constexpr const char *name{
"Enabled" };
9385 static constexpr const char *description{
9386 R
"description(Enable or disable the smoothing filter.)description"
9397 return {
false,
true };
9426 return m_opt == other.m_opt;
9432 return m_opt != other.m_opt;
9442 void setFromString(
const std::string &value);
9444 std::optional<bool> m_opt;
9446 friend struct DataModel::Detail::Befriend<
Enabled>;
9459 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Sigma" };
9462 static constexpr const char *name{
"Sigma" };
9465 static constexpr const char *description{
9466 R
"description(Higher values result in smoother point clouds (Standard deviation of the filter coefficients).)description"
9483 : m_opt{ verifyValue(value) }
9504 return m_opt == other.m_opt;
9510 return m_opt != other.m_opt;
9516 return m_opt < other.m_opt;
9522 return m_opt > other.m_opt;
9528 return m_opt <= other.m_opt;
9534 return m_opt >= other.m_opt;
9544 void setFromString(
const std::string &value);
9546 constexpr ValueType
static verifyValue(
const ValueType &value)
9548 return validRange().isInRange(value)
9550 :
throw std::out_of_range{
"Sigma{ " + std::to_string(value)
9551 +
" } is not in range ["
9552 + std::to_string(validRange().min()) +
", "
9553 + std::to_string(validRange().max()) +
"]" };
9556 std::optional<double> m_opt;
9558 friend struct DataModel::Detail::Befriend<
Sigma>;
9583 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9584 typename std::enable_if<
9585 Zivid::Detail::TypeTraits::
9586 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9589 template<typename... Args>
9593 using namespace Zivid::Detail::TypeTraits;
9596 AllArgsDecayedAreUnique<Args...>::value,
9597 "Found duplicate types among the arguments passed to Gaussian(...). "
9598 "Types should be listed at most once.");
9600 set(std::forward<Args>(args)...);
9615 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9617 template<typename... Args>
9621 using namespace Zivid::Detail::TypeTraits;
9623 using AllArgsAreDescendantNodes =
9624 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9626 AllArgsAreDescendantNodes::value,
9627 "All arguments passed to set(...) must be descendant nodes.");
9630 AllArgsDecayedAreUnique<Args...>::value,
9631 "Found duplicate types among the arguments passed to set(...). "
9632 "Types should be listed at most once.");
9634 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9650 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9652 template<typename... Args>
9656 using namespace Zivid::Detail::TypeTraits;
9658 using AllArgsAreDescendantNodes =
9659 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9661 AllArgsAreDescendantNodes::value,
9662 "All arguments passed to copyWith(...) must be descendant nodes.");
9665 AllArgsDecayedAreUnique<Args...>::value,
9666 "Found duplicate types among the arguments passed to copyWith(...). "
9667 "Types should be listed at most once.");
9670 copy.set(std::forward<Args>(args)...);
9714 typename std::enable_if<
9715 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9724 typename std::enable_if<
9725 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9732 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9738 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9745 template<
typename F>
9753 template<
typename F>
9776 void setFromString(
const std::string &value);
9778 void setFromString(
const std::string &fullPath,
const std::string &value);
9780 std::string getString(
const std::string &fullPath)
const;
9785 friend struct DataModel::Detail::Befriend<
Gaussian>;
9812 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9813 typename std::enable_if<
9814 Zivid::Detail::TypeTraits::
9815 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9818 template<typename... Args>
9822 using namespace Zivid::Detail::TypeTraits;
9825 AllArgsDecayedAreUnique<Args...>::value,
9826 "Found duplicate types among the arguments passed to Smoothing(...). "
9827 "Types should be listed at most once.");
9829 set(std::forward<Args>(args)...);
9845 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9847 template<typename... Args>
9851 using namespace Zivid::Detail::TypeTraits;
9853 using AllArgsAreDescendantNodes =
9854 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9856 AllArgsAreDescendantNodes::value,
9857 "All arguments passed to set(...) must be descendant nodes.");
9860 AllArgsDecayedAreUnique<Args...>::value,
9861 "Found duplicate types among the arguments passed to set(...). "
9862 "Types should be listed at most once.");
9864 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9881 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9883 template<typename... Args>
9887 using namespace Zivid::Detail::TypeTraits;
9889 using AllArgsAreDescendantNodes =
9890 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9892 AllArgsAreDescendantNodes::value,
9893 "All arguments passed to copyWith(...) must be descendant nodes.");
9896 AllArgsDecayedAreUnique<Args...>::value,
9897 "Found duplicate types among the arguments passed to copyWith(...). "
9898 "Types should be listed at most once.");
9901 copy.set(std::forward<Args>(args)...);
9927 m_gaussian.
set(value);
9934 m_gaussian.
set(value);
9940 typename std::enable_if<
9941 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
9950 typename std::enable_if<
9951 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9960 typename std::enable_if<
9961 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9968 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9975 template<
typename F>
9982 template<
typename F>
10000 return stream << value.
toString();
10004 void setFromString(
const std::string &value);
10006 void setFromString(
const std::string &fullPath,
const std::string &value);
10008 std::string getString(
const std::string &fullPath)
const;
10012 friend struct DataModel::Detail::Befriend<
Smoothing>;
10109 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
10110 typename std::enable_if<
10111 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
10115 template<typename... Args>
10119 using namespace Zivid::Detail::TypeTraits;
10122 AllArgsDecayedAreUnique<Args...>::value,
10123 "Found duplicate types among the arguments passed to Filters(...). "
10124 "Types should be listed at most once.");
10126 set(std::forward<Args>(args)...);
10177 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
10179 template<typename... Args>
10183 using namespace Zivid::Detail::TypeTraits;
10185 using AllArgsAreDescendantNodes =
10186 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10188 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
10191 AllArgsDecayedAreUnique<Args...>::value,
10192 "Found duplicate types among the arguments passed to set(...). "
10193 "Types should be listed at most once.");
10195 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
10247 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
10249 template<typename... Args>
10253 using namespace Zivid::Detail::TypeTraits;
10255 using AllArgsAreDescendantNodes =
10256 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10258 AllArgsAreDescendantNodes::value,
10259 "All arguments passed to copyWith(...) must be descendant nodes.");
10262 AllArgsDecayedAreUnique<Args...>::value,
10263 "Found duplicate types among the arguments passed to copyWith(...). "
10264 "Types should be listed at most once.");
10266 auto copy{ *
this };
10267 copy.set(std::forward<Args>(args)...);
10293 m_cluster.
set(value);
10300 m_cluster.
set(value);
10307 m_cluster.
set(value);
10314 m_cluster.
set(value);
10321 return m_experimental;
10327 return m_experimental;
10333 m_experimental = value;
10340 m_experimental.
set(value);
10347 m_experimental.
set(value);
10354 m_experimental.
set(value);
10361 m_experimental.
set(value);
10368 m_experimental.
set(value);
10375 m_experimental.
set(value);
10382 m_experimental.
set(value);
10455 m_noise.
set(value);
10462 m_noise.
set(value);
10469 m_noise.
set(value);
10476 m_noise.
set(value);
10483 m_noise.
set(value);
10490 m_noise.
set(value);
10497 m_noise.
set(value);
10523 m_outlier.
set(value);
10530 m_outlier.
set(value);
10537 m_outlier.
set(value);
10544 return m_reflection;
10550 return m_reflection;
10556 m_reflection = value;
10563 m_reflection.
set(value);
10570 m_reflection.
set(value);
10577 m_reflection.
set(value);
10584 return m_smoothing;
10590 return m_smoothing;
10596 m_smoothing = value;
10603 m_smoothing.
set(value);
10610 m_smoothing.
set(value);
10617 m_smoothing.
set(value);
10623 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type =
10632 typename std::enable_if<
10633 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
10642 typename std::enable_if<
10643 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
10652 typename std::enable_if<
10653 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
10662 typename std::enable_if<
10663 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
10672 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
10676 return m_experimental;
10681 typename std::enable_if<
10682 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
10691 typename std::enable_if<
10692 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::
10697 return m_experimental
10703 typename std::enable_if<
10711 return m_experimental
10717 typename std::enable_if<
10725 return m_experimental
10731 typename std::enable_if<
10732 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
10737 return m_experimental
10743 typename std::enable_if<
10750 return m_experimental
10756 typename std::enable_if<
10763 return m_experimental
10769 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
10777 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::
10786 typename std::enable_if<
10787 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
10796 typename std::enable_if<
10797 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
10806 typename std::enable_if<
10807 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
10816 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type =
10826 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type = 0>
10834 typename std::enable_if<
10835 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
10844 typename std::enable_if<
10845 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
10854 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
10863 typename std::enable_if<
10864 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
10873 typename std::enable_if<
10874 std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
10883 typename std::enable_if<
10884 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
10893 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type =
10902 typename std::enable_if<
10903 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
10912 typename std::enable_if<
10913 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
10922 typename std::enable_if<
10923 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
10932 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::
10936 return m_reflection;
10941 typename std::enable_if<
10942 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
10951 typename std::enable_if<
10952 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
10961 typename std::enable_if<
10962 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
10971 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::
10975 return m_smoothing;
10980 typename std::enable_if<
10981 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
10990 typename std::enable_if<
10991 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
11000 typename std::enable_if<
11001 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
11008 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
11014 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
11017 return m_experimental;
11020 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
11026 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
11032 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
11038 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
11041 return m_reflection;
11044 template<size_t i, typename std::enable_if<i == 6, int>::type = 0>
11047 return m_smoothing;
11051 template<
typename F>
11064 template<
typename F>
11088 return stream << value.
toString();
11092 void setFromString(
const std::string &value);
11094 void setFromString(
const std::string &fullPath,
const std::string &value);
11096 std::string getString(
const std::string &fullPath)
const;
11099 Experimental m_experimental;
11103 Reflection m_reflection;
11106 friend struct DataModel::Detail::Befriend<
Filters>;
11120 static constexpr const char *path{
"Processing/Resampling" };
11123 static constexpr const char *name{
"Resampling" };
11126 static constexpr const char *description{
11127 R
"description(Settings for changing the output resolution of the point cloud.
11163 static constexpr const char *path{
"Processing/Resampling/Mode" };
11166 static constexpr const char *name{
"Mode" };
11169 static constexpr const char *description{
11170 R
"description(Setting for upsampling or downsampling the point cloud data by some factor. This operation
11171is performed after all other processing has been completed.
11173Downsampling is used to reduce the number of points in the point cloud. This is done by
11174combining each 2x2 or 4x4 group of pixels in the original point cloud into one pixel in
11175a new point cloud. This downsample functionality is identical to the downsample method
11176on the PointCloud class. The averaging process reduces noise in the point cloud, but it
11177will not improve capture speed. To improve capture speed, consider using the subsampling
11178modes found in Settings/Sampling/Pixel.
11180Upsampling is used to increase the number of points in the point cloud. It is not possible
11181to upsample beyond the full resolution of the camera, so upsampling may only be used in
11182combination with the subsampling modes found in Settings/Sampling/Pixel. For example, one may
11183combine blueSubsample2x2 with upsample2x2 to obtain a point cloud that matches a full
11184resolution 2D capture, while retaining the speed benefits of capturing the point cloud with
11185blueSubsample2x2. Upsampling is achieved by expanding pixels in the original point cloud into
11186groups of 2x2 or 4x4 pixels in a new point cloud. Where possible, values are filled at the
11187new points based on an interpolation of the surrounding original points. The points in the
11188new point cloud that correspond to points in the original point cloud are left unchanged.
11189Note that upsampling will lead to four (upsample2x2) or sixteen (upsample4x4) times as many
11190pixels in the point cloud compared to no upsampling, so users should be aware of increased
11191computational cost related to copying and analyzing this data.
11213 return { ValueType::disabled,
11214 ValueType::downsample2x2,
11215 ValueType::downsample4x4,
11216 ValueType::upsample2x2,
11217 ValueType::upsample4x4 };
11225 : m_opt{ verifyValue(value) }
11252 return m_opt == other.m_opt;
11258 return m_opt != other.m_opt;
11264 return stream << value.
toString();
11268 void setFromString(
const std::string &value);
11270 constexpr ValueType
static verifyValue(
const ValueType &value)
11272 return value == ValueType::disabled || value == ValueType::downsample2x2
11273 || value == ValueType::downsample4x4 || value == ValueType::upsample2x2
11274 || value == ValueType::upsample4x4
11276 :
throw std::invalid_argument{
11277 "Invalid value: Mode{ "
11278 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
11283 std::optional<ValueType> m_opt;
11285 friend struct DataModel::Detail::Befriend<
Mode>;
11307 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11308 typename std::enable_if<
11309 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11313 template<typename... Args>
11317 using namespace Zivid::Detail::TypeTraits;
11320 AllArgsDecayedAreUnique<Args...>::value,
11321 "Found duplicate types among the arguments passed to Resampling(...). "
11322 "Types should be listed at most once.");
11324 set(std::forward<Args>(args)...);
11338 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11340 template<typename... Args>
11344 using namespace Zivid::Detail::TypeTraits;
11346 using AllArgsAreDescendantNodes =
11347 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11349 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11352 AllArgsDecayedAreUnique<Args...>::value,
11353 "Found duplicate types among the arguments passed to set(...). "
11354 "Types should be listed at most once.");
11356 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
11371 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
11373 template<typename... Args>
11377 using namespace Zivid::Detail::TypeTraits;
11379 using AllArgsAreDescendantNodes =
11380 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11382 AllArgsAreDescendantNodes::value,
11383 "All arguments passed to copyWith(...) must be descendant nodes.");
11386 AllArgsDecayedAreUnique<Args...>::value,
11387 "Found duplicate types among the arguments passed to copyWith(...). "
11388 "Types should be listed at most once.");
11390 auto copy{ *
this };
11391 copy.set(std::forward<Args>(args)...);
11416 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type =
11423 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
11430 template<
typename F>
11437 template<
typename F>
11455 return stream << value.
toString();
11459 void setFromString(
const std::string &value);
11461 void setFromString(
const std::string &fullPath,
const std::string &value);
11463 std::string getString(
const std::string &fullPath)
const;
11467 friend struct DataModel::Detail::Befriend<
Resampling>;
11586 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11587 typename std::enable_if<
11588 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11592 template<typename... Args>
11596 using namespace Zivid::Detail::TypeTraits;
11599 AllArgsDecayedAreUnique<Args...>::value,
11600 "Found duplicate types among the arguments passed to Processing(...). "
11601 "Types should be listed at most once.");
11603 set(std::forward<Args>(args)...);
11665 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11667 template<typename... Args>
11671 using namespace Zivid::Detail::TypeTraits;
11673 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11675 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11678 AllArgsDecayedAreUnique<Args...>::value,
11679 "Found duplicate types among the arguments passed to set(...). "
11680 "Types should be listed at most once.");
11682 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
11745 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
11747 template<typename... Args>
11751 using namespace Zivid::Detail::TypeTraits;
11753 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11755 AllArgsAreDescendantNodes::value,
11756 "All arguments passed to copyWith(...) must be descendant nodes.");
11759 AllArgsDecayedAreUnique<Args...>::value,
11760 "Found duplicate types among the arguments passed to copyWith(...). "
11761 "Types should be listed at most once.");
11763 auto copy{ *
this };
11764 copy.set(std::forward<Args>(args)...);
11790 m_color.
set(value);
11797 m_color.
set(value);
11804 m_color.
set(value);
11811 m_color.
set(value);
11818 m_color.
set(value);
11825 m_color.
set(value);
11832 m_color.
set(value);
11858 m_filters.
set(value);
11865 m_filters.
set(value);
11872 m_filters.
set(value);
11879 m_filters.
set(value);
11886 m_filters.
set(value);
11893 m_filters.
set(value);
11900 m_filters.
set(value);
11907 m_filters.
set(value);
11914 m_filters.
set(value);
11921 m_filters.
set(value);
11928 m_filters.
set(value);
11935 m_filters.
set(value);
11942 m_filters.
set(value);
11949 m_filters.
set(value);
11956 m_filters.
set(value);
11963 m_filters.
set(value);
11970 m_filters.
set(value);
11977 m_filters.
set(value);
11984 m_filters.
set(value);
11991 m_filters.
set(value);
11998 m_filters.
set(value);
12005 m_filters.
set(value);
12012 m_filters.
set(value);
12019 m_filters.
set(value);
12026 m_filters.
set(value);
12033 m_filters.
set(value);
12040 m_filters.
set(value);
12047 m_filters.
set(value);
12054 m_filters.
set(value);
12061 m_filters.
set(value);
12068 m_filters.
set(value);
12075 m_filters.
set(value);
12082 m_filters.
set(value);
12089 m_filters.
set(value);
12096 m_filters.
set(value);
12103 m_filters.
set(value);
12110 m_filters.
set(value);
12117 m_filters.
set(value);
12124 return m_resampling;
12130 return m_resampling;
12136 m_resampling = value;
12143 m_resampling.
set(value);
12149 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
12157 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
12165 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type =
12174 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
12183 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type =
12192 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type =
12201 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
12210 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
12218 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
12226 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
12234 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
12243 typename std::enable_if<
12244 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
12253 typename std::enable_if<
12254 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
12263 typename std::enable_if<
12264 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
12273 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
12282 typename std::enable_if<
12283 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
12292 typename std::enable_if<
12293 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
12302 typename std::enable_if<
12315 typename std::enable_if<
12328 typename std::enable_if<
12329 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
12338 typename std::enable_if<
12339 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
12350 typename std::enable_if<
12363 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
12371 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::
12380 typename std::enable_if<
12381 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
12390 typename std::enable_if<
12391 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
12400 typename std::enable_if<
12401 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
12410 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
12418 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::
12427 typename std::enable_if<
12428 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
12437 typename std::enable_if<
12438 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
12447 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
12456 typename std::enable_if<
12457 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
12467 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::type = 0>
12475 typename std::enable_if<
12476 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
12485 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
12493 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
12502 typename std::enable_if<
12503 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
12512 typename std::enable_if<
12513 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
12522 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type =
12531 typename std::enable_if<
12532 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
12541 typename std::enable_if<
12542 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
12551 typename std::enable_if<
12552 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
12561 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type =
12570 typename std::enable_if<
12571 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
12580 typename std::enable_if<
12581 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
12590 typename std::enable_if<
12591 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
12600 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling>::value,
int>::type = 0>
12603 return m_resampling;
12608 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type = 0>
12614 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
12620 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
12626 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
12629 return m_resampling;
12633 template<
typename F>
12642 template<
typename F>
12662 return stream << value.
toString();
12666 void setFromString(
const std::string &value);
12668 void setFromString(
const std::string &fullPath,
const std::string &value);
12670 std::string getString(
const std::string &fullPath)
const;
12676 friend struct DataModel::Detail::Befriend<
Processing>;
12690 static constexpr const char *path{
"RegionOfInterest" };
12693 static constexpr const char *name{
"RegionOfInterest" };
12696 static constexpr const char *description{ R
"description(Removes points outside the region of interest.
12724 static constexpr const char *path{
"RegionOfInterest/Box" };
12727 static constexpr const char *name{
"Box" };
12730 static constexpr const char *description{
12731 R
"description(Removes points outside the given three-dimensional box.
12733Using this feature may significantly speed up acquisition and processing time, because
12734one can avoid acquiring and processing data that is guaranteed to fall outside of the
12735region of interest. The degree of speed-up depends on the size and shape of the box.
12736Generally, a smaller box yields a greater speed-up.
12738The box is defined by three points: O, A and B. These points define two vectors,
12739OA that goes from PointO to PointA, and OB that goes from PointO to PointB.
12740This gives 4 points O, A, B and (O + OA + OB), that together form a
12741parallelogram in 3D.
12743Two extents can be provided, to extrude the parallelogram along the surface
12744normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped).
12745The surface normal vector is defined by the cross product OA x OB.
12759 static constexpr const char *path{
"RegionOfInterest/Box/Enabled" };
12762 static constexpr const char *name{
"Enabled" };
12765 static constexpr const char *description{
12766 R
"description(Enable or disable box filter.)description"
12777 return {
false,
true };
12806 return m_opt == other.m_opt;
12812 return m_opt != other.m_opt;
12818 return stream << value.
toString();
12822 void setFromString(
const std::string &value);
12824 std::optional<bool> m_opt;
12826 friend struct DataModel::Detail::Befriend<
Enabled>;
12839 static constexpr const char *path{
"RegionOfInterest/Box/Extents" };
12842 static constexpr const char *name{
"Extents" };
12845 static constexpr const char *description{
12846 R
"description(Two points on the normal describing the direction and distance from the plane from which the normal is derived.)description"
12876 explicit constexpr Extents(
double minValue,
double maxValue)
12883 return m_opt == other.m_opt;
12889 return m_opt != other.m_opt;
12895 return stream << value.
toString();
12899 void setFromString(
const std::string &value);
12901 std::optional<Zivid::Range<double>> m_opt;
12903 friend struct DataModel::Detail::Befriend<
Extents>;
12916 static constexpr const char *path{
"RegionOfInterest/Box/PointA" };
12919 static constexpr const char *name{
"PointA" };
12922 static constexpr const char *description{
12923 R
"description(A point such that the vector from PointO to PointA describes the first edge of the parallelogram.)description"
12953 explicit constexpr PointA(
float x,
float y,
float z)
12960 return m_opt == other.m_opt;
12966 return m_opt != other.m_opt;
12972 return stream << value.
toString();
12976 void setFromString(
const std::string &value);
12978 std::optional<Zivid::PointXYZ> m_opt;
12980 friend struct DataModel::Detail::Befriend<
PointA>;
12993 static constexpr const char *path{
"RegionOfInterest/Box/PointB" };
12996 static constexpr const char *name{
"PointB" };
12999 static constexpr const char *description{
13000 R
"description(A point such that the vector from PointO to PointB describes the second edge of the parallelogram.)description"
13030 explicit constexpr PointB(
float x,
float y,
float z)
13037 return m_opt == other.m_opt;
13043 return m_opt != other.m_opt;
13049 return stream << value.
toString();
13053 void setFromString(
const std::string &value);
13055 std::optional<Zivid::PointXYZ> m_opt;
13057 friend struct DataModel::Detail::Befriend<
PointB>;
13070 static constexpr const char *path{
"RegionOfInterest/Box/PointO" };
13073 static constexpr const char *name{
"PointO" };
13076 static constexpr const char *description{
13077 R
"description(The point at the intersection of two adjacent edges defining a parallelogram.)description"
13107 explicit constexpr PointO(
float x,
float y,
float z)
13114 return m_opt == other.m_opt;
13120 return m_opt != other.m_opt;
13126 return stream << value.
toString();
13130 void setFromString(
const std::string &value);
13132 std::optional<Zivid::PointXYZ> m_opt;
13134 friend struct DataModel::Detail::Befriend<
PointO>;
13165 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13166 typename std::enable_if<
13167 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13171 template<typename... Args>
13175 using namespace Zivid::Detail::TypeTraits;
13178 AllArgsDecayedAreUnique<Args...>::value,
13179 "Found duplicate types among the arguments passed to Box(...). "
13180 "Types should be listed at most once.");
13182 set(std::forward<Args>(args)...);
13200 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13202 template<typename... Args>
13206 using namespace Zivid::Detail::TypeTraits;
13208 using AllArgsAreDescendantNodes =
13209 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13211 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13214 AllArgsDecayedAreUnique<Args...>::value,
13215 "Found duplicate types among the arguments passed to set(...). "
13216 "Types should be listed at most once.");
13218 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13237 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13239 template<typename... Args>
13243 using namespace Zivid::Detail::TypeTraits;
13245 using AllArgsAreDescendantNodes =
13246 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13248 AllArgsAreDescendantNodes::value,
13249 "All arguments passed to copyWith(...) must be descendant nodes.");
13252 AllArgsDecayedAreUnique<Args...>::value,
13253 "Found duplicate types among the arguments passed to copyWith(...). "
13254 "Types should be listed at most once.");
13256 auto copy{ *
this };
13257 copy.set(std::forward<Args>(args)...);
13358 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::
13367 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::
13376 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::
13385 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::
13394 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::
13401 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13407 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13413 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
13419 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
13425 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
13432 template<
typename F>
13443 template<
typename F>
13465 return stream << value.
toString();
13469 void setFromString(
const std::string &value);
13471 void setFromString(
const std::string &fullPath,
const std::string &value);
13473 std::string getString(
const std::string &fullPath)
const;
13481 friend struct DataModel::Detail::Befriend<
Box>;
13496 static constexpr const char *path{
"RegionOfInterest/Depth" };
13499 static constexpr const char *name{
"Depth" };
13502 static constexpr const char *description{
13503 R
"description(Removes points that reside outside of a depth range, meaning that their Z coordinate
13504falls above a given maximum or below a given minimum.
13518 static constexpr const char *path{
"RegionOfInterest/Depth/Enabled" };
13521 static constexpr const char *name{
"Enabled" };
13524 static constexpr const char *description{
13525 R
"description(Enable or disable depth filter.)description"
13536 return {
false,
true };
13565 return m_opt == other.m_opt;
13571 return m_opt != other.m_opt;
13577 return stream << value.
toString();
13581 void setFromString(
const std::string &value);
13583 std::optional<bool> m_opt;
13585 friend struct DataModel::Detail::Befriend<
Enabled>;
13598 static constexpr const char *path{
"RegionOfInterest/Depth/Range" };
13601 static constexpr const char *name{
"Range" };
13604 static constexpr const char *description{
13605 R
"description(Specify the minimum and maximum Z value that will be included.)description"
13635 explicit constexpr Range(
double minValue,
double maxValue)
13642 return m_opt == other.m_opt;
13648 return m_opt != other.m_opt;
13654 return stream << value.
toString();
13658 void setFromString(
const std::string &value);
13660 std::optional<Zivid::Range<double>> m_opt;
13662 friend struct DataModel::Detail::Befriend<
Range>;
13666 std::tuple<Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range>;
13686 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13687 typename std::enable_if<
13688 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13692 template<typename... Args>
13696 using namespace Zivid::Detail::TypeTraits;
13699 AllArgsDecayedAreUnique<Args...>::value,
13700 "Found duplicate types among the arguments passed to Depth(...). "
13701 "Types should be listed at most once.");
13703 set(std::forward<Args>(args)...);
13718 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13720 template<typename... Args>
13724 using namespace Zivid::Detail::TypeTraits;
13726 using AllArgsAreDescendantNodes =
13727 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13729 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13732 AllArgsDecayedAreUnique<Args...>::value,
13733 "Found duplicate types among the arguments passed to set(...). "
13734 "Types should be listed at most once.");
13736 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13752 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13754 template<typename... Args>
13758 using namespace Zivid::Detail::TypeTraits;
13760 using AllArgsAreDescendantNodes =
13761 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13763 AllArgsAreDescendantNodes::value,
13764 "All arguments passed to copyWith(...) must be descendant nodes.");
13767 AllArgsDecayedAreUnique<Args...>::value,
13768 "Found duplicate types among the arguments passed to copyWith(...). "
13769 "Types should be listed at most once.");
13771 auto copy{ *
this };
13772 copy.set(std::forward<Args>(args)...);
13816 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::
13825 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::
13832 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13838 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13845 template<
typename F>
13853 template<
typename F>
13872 return stream << value.
toString();
13876 void setFromString(
const std::string &value);
13878 void setFromString(
const std::string &fullPath,
const std::string &value);
13880 std::string getString(
const std::string &fullPath)
const;
13885 friend struct DataModel::Detail::Befriend<
Depth>;
13924 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13925 typename std::enable_if<
13926 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13930 template<typename... Args>
13934 using namespace Zivid::Detail::TypeTraits;
13937 AllArgsDecayedAreUnique<Args...>::value,
13938 "Found duplicate types among the arguments passed to RegionOfInterest(...). "
13939 "Types should be listed at most once.");
13941 set(std::forward<Args>(args)...);
13963 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13965 template<typename... Args>
13969 using namespace Zivid::Detail::TypeTraits;
13971 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13973 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13976 AllArgsDecayedAreUnique<Args...>::value,
13977 "Found duplicate types among the arguments passed to set(...). "
13978 "Types should be listed at most once.");
13980 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
14003 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
14005 template<typename... Args>
14009 using namespace Zivid::Detail::TypeTraits;
14011 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14013 AllArgsAreDescendantNodes::value,
14014 "All arguments passed to copyWith(...) must be descendant nodes.");
14017 AllArgsDecayedAreUnique<Args...>::value,
14018 "Found duplicate types among the arguments passed to copyWith(...). "
14019 "Types should be listed at most once.");
14021 auto copy{ *
this };
14022 copy.set(std::forward<Args>(args)...);
14102 m_depth.
set(value);
14109 m_depth.
set(value);
14115 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
14123 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type =
14132 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type =
14141 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
14149 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
14157 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
14165 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
14173 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type =
14182 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type =
14189 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
14195 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
14202 template<
typename F>
14210 template<
typename F>
14229 return stream << value.
toString();
14233 void setFromString(
const std::string &value);
14235 void setFromString(
const std::string &fullPath,
const std::string &value);
14237 std::string getString(
const std::string &fullPath)
const;
14256 static constexpr const char *path{
"Sampling" };
14259 static constexpr const char *name{
"Sampling" };
14262 static constexpr const char *description{ R
"description(Sampling settings.
14287 static constexpr const char *path{
"Sampling/Color" };
14290 static constexpr const char *name{
"Color" };
14293 static constexpr const char *description{
14294 R
"description(Choose how to sample colors for the point cloud. The `rgb` option gives a 2D image
14295with full colors. The `grayscale` option gives a grayscale (r=g=b) 2D image, which
14296can be acquired faster than full colors. The `disabled` option gives no colors and
14297can allow for even faster captures.
14299The `grayscale` option is not available on all camera models.
14301This setting is deprecated as of SDK 2.14. This setting will be removed in the next SDK major
14302version (SDK 3.0). The recommended way to do a 2D+3D capture is to set a `Settings2D` object
14303in the `Settings/Color` field. Tip: If you want to convert an existing settings.yml file to
14304the recommended API, you can import the .yml file into Zivid Studio and then re-export it to
14323 return { ValueType::rgb, ValueType::disabled, ValueType::grayscale };
14331 : m_opt{ verifyValue(value) }
14358 return m_opt == other.m_opt;
14364 return m_opt != other.m_opt;
14370 return stream << value.
toString();
14374 void setFromString(
const std::string &value);
14376 constexpr ValueType
static verifyValue(
const ValueType &value)
14378 return value == ValueType::rgb || value == ValueType::disabled || value == ValueType::grayscale
14380 :
throw std::invalid_argument{
14381 "Invalid value: Color{ "
14382 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14386 std::optional<ValueType> m_opt;
14388 friend struct DataModel::Detail::Befriend<
Color>;
14412 static constexpr const char *path{
"Sampling/Pixel" };
14415 static constexpr const char *name{
"Pixel" };
14418 static constexpr const char *description{
14419 R
"description(For Zivid 2/2+, this setting controls whether to read out the full image sensor and
14420use white projector light or to subsample pixels for specific color channels with
14421corresponding projector light. Picking a specific color channel can help reduce noise
14422and effects of ambient light - projecting blue light is recommended.
14424For Zivid 2+R, the user does not have to set the projection color and should only
14425consider whether to scale the resolution `by2x2` or `by4x4`. Both of these modes
14426will boost the signal strength by about 4x compared to `all`, so the user should
14427consider a corresponding reduction in exposure time.
14429Sampling at a decreased resolution decreases capture time, as less data will be captured and processed.
14455 return { ValueType::all,
14456 ValueType::blueSubsample2x2,
14457 ValueType::redSubsample2x2,
14458 ValueType::blueSubsample4x4,
14459 ValueType::redSubsample4x4,
14461 ValueType::by4x4 };
14469 : m_opt{ verifyValue(value) }
14496 return m_opt == other.m_opt;
14502 return m_opt != other.m_opt;
14508 return stream << value.
toString();
14512 void setFromString(
const std::string &value);
14514 constexpr ValueType
static verifyValue(
const ValueType &value)
14516 return value == ValueType::all || value == ValueType::blueSubsample2x2
14517 || value == ValueType::redSubsample2x2 || value == ValueType::blueSubsample4x4
14518 || value == ValueType::redSubsample4x4 || value == ValueType::by2x2
14519 || value == ValueType::by4x4
14521 :
throw std::invalid_argument{
14522 "Invalid value: Pixel{ "
14523 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14527 std::optional<ValueType> m_opt;
14529 friend struct DataModel::Detail::Befriend<
Pixel>;
14532 using Descendants = std::tuple<Settings::Sampling::Color, Settings::Sampling::Pixel>;
14552 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14553 typename std::enable_if<
14554 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
14558 template<typename... Args>
14562 using namespace Zivid::Detail::TypeTraits;
14565 AllArgsDecayedAreUnique<Args...>::value,
14566 "Found duplicate types among the arguments passed to Sampling(...). "
14567 "Types should be listed at most once.");
14569 set(std::forward<Args>(args)...);
14584 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
14586 template<typename... Args>
14590 using namespace Zivid::Detail::TypeTraits;
14592 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14594 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
14597 AllArgsDecayedAreUnique<Args...>::value,
14598 "Found duplicate types among the arguments passed to set(...). "
14599 "Types should be listed at most once.");
14601 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
14617 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
14619 template<typename... Args>
14623 using namespace Zivid::Detail::TypeTraits;
14625 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14627 AllArgsAreDescendantNodes::value,
14628 "All arguments passed to copyWith(...) must be descendant nodes.");
14631 AllArgsDecayedAreUnique<Args...>::value,
14632 "Found duplicate types among the arguments passed to copyWith(...). "
14633 "Types should be listed at most once.");
14635 auto copy{ *
this };
14636 copy.set(std::forward<Args>(args)...);
14680 typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
14688 typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
14694 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
14700 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
14707 template<
typename F>
14715 template<
typename F>
14734 return stream << value.
toString();
14738 void setFromString(
const std::string &value);
14740 void setFromString(
const std::string &fullPath,
const std::string &value);
14742 std::string getString(
const std::string &fullPath)
const;
14747 friend struct DataModel::Detail::Befriend<
Sampling>;
14921 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14922 typename std::enable_if<
14923 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
14926 template<typename... Args>
14930 using namespace Zivid::Detail::TypeTraits;
14933 AllArgsDecayedAreUnique<Args...>::value,
14934 "Found duplicate types among the arguments passed to Settings(...). "
14935 "Types should be listed at most once.");
14937 set(std::forward<Args>(args)...);
15018 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
15020 template<typename... Args>
15024 using namespace Zivid::Detail::TypeTraits;
15026 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
15028 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
15031 AllArgsDecayedAreUnique<Args...>::value,
15032 "Found duplicate types among the arguments passed to set(...). "
15033 "Types should be listed at most once.");
15035 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
15117 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
15119 template<typename... Args>
15123 using namespace Zivid::Detail::TypeTraits;
15125 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
15127 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
15130 AllArgsDecayedAreUnique<Args...>::value,
15131 "Found duplicate types among the arguments passed to copyWith(...). "
15132 "Types should be listed at most once.");
15134 auto copy{ *
this };
15135 copy.set(std::forward<Args>(args)...);
15142 return m_acquisitions;
15148 return m_acquisitions;
15154 m_acquisitions = value;
15180 return m_diagnostics;
15186 return m_diagnostics;
15192 m_diagnostics = value;
15199 m_diagnostics.
set(value);
15225 return m_processing;
15231 return m_processing;
15237 m_processing = value;
15244 m_processing.
set(value);
15251 m_processing.
set(value);
15258 m_processing.
set(value);
15265 m_processing.
set(value);
15272 m_processing.
set(value);
15279 m_processing.
set(value);
15286 m_processing.
set(value);
15293 m_processing.
set(value);
15300 m_processing.
set(value);
15307 m_processing.
set(value);
15314 m_processing.
set(value);
15321 m_processing.
set(value);
15328 m_processing.
set(value);
15335 m_processing.
set(value);
15342 m_processing.
set(value);
15349 m_processing.
set(value);
15356 m_processing.
set(value);
15363 m_processing.
set(value);
15370 m_processing.
set(value);
15377 m_processing.
set(value);
15384 m_processing.
set(value);
15391 m_processing.
set(value);
15398 m_processing.
set(value);
15405 m_processing.
set(value);
15412 m_processing.
set(value);
15419 m_processing.
set(value);
15426 m_processing.
set(value);
15433 m_processing.
set(value);
15440 m_processing.
set(value);
15447 m_processing.
set(value);
15454 m_processing.
set(value);
15461 m_processing.
set(value);
15468 m_processing.
set(value);
15475 m_processing.
set(value);
15482 m_processing.
set(value);
15489 m_processing.
set(value);
15496 m_processing.
set(value);
15503 m_processing.
set(value);
15510 m_processing.
set(value);
15517 m_processing.
set(value);
15524 m_processing.
set(value);
15531 m_processing.
set(value);
15538 m_processing.
set(value);
15545 m_processing.
set(value);
15552 m_processing.
set(value);
15559 m_processing.
set(value);
15566 m_processing.
set(value);
15573 m_processing.
set(value);
15580 m_processing.
set(value);
15587 return m_regionOfInterest;
15593 return m_regionOfInterest;
15599 m_regionOfInterest = value;
15606 m_regionOfInterest.
set(value);
15613 m_regionOfInterest.
set(value);
15620 m_regionOfInterest.
set(value);
15627 m_regionOfInterest.
set(value);
15634 m_regionOfInterest.
set(value);
15641 m_regionOfInterest.
set(value);
15648 m_regionOfInterest.
set(value);
15655 m_regionOfInterest.
set(value);
15662 m_regionOfInterest.
set(value);
15681 m_sampling = value;
15688 m_sampling.
set(value);
15695 m_sampling.
set(value);
15699 template<typename T, typename std::enable_if<std::is_same<T, Settings::Acquisitions>::value,
int>::type = 0>
15702 return m_acquisitions;
15705 template<typename T, typename std::enable_if<std::is_same<T, Settings::Color>::value,
int>::type = 0>
15711 template<typename T, typename std::enable_if<std::is_same<T, Settings::Diagnostics>::value,
int>::type = 0>
15714 return m_diagnostics;
15719 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
15725 template<typename T, typename std::enable_if<std::is_same<T, Settings::Engine>::value,
int>::type = 0>
15731 template<typename T, typename std::enable_if<std::is_same<T, Settings::Processing>::value,
int>::type = 0>
15734 return m_processing;
15739 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
15747 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
15755 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type = 0>
15763 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::type = 0>
15771 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
15779 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type = 0>
15787 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
15796 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
15804 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
15812 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
15820 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
15829 typename std::enable_if<
15830 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
15839 typename std::enable_if<
15840 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
15849 typename std::enable_if<
15850 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
15859 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::type = 0>
15867 typename std::enable_if<
15868 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
15877 typename std::enable_if<
15878 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
15887 typename std::enable_if<
15888 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled>::
15893 return m_processing
15899 typename std::enable_if<
15900 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength>::
15905 return m_processing
15911 typename std::enable_if<
15912 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
15921 typename std::enable_if<
15922 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
15927 return m_processing
15933 typename std::enable_if<
15934 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold>::
15939 return m_processing
15945 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
15953 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::type = 0>
15961 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
int>::
15971 enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
int>::type = 0>
15979 typename std::enable_if<
15980 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
15989 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
15997 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type =
16006 typename std::enable_if<
16007 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
16016 typename std::enable_if<
16017 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
16026 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::type =
16036 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
int>::type = 0>
16044 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::
16053 typename std::enable_if<
16054 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
16063 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
16071 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
16080 typename std::enable_if<
16081 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
16090 typename std::enable_if<
16091 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
16100 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type = 0>
16108 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
int>::
16117 typename std::enable_if<
16118 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
16127 typename std::enable_if<
16128 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
16137 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type = 0>
16145 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
int>::
16154 typename std::enable_if<
16155 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
16164 typename std::enable_if<
16165 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
16174 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling>::value,
int>::type = 0>
16182 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type = 0>
16188 template<typename T, typename std::enable_if<std::is_same<T, Settings::RegionOfInterest>::value,
int>::type = 0>
16191 return m_regionOfInterest;
16196 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
16204 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type = 0>
16212 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type = 0>
16220 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
16228 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
16236 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
16244 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
16252 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type = 0>
16260 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type = 0>
16266 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling>::value,
int>::type = 0>
16272 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
16278 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
16284 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
16287 return m_acquisitions;
16290 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
16296 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
16299 return m_diagnostics;
16302 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
16308 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
16311 return m_processing;
16314 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
16317 return m_regionOfInterest;
16320 template<size_t i, typename std::enable_if<i == 6, int>::type = 0>
16327 template<
typename F>
16335 f(m_regionOfInterest);
16340 template<
typename F>
16348 f(m_regionOfInterest);
16364 return stream << value.
toString();
16368 void save(
const std::string &fileName)
const;
16371 void load(
const std::string &fileName);
16374 void setFromString(
const std::string &value);
16376 void setFromString(
const std::string &fullPath,
const std::string &value);
16378 std::string getString(
const std::string &fullPath)
const;
16388 friend struct DataModel::Detail::Befriend<
Settings>;
16393 struct Settings::Version<27>
16416# pragma warning(pop)
16420# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
16425 struct tuple_size<
Zivid::Settings::Diagnostics> : integral_constant<size_t, 1>
16429 struct tuple_element<i,
Zivid::Settings::Diagnostics>
16431 static_assert(i < tuple_size<Zivid::Settings::Diagnostics>::value,
"Index must be less than 1");
16434 =
decltype(declval<Zivid::Settings::Diagnostics>().get<i>());
16438 struct tuple_size<
Zivid::Settings::Processing> : integral_constant<size_t, 3>
16442 struct tuple_element<i,
Zivid::Settings::Processing>
16444 static_assert(i < tuple_size<Zivid::Settings::Processing>::value,
"Index must be less than 3");
16447 =
decltype(declval<Zivid::Settings::Processing>().get<i>());
16451 struct tuple_size<
Zivid::Settings::Processing::Color> : integral_constant<size_t, 3>
16455 struct tuple_element<i,
Zivid::Settings::Processing::Color>
16457 static_assert(i < tuple_size<Zivid::Settings::Processing::Color>::value,
"Index must be less than 3");
16460 =
decltype(declval<Zivid::Settings::Processing::Color>().get<i>());
16464 struct tuple_size<
Zivid::Settings::Processing::Color::Balance> : integral_constant<size_t, 3>
16468 struct tuple_element<i,
Zivid::Settings::Processing::Color::Balance>
16470 static_assert(i < tuple_size<Zivid::Settings::Processing::Color::Balance>::value,
"Index must be less than 3");
16473 =
decltype(declval<Zivid::Settings::Processing::Color::Balance>().get<i>());
16477 struct tuple_size<
Zivid::Settings::Processing::Color::Experimental> : integral_constant<size_t, 1>
16481 struct tuple_element<i,
Zivid::Settings::Processing::Color::Experimental>
16484 i < tuple_size<Zivid::Settings::Processing::Color::Experimental>::value,
16485 "Index must be less than 1");
16488 =
decltype(declval<Zivid::Settings::Processing::Color::Experimental>().get<i>());
16492 struct tuple_size<
Zivid::Settings::Processing::Filters> : integral_constant<size_t, 7>
16496 struct tuple_element<i,
Zivid::Settings::Processing::Filters>
16498 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters>::value,
"Index must be less than 7");
16501 =
decltype(declval<Zivid::Settings::Processing::Filters>().get<i>());
16505 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster> : integral_constant<size_t, 1>
16509 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster>
16512 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster>::value,
16513 "Index must be less than 1");
16516 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster>().get<i>());
16520 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster::Removal> : integral_constant<size_t, 3>
16524 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster::Removal>
16527 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster::Removal>::value,
16528 "Index must be less than 3");
16531 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster::Removal>().get<i>());
16535 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental> : integral_constant<size_t, 1>
16539 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental>
16542 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental>::value,
16543 "Index must be less than 1");
16546 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental>().get<i>());
16550 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16551 : integral_constant<size_t, 2>
16555 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16558 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
16559 "Index must be less than 2");
16562 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>().get<i>());
16566 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16567 : integral_constant<size_t, 2>
16571 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16574 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
16575 "Index must be less than 2");
16578 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>()
16583 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16584 : integral_constant<size_t, 2>
16588 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16591 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
16592 "Index must be less than 2");
16595 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>()
16600 struct tuple_size<
Zivid::Settings::Processing::Filters::Hole> : integral_constant<size_t, 1>
16604 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Hole>
16606 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Hole>::value,
"Index must be less than 1");
16609 =
decltype(declval<Zivid::Settings::Processing::Filters::Hole>().get<i>());
16613 struct tuple_size<
Zivid::Settings::Processing::Filters::Hole::Repair> : integral_constant<size_t, 3>
16617 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Hole::Repair>
16620 i < tuple_size<Zivid::Settings::Processing::Filters::Hole::Repair>::value,
16621 "Index must be less than 3");
16624 =
decltype(declval<Zivid::Settings::Processing::Filters::Hole::Repair>().get<i>());
16628 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise> : integral_constant<size_t, 3>
16632 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise>
16634 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Noise>::value,
"Index must be less than 3");
16637 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise>().get<i>());
16641 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Removal> : integral_constant<size_t, 2>
16645 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Removal>
16648 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Removal>::value,
16649 "Index must be less than 2");
16652 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Removal>().get<i>());
16656 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Repair> : integral_constant<size_t, 1>
16660 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Repair>
16663 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Repair>::value,
16664 "Index must be less than 1");
16667 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Repair>().get<i>());
16671 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Suppression> : integral_constant<size_t, 1>
16675 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Suppression>
16678 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Suppression>::value,
16679 "Index must be less than 1");
16682 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Suppression>().get<i>());
16686 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier> : integral_constant<size_t, 1>
16690 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier>
16693 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier>::value,
16694 "Index must be less than 1");
16697 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier>().get<i>());
16701 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier::Removal> : integral_constant<size_t, 2>
16705 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier::Removal>
16708 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier::Removal>::value,
16709 "Index must be less than 2");
16712 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier::Removal>().get<i>());
16716 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection> : integral_constant<size_t, 1>
16720 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection>
16723 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection>::value,
16724 "Index must be less than 1");
16727 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection>().get<i>());
16731 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal> : integral_constant<size_t, 2>
16735 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal>
16738 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal>::value,
16739 "Index must be less than 2");
16742 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal>().get<i>());
16746 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing> : integral_constant<size_t, 1>
16750 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing>
16753 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing>::value,
16754 "Index must be less than 1");
16757 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing>().get<i>());
16761 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing::Gaussian> : integral_constant<size_t, 2>
16765 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing::Gaussian>
16768 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>::value,
16769 "Index must be less than 2");
16772 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>().get<i>());
16776 struct tuple_size<
Zivid::Settings::Processing::Resampling> : integral_constant<size_t, 1>
16780 struct tuple_element<i,
Zivid::Settings::Processing::Resampling>
16782 static_assert(i < tuple_size<Zivid::Settings::Processing::Resampling>::value,
"Index must be less than 1");
16785 =
decltype(declval<Zivid::Settings::Processing::Resampling>().get<i>());
16789 struct tuple_size<
Zivid::Settings::RegionOfInterest> : integral_constant<size_t, 2>
16793 struct tuple_element<i,
Zivid::Settings::RegionOfInterest>
16795 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest>::value,
"Index must be less than 2");
16798 =
decltype(declval<Zivid::Settings::RegionOfInterest>().get<i>());
16802 struct tuple_size<
Zivid::Settings::RegionOfInterest::Box> : integral_constant<size_t, 5>
16806 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Box>
16808 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Box>::value,
"Index must be less than 5");
16811 =
decltype(declval<Zivid::Settings::RegionOfInterest::Box>().get<i>());
16815 struct tuple_size<
Zivid::Settings::RegionOfInterest::Depth> : integral_constant<size_t, 2>
16819 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Depth>
16821 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Depth>::value,
"Index must be less than 2");
16824 =
decltype(declval<Zivid::Settings::RegionOfInterest::Depth>().get<i>());
16828 struct tuple_size<
Zivid::Settings::Sampling> : integral_constant<size_t, 2>
16832 struct tuple_element<i,
Zivid::Settings::Sampling>
16834 static_assert(i < tuple_size<Zivid::Settings::Sampling>::value,
"Index must be less than 2");
16837 =
decltype(declval<Zivid::Settings::Sampling>().get<i>());
16841 struct tuple_size<
Zivid::Settings> : integral_constant<size_t, 7>
16845 struct tuple_element<i,
Zivid::Settings>
16847 static_assert(i < tuple_size<Zivid::Settings>::value,
"Index must be less than 7");
16850 =
decltype(declval<Zivid::Settings>().get<i>());
16859#if defined(__has_include) && !defined(NO_DOC)
16860# if __has_include("Zivid/SettingsInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
16861# 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. Global mode is generally better at removing ou...
Definition Settings.h:8767
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:8814
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:8805
ValueType
The type of the underlying value.
Definition Settings.h:8797
static const Mode local
local
Definition Settings.h:8802
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:8846
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:8852
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:8840
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:8801
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:8834
Discard points likely introduced by reflections (useful for shiny materials).
Definition Settings.h:8655
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:8997
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:9086
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:9033
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8935
Removal()
Default constructor.
std::tuple< Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode > Descendants
Definition Settings.h:8877
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:9062
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:8970
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:9003
Mode & mode()
Get Mode.
Definition Settings.h:9016
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9070
const Mode & mode() const
Get Mode.
Definition Settings.h:9010
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:8991
bool operator!=(const Removal &other) const
Inequality operator.
Removal & set(const Mode &value)
Set Mode.
Definition Settings.h:9022
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:9043
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:9228
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9165
friend std::ostream & operator<<(std::ostream &stream, const Reflection &value)
Operator to send the value as string to a stream.
Definition Settings.h:9314
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9299
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:9292
Reflection & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:9241
Reflection()
Default constructor.
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:9269
std::tuple< Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode > Descendants
Definition Settings.h:9104
std::string toString() const
Get the value as string.
Reflection & set(const Removal::Mode &value)
Set Removal::Mode.
Definition Settings.h:9248
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:9279
const Removal & removal() const
Get Removal.
Definition Settings.h:9222
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:9259
Reflection & set(const Removal &value)
Set Removal.
Definition Settings.h:9234
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:9201
Enable or disable the smoothing filter.
Definition Settings.h:9373
bool ValueType
The type of the underlying value.
Definition Settings.h:9390
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:9395
bool value() const
Get the value.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:9430
static const Enabled yes
On/enabled.
Definition Settings.h:9391
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:9424
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:9436
static const Enabled no
Off/disabled.
Definition Settings.h:9392
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:9404
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:9453
Sigma()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:9470
bool operator!=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9508
bool operator>(const Sigma &other) const
Comparison operator.
Definition Settings.h:9520
double value() const
Get the value.
bool hasValue() const
Check if the value is set.
constexpr Sigma(double value)
Constructor.
Definition Settings.h:9482
static constexpr Range< double > validRange()
The range of valid values for Sigma.
Definition Settings.h:9473
friend std::ostream & operator<<(std::ostream &stream, const Sigma &value)
Operator to serialize the value to a stream.
Definition Settings.h:9538
void reset()
Reset the node to unset state.
bool operator>=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9532
bool operator==(const Sigma &other) const
Comparison operator.
Definition Settings.h:9502
bool operator<=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9526
std::string toString() const
Get the value as string.
bool operator<(const Sigma &other) const
Comparison operator.
Definition Settings.h:9514
Gaussian smoothing of the point cloud.
Definition Settings.h:9353
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:9681
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:9746
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:9727
Gaussian & set(const Enabled &value)
Set Enabled.
Definition Settings.h:9687
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition Settings.h:9561
friend std::ostream & operator<<(std::ostream &stream, const Gaussian &value)
Operator to send the value as string to a stream.
Definition Settings.h:9770
const Sigma & sigma() const
Get Sigma.
Definition Settings.h:9694
bool operator==(const Gaussian &other) const
Equality operator.
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:9675
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:9717
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:9654
Gaussian & set(const Sigma &value)
Set Sigma.
Definition Settings.h:9706
Sigma & sigma()
Get Sigma.
Definition Settings.h:9700
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9619
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9754
Smoothing filters.
Definition Settings.h:9335
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:9885
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9849
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition Settings.h:9788
Smoothing & set(const Gaussian &value)
Set Gaussian.
Definition Settings.h:9918
Smoothing()
Default constructor.
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:9953
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9983
Smoothing & set(const Gaussian::Sigma &value)
Set Gaussian::Sigma.
Definition Settings.h:9932
Smoothing & set(const Gaussian::Enabled &value)
Set Gaussian::Enabled.
Definition Settings.h:9925
bool operator!=(const Smoothing &other) const
Inequality operator.
const Gaussian & gaussian() const
Get Gaussian.
Definition Settings.h:9906
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:9943
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:9976
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:9963
friend std::ostream & operator<<(std::ostream &stream, const Smoothing &value)
Operator to send the value as string to a stream.
Definition Settings.h:9998
Gaussian & gaussian()
Get Gaussian.
Definition Settings.h:9912
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:10905
Filters & set(const Reflection::Removal::Enabled &value)
Set Reflection::Removal::Enabled.
Definition Settings.h:10568
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:11065
Filters & set(const Cluster &value)
Set Cluster.
Definition Settings.h:10284
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:10915
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:10251
Filters & set(const Hole &value)
Set Hole.
Definition Settings.h:10399
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:10761
Filters & set(const Hole::Repair::HoleSize &value)
Set Hole::Repair::HoleSize.
Definition Settings.h:10420
Filters & set(const Noise::Repair &value)
Set Noise::Repair.
Definition Settings.h:10474
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:10809
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:10876
Filters & set(const Cluster::Removal::MaxNeighborDistance &value)
Set Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:10305
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:10837
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:10770
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:10886
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:10973
Filters & set(const Noise::Repair::Enabled &value)
Set Noise::Repair::Enabled.
Definition Settings.h:10481
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:10635
Cluster & cluster()
Get Cluster.
Definition Settings.h:10278
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:10944
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:10789
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:10934
Filters & set(const Outlier::Removal::Threshold &value)
Set Outlier::Removal::Threshold.
Definition Settings.h:10535
Filters & set(const Experimental::ContrastDistortion::Correction::Strength &value)
Set Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:10359
Filters & set(const Experimental &value)
Set Experimental.
Definition Settings.h:10331
Outlier & outlier()
Get Outlier.
Definition Settings.h:10508
Filters & set(const Reflection::Removal::Mode &value)
Set Reflection::Removal::Mode.
Definition Settings.h:10575
Filters & set(const Hole::Repair::Enabled &value)
Set Hole::Repair::Enabled.
Definition Settings.h:10413
Filters & set(const Noise::Suppression &value)
Set Noise::Suppression.
Definition Settings.h:10488
Filters & set(const Outlier::Removal &value)
Set Outlier::Removal.
Definition Settings.h:10521
const Cluster & cluster() const
Get Cluster.
Definition Settings.h:10272
const Experimental & experimental() const
Get Experimental.
Definition Settings.h:10319
Filters & set(const Experimental::ContrastDistortion &value)
Set Experimental::ContrastDistortion.
Definition Settings.h:10338
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:11086
Filters & set(const Cluster::Removal::Enabled &value)
Set Cluster::Removal::Enabled.
Definition Settings.h:10298
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:10954
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:10895
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:10684
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:11003
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:10181
Filters & set(const Hole::Repair &value)
Set Hole::Repair.
Definition Settings.h:10406
const Reflection & reflection() const
Get Reflection.
Definition Settings.h:10542
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:10674
Filters & set(const Noise::Removal::Threshold &value)
Set Noise::Removal::Threshold.
Definition Settings.h:10467
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:10993
Filters & set(const Reflection &value)
Set Reflection.
Definition Settings.h:10554
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:10723
Filters & set(const Experimental::ContrastDistortion::Removal &value)
Set Experimental::ContrastDistortion::Removal.
Definition Settings.h:10366
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:11052
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:10645
Filters & set(const Outlier &value)
Set Outlier.
Definition Settings.h:10514
const Noise & noise() const
Get Noise.
Definition Settings.h:10434
Filters & set(const Experimental::ContrastDistortion::Correction &value)
Set Experimental::ContrastDistortion::Correction.
Definition Settings.h:10345
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:10779
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:10709
Filters & set(const Reflection::Removal &value)
Set Reflection::Removal.
Definition Settings.h:10561
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:10827
Filters & set(const Noise::Removal::Enabled &value)
Set Noise::Removal::Enabled.
Definition Settings.h:10460
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:10964
Filters & set(const Smoothing::Gaussian::Enabled &value)
Set Smoothing::Gaussian::Enabled.
Definition Settings.h:10608
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:10818
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:10866
Filters & set(const Experimental::ContrastDistortion::Removal::Threshold &value)
Set Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:10380
Filters & set(const Smoothing::Gaussian &value)
Set Smoothing::Gaussian.
Definition Settings.h:10601
bool operator==(const Filters &other) const
Equality operator.
Filters & set(const Hole::Repair::Strictness &value)
Set Hole::Repair::Strictness.
Definition Settings.h:10427
Filters & set(const Outlier::Removal::Enabled &value)
Set Outlier::Removal::Enabled.
Definition Settings.h:10528
Filters & set(const Cluster::Removal &value)
Set Cluster::Removal.
Definition Settings.h:10291
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:10799
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:10748
const Hole & hole() const
Get Hole.
Definition Settings.h:10387
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:10015
Filters & set(const Cluster::Removal::MinArea &value)
Set Cluster::Removal::MinArea.
Definition Settings.h:10312
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:10735
Noise & noise()
Get Noise.
Definition Settings.h:10440
Filters & set(const Smoothing &value)
Set Smoothing.
Definition Settings.h:10594
Filters & set(const Experimental::ContrastDistortion::Correction::Enabled &value)
Set Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:10352
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:10655
Filters & set(const Noise::Removal &value)
Set Noise::Removal.
Definition Settings.h:10453
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:10625
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:10925
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:10847
Smoothing & smoothing()
Get Smoothing.
Definition Settings.h:10588
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:10665
Filters & set(const Noise::Suppression::Enabled &value)
Set Noise::Suppression::Enabled.
Definition Settings.h:10495
Hole & hole()
Get Hole.
Definition Settings.h:10393
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:10983
Filters & set(const Experimental::ContrastDistortion::Removal::Enabled &value)
Set Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:10373
const Outlier & outlier() const
Get Outlier.
Definition Settings.h:10502
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:10856
Reflection & reflection()
Get Reflection.
Definition Settings.h:10548
Filters & set(const Noise &value)
Set Noise.
Definition Settings.h:10446
Filters & set(const Smoothing::Gaussian::Sigma &value)
Set Smoothing::Gaussian::Sigma.
Definition Settings.h:10615
const Smoothing & smoothing() const
Get Smoothing.
Definition Settings.h:10582
Experimental & experimental()
Get Experimental.
Definition Settings.h:10325
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:10695
Setting for upsampling or downsampling the point cloud data by some factor. This operation is perform...
Definition Settings.h:11157
void reset()
Reset the node to unset state.
static const Mode upsample2x2
upsample2x2
Definition Settings.h:11207
static const Mode downsample4x4
downsample4x4
Definition Settings.h:11206
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:11262
static const Mode upsample4x4
upsample4x4
Definition Settings.h:11208
static const Mode downsample2x2
downsample2x2
Definition Settings.h:11205
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:11256
ValueType
The type of the underlying value.
Definition Settings.h:11197
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:11250
bool hasValue() const
Check if the value is set.
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:11211
std::string toString() const
Get the value as string.
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:11224
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:11244
static const Mode disabled
disabled
Definition Settings.h:11204
ValueType value() const
Get the value.
Settings for changing the output resolution of the point cloud.
Definition Settings.h:11114
Resampling & set(const Mode &value)
Set Mode.
Definition Settings.h:11408
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:11342
const Mode & mode() const
Get Mode.
Definition Settings.h:11396
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:11431
Mode & mode()
Get Mode.
Definition Settings.h:11402
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:11453
std::tuple< Settings::Processing::Resampling::Mode > Descendants
Definition Settings.h:11288
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:11418
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:11375
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:11438
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:12203
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:12383
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:12331
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:12393
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:12573
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:12544
Resampling & resampling()
Get Resampling.
Definition Settings.h:12128
Processing & set(const Color::Experimental &value)
Set Color::Experimental.
Definition Settings.h:11816
Processing & set(const Color &value)
Set Color.
Definition Settings.h:11781
Processing & set(const Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Filters::Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:11877
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:12459
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:12185
Processing & set(const Color::Balance &value)
Set Color::Balance.
Definition Settings.h:11788
Processing & set(const Filters::Smoothing::Gaussian &value)
Set Filters::Smoothing::Gaussian.
Definition Settings.h:12101
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:11749
Filters & filters()
Get Filters.
Definition Settings.h:11843
Processing & set(const Filters::Smoothing::Gaussian::Enabled &value)
Set Filters::Smoothing::Gaussian::Enabled.
Definition Settings.h:12108
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:12478
Processing & set(const Resampling &value)
Set Resampling.
Definition Settings.h:12134
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:12211
Processing & set(const Filters::Experimental::ContrastDistortion::Removal &value)
Set Filters::Experimental::ContrastDistortion::Removal.
Definition Settings.h:11926
Processing & set(const Resampling::Mode &value)
Set Resampling::Mode.
Definition Settings.h:12141
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:11470
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:12563
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Filters::Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:11940
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:12176
Processing & set(const Filters::Outlier::Removal &value)
Set Filters::Outlier::Removal.
Definition Settings.h:12045
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:11933
Processing & set(const Filters::Cluster::Removal::Enabled &value)
Set Filters::Cluster::Removal::Enabled.
Definition Settings.h:11870
friend std::ostream & operator<<(std::ostream &stream, const Processing &value)
Operator to send the value as string to a stream.
Definition Settings.h:12660
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:12468
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:12342
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:12534
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:12440
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:12373
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:12593
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:12430
Processing & set(const Color::Balance::Blue &value)
Set Color::Balance::Blue.
Definition Settings.h:11795
Color & color()
Get Color.
Definition Settings.h:11775
Processing & set(const Filters::Hole::Repair::Strictness &value)
Set Filters::Hole::Repair::Strictness.
Definition Settings.h:11975
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:12583
Processing & set(const Filters::Reflection &value)
Set Filters::Reflection.
Definition Settings.h:12066
Processing & set(const Filters::Noise &value)
Set Filters::Noise.
Definition Settings.h:11982
Processing & set(const Filters::Hole &value)
Set Filters::Hole.
Definition Settings.h:11947
Processing & set(const Filters::Cluster &value)
Set Filters::Cluster.
Definition Settings.h:11856
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:12486
const Settings::Processing::Filters & get() const
Definition Settings.h:12219
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Filters::Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:11919
Processing & set(const Filters::Noise::Removal::Enabled &value)
Set Filters::Noise::Removal::Enabled.
Definition Settings.h:11996
Processing & set(const Filters::Smoothing &value)
Set Filters::Smoothing.
Definition Settings.h:12094
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:12158
const Filters & filters() const
Get Filters.
Definition Settings.h:11837
Processing & set(const Filters::Cluster::Removal &value)
Set Filters::Cluster::Removal.
Definition Settings.h:11863
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:12403
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:12643
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:12266
Processing & set(const Filters::Smoothing::Gaussian::Sigma &value)
Set Filters::Smoothing::Gaussian::Sigma.
Definition Settings.h:12115
Processing & set(const Filters::Noise::Suppression &value)
Set Filters::Noise::Suppression.
Definition Settings.h:12024
Processing & set(const Filters::Noise::Removal &value)
Set Filters::Noise::Removal.
Definition Settings.h:11989
Processing & set(const Filters::Reflection::Removal::Mode &value)
Set Filters::Reflection::Removal::Mode.
Definition Settings.h:12087
Processing & set(const Filters::Hole::Repair::Enabled &value)
Set Filters::Hole::Repair::Enabled.
Definition Settings.h:11961
const Settings::Processing::Resampling & get() const
Definition Settings.h:12601
Processing & set(const Filters::Outlier::Removal::Enabled &value)
Set Filters::Outlier::Removal::Enabled.
Definition Settings.h:12052
Processing & set(const Filters::Noise::Removal::Threshold &value)
Set Filters::Noise::Removal::Threshold.
Definition Settings.h:12003
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:12167
Processing & set(const Filters::Cluster::Removal::MinArea &value)
Set Filters::Cluster::Removal::MinArea.
Definition Settings.h:11884
Processing & set(const Filters::Experimental &value)
Set Filters::Experimental.
Definition Settings.h:11891
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:12420
Processing & set(const Filters::Outlier::Removal::Threshold &value)
Set Filters::Outlier::Removal::Threshold.
Definition Settings.h:12059
Processing & set(const Color::Balance::Green &value)
Set Color::Balance::Green.
Definition Settings.h:11802
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:12194
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:12320
Processing & set(const Filters::Outlier &value)
Set Filters::Outlier.
Definition Settings.h:12038
Processing & set(const Filters::Noise::Repair::Enabled &value)
Set Filters::Noise::Repair::Enabled.
Definition Settings.h:12017
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:12554
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:12307
Processing & set(const Color::Experimental::Mode &value)
Set Color::Experimental::Mode.
Definition Settings.h:11823
Processing & set(const Filters::Reflection::Removal::Enabled &value)
Set Filters::Reflection::Removal::Enabled.
Definition Settings.h:12080
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:11912
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:12246
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:12515
Processing & set(const Filters::Reflection::Removal &value)
Set Filters::Reflection::Removal.
Definition Settings.h:12073
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:12256
Processing & set(const Filters::Experimental::ContrastDistortion::Correction &value)
Set Filters::Experimental::ContrastDistortion::Correction.
Definition Settings.h:11905
const Settings::Processing::Color & get() const
Definition Settings.h:12150
bool operator==(const Processing &other) const
Equality operator.
const Color & color() const
Get Color.
Definition Settings.h:11769
Processing & set(const Filters::Experimental::ContrastDistortion &value)
Set Filters::Experimental::ContrastDistortion.
Definition Settings.h:11898
Processing & set(const Filters::Noise::Suppression::Enabled &value)
Set Filters::Noise::Suppression::Enabled.
Definition Settings.h:12031
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:12236
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:12524
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:12505
Processing & set(const Filters &value)
Set Filters.
Definition Settings.h:11849
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:12609
Processing & set(const Color::Balance::Red &value)
Set Color::Balance::Red.
Definition Settings.h:11809
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:12411
bool operator!=(const Processing &other) const
Inequality operator.
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:12275
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:12449
Processing & set(const Color::Gamma &value)
Set Color::Gamma.
Definition Settings.h:11830
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:11669
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:12355
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:12227
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:12295
Processing & set(const Filters::Noise::Repair &value)
Set Filters::Noise::Repair.
Definition Settings.h:12010
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:12285
const Resampling & resampling() const
Get Resampling.
Definition Settings.h:12122
Processing & set(const Filters::Hole::Repair::HoleSize &value)
Set Filters::Hole::Repair::HoleSize.
Definition Settings.h:11968
Processing & set(const Filters::Hole::Repair &value)
Set Filters::Hole::Repair.
Definition Settings.h:11954
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:12634
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:12495
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:12364
Enable or disable box filter.
Definition Settings.h:12753
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:12784
bool ValueType
The type of the underlying value.
Definition Settings.h:12770
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:12804
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:12775
static const Enabled yes
On/enabled.
Definition Settings.h:12771
static const Enabled no
Off/disabled.
Definition Settings.h:12772
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:12816
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:12810
Two points on the normal describing the direction and distance from the plane from which the normal i...
Definition Settings.h:12833
std::string toString() const
Get the value as string.
bool operator==(const Extents &other) const
Comparison operator.
Definition Settings.h:12881
Extents()=default
Default constructor.
void reset()
Reset the node to unset state.
constexpr Extents(Zivid::Range< double > value)
Constructor.
Definition Settings.h:12856
constexpr Extents(double minValue, double maxValue)
Constructor.
Definition Settings.h:12876
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:12893
const Zivid::Range< double > & value() const
Get the value.
bool operator!=(const Extents &other) const
Comparison operator.
Definition Settings.h:12887
A point such that the vector from PointO to PointA describes the first edge of the parallelogram.
Definition Settings.h:12910
void reset()
Reset the node to unset state.
constexpr PointA(float x, float y, float z)
Constructor.
Definition Settings.h:12953
bool operator!=(const PointA &other) const
Comparison operator.
Definition Settings.h:12964
PointA()=default
Default constructor.
bool operator==(const PointA &other) const
Comparison operator.
Definition Settings.h:12958
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:12970
constexpr PointA(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:12933
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:12987
PointB()=default
Default constructor.
bool operator==(const PointB &other) const
Comparison operator.
Definition Settings.h:13035
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:13047
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:13030
constexpr PointB(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:13010
Zivid::PointXYZ value() const
Get the value.
bool operator!=(const PointB &other) const
Comparison operator.
Definition Settings.h:13041
The point at the intersection of two adjacent edges defining a parallelogram.
Definition Settings.h:13064
constexpr PointO(float x, float y, float z)
Constructor.
Definition Settings.h:13107
void reset()
Reset the node to unset state.
bool operator!=(const PointO &other) const
Comparison operator.
Definition Settings.h:13118
PointO()=default
Default constructor.
constexpr PointO(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:13087
bool operator==(const PointO &other) const
Comparison operator.
Definition Settings.h:13112
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:13124
Removes points outside the given three-dimensional box.
Definition Settings.h:12718
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:13137
Box & set(const PointA &value)
Set PointA.
Definition Settings.h:13312
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:13241
const PointO & pointO() const
Get PointO.
Definition Settings.h:13338
Box & set(const PointO &value)
Set PointO.
Definition Settings.h:13350
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:13268
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:13262
Box & set(const Extents &value)
Set Extents.
Definition Settings.h:13293
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:13360
PointA & pointA()
Get PointA.
Definition Settings.h:13306
PointB & pointB()
Get PointB.
Definition Settings.h:13325
Box & set(const PointB &value)
Set PointB.
Definition Settings.h:13331
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:13396
Box()
Default constructor.
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:13378
const Extents & extents() const
Get Extents.
Definition Settings.h:13281
const PointA & pointA() const
Get PointA.
Definition Settings.h:13300
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13204
PointO & pointO()
Get PointO.
Definition Settings.h:13344
Extents & extents()
Get Extents.
Definition Settings.h:13287
const PointB & pointB() const
Get PointB.
Definition Settings.h:13319
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:13433
friend std::ostream & operator<<(std::ostream &stream, const Box &value)
Operator to send the value as string to a stream.
Definition Settings.h:13463
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:13387
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13444
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:13369
Box & set(const Enabled &value)
Set Enabled.
Definition Settings.h:13274
Enable or disable depth filter.
Definition Settings.h:13512
Enabled()=default
Default constructor.
static const Enabled yes
On/enabled.
Definition Settings.h:13530
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:13563
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:13569
bool ValueType
The type of the underlying value.
Definition Settings.h:13529
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:13575
bool value() const
Get the value.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:13534
std::string toString() const
Get the value as string.
static const Enabled no
Off/disabled.
Definition Settings.h:13531
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:13543
Specify the minimum and maximum Z value that will be included.
Definition Settings.h:13592
constexpr Range(double minValue, double maxValue)
Constructor.
Definition Settings.h:13635
constexpr Range(Zivid::Range< double > value)
Constructor.
Definition Settings.h:13615
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:13652
Range()=default
Default constructor.
bool operator==(const Range &other) const
Comparison operator.
Definition Settings.h:13640
bool operator!=(const Range &other) const
Comparison operator.
Definition Settings.h:13646
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:13490
Depth()
Default constructor.
Depth & set(const Enabled &value)
Set Enabled.
Definition Settings.h:13789
std::string toString() const
Get the value as string.
const Range & range() const
Get Range.
Definition Settings.h:13796
Depth & set(const Range &value)
Set Range.
Definition Settings.h:13808
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:13777
bool operator==(const Depth &other) const
Equality operator.
std::tuple< Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range > Descendants
Definition Settings.h:13665
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13854
bool operator!=(const Depth &other) const
Inequality operator.
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:13818
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:13846
Range & range()
Get Range.
Definition Settings.h:13802
friend std::ostream & operator<<(std::ostream &stream, const Depth &value)
Operator to send the value as string to a stream.
Definition Settings.h:13870
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13722
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:13783
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:13827
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:13756
Removes points outside the region of interest.
Definition Settings.h:12684
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:14175
Depth & depth()
Get Depth.
Definition Settings.h:14087
RegionOfInterest & set(const Depth::Enabled &value)
Set Depth::Enabled.
Definition Settings.h:14100
const Box & box() const
Get Box.
Definition Settings.h:14027
RegionOfInterest & set(const Box &value)
Set Box.
Definition Settings.h:14039
friend std::ostream & operator<<(std::ostream &stream, const RegionOfInterest &value)
Operator to send the value as string to a stream.
Definition Settings.h:14227
RegionOfInterest & set(const Box::PointO &value)
Set Box::PointO.
Definition Settings.h:14074
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:14158
std::string toString() const
Get the value as string.
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:14142
const Settings::RegionOfInterest::Depth & get() const
Definition Settings.h:14166
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:14134
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:13888
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:14184
const Settings::RegionOfInterest::Box::PointB & get() const
Definition Settings.h:14150
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13967
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:14007
Box & box()
Get Box.
Definition Settings.h:14033
const Settings::RegionOfInterest::Box & get() const
Definition Settings.h:14116
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:14203
RegionOfInterest & set(const Box::PointA &value)
Set Box::PointA.
Definition Settings.h:14060
const Depth & depth() const
Get Depth.
Definition Settings.h:14081
RegionOfInterest & set(const Box::Extents &value)
Set Box::Extents.
Definition Settings.h:14053
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:14211
RegionOfInterest & set(const Box::Enabled &value)
Set Box::Enabled.
Definition Settings.h:14046
RegionOfInterest & set(const Depth::Range &value)
Set Depth::Range.
Definition Settings.h:14107
bool operator!=(const RegionOfInterest &other) const
Inequality operator.
RegionOfInterest & set(const Depth &value)
Set Depth.
Definition Settings.h:14093
RegionOfInterest & set(const Box::PointB &value)
Set Box::PointB.
Definition Settings.h:14067
bool operator==(const RegionOfInterest &other) const
Equality operator.
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:14125
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:14281
ValueType
The type of the underlying value.
Definition Settings.h:14311
std::string toString() const
Get the value as string.
static std::set< ValueType > validValues()
All valid values of Color.
Definition Settings.h:14321
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to serialize the value to a stream.
Definition Settings.h:14368
constexpr Color(ValueType value)
Constructor.
Definition Settings.h:14330
static const Color grayscale
grayscale
Definition Settings.h:14318
bool operator!=(const Color &other) const
Comparison operator.
Definition Settings.h:14362
Color()=default
Default constructor.
static const Color disabled
disabled
Definition Settings.h:14317
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:14356
friend std::ostream & operator<<(std::ostream &stream, const Color::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:14350
static const Color rgb
rgb
Definition Settings.h:14316
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:14406
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:14453
static const Pixel redSubsample4x4
redSubsample4x4
Definition Settings.h:14448
constexpr Pixel(ValueType value)
Constructor.
Definition Settings.h:14468
static const Pixel all
all
Definition Settings.h:14444
static const Pixel blueSubsample2x2
blueSubsample2x2
Definition Settings.h:14445
static const Pixel by2x2
by2x2
Definition Settings.h:14449
static const Pixel by4x4
by4x4
Definition Settings.h:14450
bool operator!=(const Pixel &other) const
Comparison operator.
Definition Settings.h:14500
ValueType
The type of the underlying value.
Definition Settings.h:14435
static const Pixel redSubsample2x2
redSubsample2x2
Definition Settings.h:14446
Pixel()=default
Default constructor.
bool operator==(const Pixel &other) const
Comparison operator.
Definition Settings.h:14494
static const Pixel blueSubsample4x4
blueSubsample4x4
Definition Settings.h:14447
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:14488
friend std::ostream & operator<<(std::ostream &stream, const Pixel &value)
Operator to serialize the value to a stream.
Definition Settings.h:14506
std::string toString() const
Get the value as string.
Sampling settings.
Definition Settings.h:14250
std::tuple< Settings::Sampling::Color, Settings::Sampling::Pixel > Descendants
Definition Settings.h:14532
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:14588
bool operator==(const Sampling &other) const
Equality operator.
Color & color()
Get Color.
Definition Settings.h:14647
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:14621
const Pixel & pixel() const
Get Pixel.
Definition Settings.h:14660
friend std::ostream & operator<<(std::ostream &stream, const Sampling &value)
Operator to send the value as string to a stream.
Definition Settings.h:14732
Pixel & pixel()
Get Pixel.
Definition Settings.h:14666
const Settings::Sampling::Color & get() const
Definition Settings.h:14681
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:14708
Sampling()
Default constructor.
const Settings::Sampling::Pixel & get() const
Definition Settings.h:14689
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:14716
const Color & color() const
Get Color.
Definition Settings.h:14641
std::string toString() const
Get the value as string.
Sampling & set(const Color &value)
Set Color.
Definition Settings.h:14653
Sampling & set(const Pixel &value)
Set Pixel.
Definition Settings.h:14672
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:16245
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:16083
const Settings::Color & get() const
Definition Settings.h:15706
Settings(Args &&...args)
Constructor taking variadic number of arguments.
Definition Settings.h:14928
Settings & set(const Processing::Filters::Cluster::Removal::MinArea &value)
Set Processing::Filters::Cluster::Removal::MinArea.
Definition Settings.h:15333
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:16064
Settings & set(const RegionOfInterest::Box::PointB &value)
Set RegionOfInterest::Box::PointB.
Definition Settings.h:15632
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:15954
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:15748
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:15382
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:15772
Settings & set(const Processing::Color::Experimental::Mode &value)
Set Processing::Color::Experimental::Mode.
Definition Settings.h:15284
Settings & set(const Processing::Filters::Smoothing &value)
Set Processing::Filters::Smoothing.
Definition Settings.h:15543
const Settings::RegionOfInterest & get() const
Definition Settings.h:16189
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:15999
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:15121
const Processing & processing() const
Get Processing.
Definition Settings.h:15223
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:15797
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:15914
Settings & set(const Processing &value)
Set Processing.
Definition Settings.h:15235
const Settings::Sampling::Pixel & get() const
Definition Settings.h:16279
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:15937
Settings & set(const Sampling &value)
Set Sampling.
Definition Settings.h:15679
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:15501
Settings & set(const Processing::Filters::Hole::Repair::Enabled &value)
Set Processing::Filters::Hole::Repair::Enabled.
Definition Settings.h:15410
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:15842
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:15946
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:15389
Settings & set(const Processing::Filters::Smoothing::Gaussian &value)
Set Processing::Filters::Smoothing::Gaussian.
Definition Settings.h:15550
Settings & set(const Sampling::Color &value)
Set Sampling::Color.
Definition Settings.h:15686
Color & color()
Get Color.
Definition Settings.h:15165
Settings & set(const Diagnostics &value)
Set Diagnostics.
Definition Settings.h:15190
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:15925
Settings & set(const RegionOfInterest::Depth::Enabled &value)
Set RegionOfInterest::Depth::Enabled.
Definition Settings.h:15653
Settings & set(const Processing::Filters::Noise &value)
Set Processing::Filters::Noise.
Definition Settings.h:15431
const Sampling & sampling() const
Get Sampling.
Definition Settings.h:15667
void load(const std::string &fileName)
Load from the given file.
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:15852
const Settings::Acquisitions & get() const
Definition Settings.h:15700
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:15860
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:16046
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:16073
Settings & set(const Processing::Filters::Cluster &value)
Set Processing::Filters::Cluster.
Definition Settings.h:15305
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:16167
const Settings::Diagnostics & get() const
Definition Settings.h:15712
RegionOfInterest & regionOfInterest()
Get RegionOfInterest.
Definition Settings.h:15591
const Settings::Processing::Resampling & get() const
Definition Settings.h:16175
Settings & set(const Processing::Filters::Hole &value)
Set Processing::Filters::Hole.
Definition Settings.h:15396
Settings & set(const Processing::Filters::Reflection::Removal::Mode &value)
Set Processing::Filters::Reflection::Removal::Mode.
Definition Settings.h:15536
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:16157
const Settings::RegionOfInterest::Box & get() const
Definition Settings.h:16197
Settings & set(const Processing::Color::Balance &value)
Set Processing::Color::Balance.
Definition Settings.h:15249
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:16237
Settings & set(const RegionOfInterest::Depth &value)
Set RegionOfInterest::Depth.
Definition Settings.h:15646
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:16009
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:16253
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:15982
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:15880
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:16328
std::string serialize() const
Serialize to a string.
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:15764
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:16213
Settings & set(const Processing::Filters::Smoothing::Gaussian::Enabled &value)
Set Processing::Filters::Smoothing::Gaussian::Enabled.
Definition Settings.h:15557
const Settings::Processing & get() const
Definition Settings.h:15732
Settings & set(const Processing::Filters::Reflection &value)
Set Processing::Filters::Reflection.
Definition Settings.h:15515
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:16341
Settings()
Default constructor.
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:15870
Settings & set(const Processing::Filters::Outlier::Removal::Threshold &value)
Set Processing::Filters::Outlier::Removal::Threshold.
Definition Settings.h:15508
Settings & set(const Processing::Filters::Hole::Repair::HoleSize &value)
Set Processing::Filters::Hole::Repair::HoleSize.
Definition Settings.h:15417
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:16205
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:15789
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:15368
Settings & set(const RegionOfInterest::Box::Enabled &value)
Set RegionOfInterest::Box::Enabled.
Definition Settings.h:15611
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:15972
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:15903
Settings & set(const RegionOfInterest::Box::Extents &value)
Set RegionOfInterest::Box::Extents.
Definition Settings.h:15618
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:15756
Settings & set(const Processing::Resampling::Mode &value)
Set Processing::Resampling::Mode.
Definition Settings.h:15578
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:15963
const Acquisitions & acquisitions() const
Get Acquisitions.
Definition Settings.h:15140
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:15022
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:16101
Settings & set(const Processing::Filters::Experimental &value)
Set Processing::Filters::Experimental.
Definition Settings.h:15340
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:16138
const Settings::Processing::Filters & get() const
Definition Settings.h:15805
Settings & set(const Processing::Color::Experimental &value)
Set Processing::Color::Experimental.
Definition Settings.h:15277
void save(const std::string &fileName) const
Save to the given file.
Settings & set(const Engine &value)
Set Engine.
Definition Settings.h:15216
Settings & set(const RegionOfInterest::Depth::Range &value)
Set RegionOfInterest::Depth::Range.
Definition Settings.h:15660
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:15780
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:16028
Settings & set(const Processing::Resampling &value)
Set Processing::Resampling.
Definition Settings.h:15571
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal.
Definition Settings.h:15375
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:16221
Settings & set(const Processing::Color &value)
Set Processing::Color.
Definition Settings.h:15242
Settings & set(const Processing::Filters::Outlier &value)
Set Processing::Filters::Outlier.
Definition Settings.h:15487
bool operator==(const Settings &other) const
Equality operator.
Acquisitions & acquisitions()
Get Acquisitions.
Definition Settings.h:15146
Settings & set(const Processing::Filters::Reflection::Removal &value)
Set Processing::Filters::Reflection::Removal.
Definition Settings.h:15522
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:16056
const Settings::Engine & get() const
Definition Settings.h:15726
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:15813
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:16037
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:15270
Settings & set(const RegionOfInterest::Box::PointO &value)
Set RegionOfInterest::Box::PointO.
Definition Settings.h:15639
const Settings::Sampling::Color & get() const
Definition Settings.h:16273
Settings & set(const Processing::Filters::Cluster::Removal &value)
Set Processing::Filters::Cluster::Removal.
Definition Settings.h:15312
Settings & set(const RegionOfInterest::Box &value)
Set RegionOfInterest::Box.
Definition Settings.h:15604
Settings & set(const Processing::Filters::Noise::Suppression &value)
Set Processing::Filters::Noise::Suppression.
Definition Settings.h:15473
const Engine & engine() const
Get Engine.
Definition Settings.h:15204
Diagnostics & diagnostics()
Get Diagnostics.
Definition Settings.h:15184
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:16019
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:15832
const Color & color() const
Get Color.
Definition Settings.h:15159
Sampling & sampling()
Get Sampling.
Definition Settings.h:15673
Settings & set(const Processing::Filters::Reflection::Removal::Enabled &value)
Set Processing::Filters::Reflection::Removal::Enabled.
Definition Settings.h:15529
Processing & processing()
Get Processing.
Definition Settings.h:15229
Settings & set(const RegionOfInterest::Box::PointA &value)
Set RegionOfInterest::Box::PointA.
Definition Settings.h:15625
Settings & set(const Diagnostics::Enabled &value)
Set Diagnostics::Enabled.
Definition Settings.h:15197
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:15990
const Settings::Diagnostics::Enabled & get() const
Definition Settings.h:15720
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:15822
Settings & set(const Color &value)
Set Color.
Definition Settings.h:15171
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:16130
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:15891
const Settings::RegionOfInterest::Box::PointB & get() const
Definition Settings.h:16229
Settings & set(const Processing::Filters::Experimental::ContrastDistortion &value)
Set Processing::Filters::Experimental::ContrastDistortion.
Definition Settings.h:15347
Settings & set(const Sampling::Pixel &value)
Set Sampling::Pixel.
Definition Settings.h:15693
Settings & set(const Processing::Filters::Hole::Repair::Strictness &value)
Set Processing::Filters::Hole::Repair::Strictness.
Definition Settings.h:15424
Settings & set(const Processing::Color::Gamma &value)
Set Processing::Color::Gamma.
Definition Settings.h:15291
Settings & set(const Processing::Filters::Cluster::Removal::Enabled &value)
Set Processing::Filters::Cluster::Removal::Enabled.
Definition Settings.h:15319
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:16261
const Settings::Sampling & get() const
Definition Settings.h:16267
Settings & set(const Processing::Filters::Noise::Removal::Threshold &value)
Set Processing::Filters::Noise::Removal::Threshold.
Definition Settings.h:15452
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:15361
Settings & set(const Acquisitions &value)
Set Acquisitions.
Definition Settings.h:15152
Settings & set(const Processing::Filters::Smoothing::Gaussian::Sigma &value)
Set Processing::Filters::Smoothing::Gaussian::Sigma.
Definition Settings.h:15564
const Diagnostics & diagnostics() const
Get Diagnostics.
Definition Settings.h:15178
bool operator!=(const Settings &other) const
Inequality operator.
Settings & set(const Processing::Filters::Noise::Removal &value)
Set Processing::Filters::Noise::Removal.
Definition Settings.h:15438
Settings & set(const Processing::Filters::Noise::Repair &value)
Set Processing::Filters::Noise::Repair.
Definition Settings.h:15459
Settings & set(const Processing::Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Processing::Filters::Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:15326
Settings & set(const Processing::Filters::Outlier::Removal &value)
Set Processing::Filters::Outlier::Removal.
Definition Settings.h:15494
Settings & set(const RegionOfInterest &value)
Set RegionOfInterest.
Definition Settings.h:15597
Settings & set(const Processing::Filters::Noise::Removal::Enabled &value)
Set Processing::Filters::Noise::Removal::Enabled.
Definition Settings.h:15445
Engine & engine()
Get Engine.
Definition Settings.h:15210
Settings & set(const Processing::Filters::Hole::Repair &value)
Set Processing::Filters::Hole::Repair.
Definition Settings.h:15403
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction.
Definition Settings.h:15354
const Settings::Processing::Color & get() const
Definition Settings.h:15740
Settings & set(const Processing::Filters::Noise::Repair::Enabled &value)
Set Processing::Filters::Noise::Repair::Enabled.
Definition Settings.h:15466
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:16120
Settings & set(const Processing::Filters::Noise::Suppression::Enabled &value)
Set Processing::Filters::Noise::Suppression::Enabled.
Definition Settings.h:15480
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:16110
Settings & set(const Processing::Color::Balance::Green &value)
Set Processing::Color::Balance::Green.
Definition Settings.h:15263
Settings & set(const Processing::Filters &value)
Set Processing::Filters.
Definition Settings.h:15298
const RegionOfInterest & regionOfInterest() const
Get RegionOfInterest.
Definition Settings.h:15585
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:16183
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:16093
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:14750
Settings & set(const Processing::Color::Balance::Blue &value)
Set Processing::Color::Balance::Blue.
Definition Settings.h:15256
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:16147
friend std::ostream & operator<<(std::ostream &stream, const Settings &value)
Operator to send the value as string to a stream.
Definition Settings.h:16362
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