113# pragma warning(push)
114# pragma warning(disable : 4251)
130 static constexpr const char *path{
"" };
133 static constexpr const char *name{
"Settings" };
136 static constexpr const char *description{
137 R
"description(Settings used when capturing with a Zivid camera)description"
140 static constexpr size_t version{ 21 };
150 static constexpr std::array<uint8_t, 3> binaryId{
's',
'e',
't' };
164 static constexpr const char *path{
"Acquisition" };
167 static constexpr const char *name{
"Acquisition" };
170 static constexpr const char *description{ R
"description(Settings for a single acquisition)description" };
184 static constexpr const char *path{
"Acquisition/Aperture" };
187 static constexpr const char *name{
"Aperture" };
190 static constexpr const char *description{
191 R
"description(Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to
192the effective aperture diameter).
202 return { 1.4, 32.0 };
210 : m_opt{ verifyValue(value) }
231 return m_opt == other.m_opt;
237 return m_opt != other.m_opt;
243 return m_opt < other.m_opt;
249 return m_opt > other.m_opt;
255 return m_opt <= other.m_opt;
261 return m_opt >= other.m_opt;
271 void setFromString(
const std::string &value);
273 constexpr ValueType
static verifyValue(
const ValueType &value)
277 :
throw std::out_of_range{
"Aperture{ " + std::to_string(value) +
" } is not in range ["
282 Zivid::DataModel::Detail::Optional<double> m_opt;
284 friend struct DataModel::Detail::Befriend<
Aperture>;
307 static constexpr const char *path{
"Acquisition/Brightness" };
310 static constexpr const char *name{
"Brightness" };
313 static constexpr const char *description{
314 R
"description(Brightness controls the light output from the projector.
316Brightness above 1.0 may be needed when the distance between the camera and the scene is large,
317or in case of high levels of ambient lighting.
319When brightness is above 1.0 the duty cycle of the camera (the percentage of time the camera
320can capture) will be reduced. The duty cycle in boost mode is 50%. The duty cycle is calculated
321over a 10 second period. This limitation is enforced automatically by the camera. Calling capture
322when the duty cycle limit has been reached will cause the camera to first wait (sleep) for a
323duration of time to cool down, before capture will start.
341 : m_opt{ verifyValue(value) }
362 return m_opt == other.m_opt;
368 return m_opt != other.m_opt;
374 return m_opt < other.m_opt;
380 return m_opt > other.m_opt;
386 return m_opt <= other.m_opt;
392 return m_opt >= other.m_opt;
402 void setFromString(
const std::string &value);
404 constexpr ValueType
static verifyValue(
const ValueType &value)
408 :
throw std::out_of_range{
"Brightness{ " + std::to_string(value)
409 +
" } is not in range [" + std::to_string(
validRange().min())
410 +
", " + std::to_string(
validRange().max()) +
"]" };
413 Zivid::DataModel::Detail::Optional<double> m_opt;
415 friend struct DataModel::Detail::Befriend<
Brightness>;
428 static constexpr const char *path{
"Acquisition/ExposureTime" };
431 static constexpr const char *name{
"ExposureTime" };
434 static constexpr const char *description{
435 R
"description(Exposure time for each single image in the measurement. Affects frame rate.)description"
444 return { std::chrono::microseconds{ 1677 }, std::chrono::microseconds{ 100000 } };
452 : m_opt{ verifyValue(value) }
459 std::chrono::microseconds
value()
const;
473 return m_opt == other.m_opt;
479 return m_opt != other.m_opt;
485 return m_opt < other.m_opt;
491 return m_opt > other.m_opt;
497 return m_opt <= other.m_opt;
503 return m_opt >= other.m_opt;
513 void setFromString(
const std::string &value);
515 constexpr ValueType
static verifyValue(
const ValueType &value)
519 :
throw std::out_of_range{
"ExposureTime{ " + std::to_string(value.count())
520 +
" } is not in range ["
521 + std::to_string(
validRange().min().count()) +
", "
522 + std::to_string(
validRange().max().count()) +
"]" };
525 Zivid::DataModel::Detail::Optional<std::chrono::microseconds> m_opt;
527 friend struct DataModel::Detail::Befriend<
ExposureTime>;
540 static constexpr const char *path{
"Acquisition/Gain" };
543 static constexpr const char *name{
"Gain" };
546 static constexpr const char *description{ R
"description(Analog gain in the camera)description" };
561 explicit constexpr Gain(
double value)
562 : m_opt{ verifyValue(value) }
583 return m_opt == other.m_opt;
589 return m_opt != other.m_opt;
595 return m_opt < other.m_opt;
601 return m_opt > other.m_opt;
607 return m_opt <= other.m_opt;
613 return m_opt >= other.m_opt;
623 void setFromString(
const std::string &value);
625 constexpr ValueType
static verifyValue(
const ValueType &value)
629 :
throw std::out_of_range{
"Gain{ " + std::to_string(value) +
" } is not in range ["
634 Zivid::DataModel::Detail::Optional<double> m_opt;
636 friend struct DataModel::Detail::Befriend<
Gain>;
665 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
666 typename std::enable_if<
667 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
671 template<typename... Args>
675 using namespace Zivid::Detail::TypeTraits;
678 AllArgsDecayedAreUnique<Args...>::value,
679 "Found duplicate types among the arguments passed to Acquisition(...). "
680 "Types should be listed at most once.");
682 set(std::forward<Args>(args)...);
699 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
701 template<typename... Args>
705 using namespace Zivid::Detail::TypeTraits;
707 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
709 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
712 AllArgsDecayedAreUnique<Args...>::value,
713 "Found duplicate types among the arguments passed to set(...). "
714 "Types should be listed at most once.");
716 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
734 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
736 template<typename... Args>
740 using namespace Zivid::Detail::TypeTraits;
742 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
744 AllArgsAreDescendantNodes::value,
745 "All arguments passed to copyWith(...) must be descendant nodes.");
748 AllArgsDecayedAreUnique<Args...>::value,
749 "Found duplicate types among the arguments passed to copyWith(...). "
750 "Types should be listed at most once.");
753 copy.
set(std::forward<Args>(args)...);
791 m_brightness = value;
798 return m_exposureTime;
804 return m_exposureTime;
810 m_exposureTime = value;
835 typename std::enable_if<std::is_same<T, Settings::Acquisition::Aperture>::value,
int>::type = 0>
843 typename std::enable_if<std::is_same<T, Settings::Acquisition::Brightness>::value,
int>::type = 0>
851 typename std::enable_if<std::is_same<T, Settings::Acquisition::ExposureTime>::value,
int>::type = 0>
854 return m_exposureTime;
859 typename std::enable_if<std::is_same<T, Settings::Acquisition::Gain>::value,
int>::type = 0>
865 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
871 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
877 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
880 return m_exposureTime;
883 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
925 void setFromString(
const std::string &value);
927 void setFromString(
const std::string &fullPath,
const std::string &value);
929 std::string getString(
const std::string &fullPath)
const;
932 Brightness m_brightness;
933 ExposureTime m_exposureTime;
936 friend struct DataModel::Detail::Befriend<
Acquisition>;
949 static constexpr const char *path{
"Acquisitions" };
952 static constexpr const char *name{
"Acquisitions" };
955 static constexpr const char *description{ R
"description(List of Acquisition objects)description" };
963 return { 0, std::numeric_limits<ValueType::size_type>::max() };
971 : m_value{ std::move(value) }
975 explicit Acquisitions(std::initializer_list<Settings::Acquisition> value)
980 const std::vector<Settings::Acquisition> &
value()
const;
986 std::size_t
size() const noexcept;
989 bool isEmpty() const noexcept;
996 template<typename... Args>
997 void emplaceBack(Args &&...args)
999 m_value.emplace_back(std::forward<Args>(args)...);
1031 template<
typename F>
1034 for(
auto &child : m_value)
1041 template<
typename F>
1044 for(
const auto &child : m_value)
1051 using Iterator = std::vector<Settings::Acquisition>::iterator;
1077 return m_value == other.m_value;
1083 return m_value != other.m_value;
1093 void setFromString(
const std::string &value);
1095 std::vector<Settings::Acquisition> m_value{};
1097 friend struct DataModel::Detail::Befriend<
Acquisitions>;
1116 static constexpr const char *path{
"Diagnostics" };
1119 static constexpr const char *name{
"Diagnostics" };
1122 static constexpr const char *description{
1123 R
"description(When Diagnostics is enabled, extra diagnostic information is recorded during capture. This extra
1124information is included when saving the frame to a .zdf file, and will help Zivid's support team
1125to provide better assistance.
1127Enabling Diagnostics increases the capture time and the RAM usage. It will also increase the size of the
1128.zdf file. It is recommended to enable Diagnostics only when reporting issues to Zivid's support team.
1142 static constexpr const char *path{
"Diagnostics/Enabled" };
1145 static constexpr const char *name{
"Enabled" };
1148 static constexpr const char *description{ R
"description(Enable diagnostics)description" };
1158 return {
false,
true };
1187 return m_opt == other.m_opt;
1193 return m_opt != other.m_opt;
1203 void setFromString(
const std::string &value);
1205 Zivid::DataModel::Detail::Optional<bool> m_opt;
1207 friend struct DataModel::Detail::Befriend<
Enabled>;
1229 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1230 typename std::enable_if<
1231 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1235 template<typename... Args>
1239 using namespace Zivid::Detail::TypeTraits;
1242 AllArgsDecayedAreUnique<Args...>::value,
1243 "Found duplicate types among the arguments passed to Diagnostics(...). "
1244 "Types should be listed at most once.");
1246 set(std::forward<Args>(args)...);
1260 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1262 template<typename... Args>
1266 using namespace Zivid::Detail::TypeTraits;
1268 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1270 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1273 AllArgsDecayedAreUnique<Args...>::value,
1274 "Found duplicate types among the arguments passed to set(...). "
1275 "Types should be listed at most once.");
1277 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1292 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1294 template<typename... Args>
1298 using namespace Zivid::Detail::TypeTraits;
1300 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1302 AllArgsAreDescendantNodes::value,
1303 "All arguments passed to copyWith(...) must be descendant nodes.");
1306 AllArgsDecayedAreUnique<Args...>::value,
1307 "Found duplicate types among the arguments passed to copyWith(...). "
1308 "Types should be listed at most once.");
1311 copy.
set(std::forward<Args>(args)...);
1336 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
1342 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1349 template<
typename F>
1356 template<
typename F>
1378 void setFromString(
const std::string &value);
1380 void setFromString(
const std::string &fullPath,
const std::string &value);
1382 std::string getString(
const std::string &fullPath)
const;
1386 friend struct DataModel::Detail::Befriend<
Diagnostics>;
1399 static constexpr const char *path{
"Experimental" };
1402 static constexpr const char *name{
"Experimental" };
1405 static constexpr const char *description{
1406 R
"description(Experimental features. These settings may be changed, renamed, moved or deleted in the future.)description"
1438 static constexpr const char *path{
"Experimental/Engine" };
1441 static constexpr const char *name{
"Engine" };
1444 static constexpr const char *description{ R
"description(Set the Zivid Vision Engine to use.
1446The Phase Engine is the fastest choice in terms of both acquisition time and total capture
1447time, and is a good compromise between quality and speed. The Phase Engine is recommended for
1448objects that are diffuse, opaque, and slightly specular, and is suitable for applications in
1449logistics such as parcel induction.
1451The Stripe Engine is built for exceptional point cloud quality in scenes with highly specular
1452reflective objects. This makes the engine suitable for applications such as factory automation,
1453manufacturing, and bin picking. Additional acquisition and processing time are required for
1456The Omni Engine is built for exceptional point cloud quality on all scenes, including scenes
1457with extremely specular reflective objects, as well as transparent objects. This makes the Omni
1458Engine suitable for applications such as piece picking. Same as for the Stripe Engine, it trades
1459off speed for quality. The Omni Engine is only available for Zivid 2+.
1461The Stripe and Omni engines are currently experimental, and may be changed and improved
1479 return { ValueType::phase, ValueType::stripe, ValueType::omni };
1487 : m_opt{ verifyValue(value) }
1514 return m_opt == other.m_opt;
1520 return m_opt != other.m_opt;
1530 void setFromString(
const std::string &value);
1532 constexpr ValueType
static verifyValue(
const ValueType &value)
1534 return value == ValueType::phase || value == ValueType::stripe || value == ValueType::omni
1536 :
throw std::invalid_argument{
1537 "Invalid value: Engine{ "
1538 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
1542 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
1544 friend struct DataModel::Detail::Befriend<
Engine>;
1566 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1567 typename std::enable_if<
1568 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1572 template<typename... Args>
1576 using namespace Zivid::Detail::TypeTraits;
1579 AllArgsDecayedAreUnique<Args...>::value,
1580 "Found duplicate types among the arguments passed to Experimental(...). "
1581 "Types should be listed at most once.");
1583 set(std::forward<Args>(args)...);
1597 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1599 template<typename... Args>
1603 using namespace Zivid::Detail::TypeTraits;
1605 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1607 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1610 AllArgsDecayedAreUnique<Args...>::value,
1611 "Found duplicate types among the arguments passed to set(...). "
1612 "Types should be listed at most once.");
1614 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1629 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1631 template<typename... Args>
1635 using namespace Zivid::Detail::TypeTraits;
1637 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1639 AllArgsAreDescendantNodes::value,
1640 "All arguments passed to copyWith(...) must be descendant nodes.");
1643 AllArgsDecayedAreUnique<Args...>::value,
1644 "Found duplicate types among the arguments passed to copyWith(...). "
1645 "Types should be listed at most once.");
1648 copy.
set(std::forward<Args>(args)...);
1673 typename std::enable_if<std::is_same<T, Settings::Experimental::Engine>::value,
int>::type = 0>
1679 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1686 template<
typename F>
1693 template<
typename F>
1715 void setFromString(
const std::string &value);
1717 void setFromString(
const std::string &fullPath,
const std::string &value);
1719 std::string getString(
const std::string &fullPath)
const;
1723 friend struct DataModel::Detail::Befriend<
Experimental>;
1736 static constexpr const char *path{
"Processing" };
1739 static constexpr const char *name{
"Processing" };
1742 static constexpr const char *description{
1743 R
"description(Settings related to processing of a capture, including filters and color balance)description"
1756 static constexpr const char *path{
"Processing/Color" };
1759 static constexpr const char *name{
"Color" };
1762 static constexpr const char *description{ R
"description(Color settings)description" };
1774 static constexpr const char *path{
"Processing/Color/Balance" };
1777 static constexpr const char *name{
"Balance" };
1780 static constexpr const char *description{ R
"description(Color balance settings)description" };
1792 static constexpr const char *path{
"Processing/Color/Balance/Blue" };
1795 static constexpr const char *name{
"Blue" };
1798 static constexpr const char *description{
1799 R
"description(Digital gain applied to blue channel)description"
1808 return { 1.0, 8.0 };
1815 explicit constexpr Blue(
double value)
1816 : m_opt{ verifyValue(value) }
1837 return m_opt == other.m_opt;
1843 return m_opt != other.m_opt;
1849 return m_opt < other.m_opt;
1855 return m_opt > other.m_opt;
1861 return m_opt <= other.m_opt;
1867 return m_opt >= other.m_opt;
1877 void setFromString(
const std::string &value);
1879 constexpr ValueType
static verifyValue(
const ValueType &value)
1883 :
throw std::out_of_range{
"Blue{ " + std::to_string(value)
1884 +
" } is not in range ["
1886 + std::to_string(
validRange().max()) +
"]" };
1889 Zivid::DataModel::Detail::Optional<double> m_opt;
1891 friend struct DataModel::Detail::Befriend<
Blue>;
1904 static constexpr const char *path{
"Processing/Color/Balance/Green" };
1907 static constexpr const char *name{
"Green" };
1910 static constexpr const char *description{
1911 R
"description(Digital gain applied to green channel)description"
1920 return { 1.0, 8.0 };
1928 : m_opt{ verifyValue(value) }
1949 return m_opt == other.m_opt;
1955 return m_opt != other.m_opt;
1961 return m_opt < other.m_opt;
1967 return m_opt > other.m_opt;
1973 return m_opt <= other.m_opt;
1979 return m_opt >= other.m_opt;
1989 void setFromString(
const std::string &value);
1991 constexpr ValueType
static verifyValue(
const ValueType &value)
1995 :
throw std::out_of_range{
"Green{ " + std::to_string(value)
1996 +
" } is not in range ["
1998 + std::to_string(
validRange().max()) +
"]" };
2001 Zivid::DataModel::Detail::Optional<double> m_opt;
2003 friend struct DataModel::Detail::Befriend<
Green>;
2016 static constexpr const char *path{
"Processing/Color/Balance/Red" };
2019 static constexpr const char *name{
"Red" };
2022 static constexpr const char *description{
2023 R
"description(Digital gain applied to red channel)description"
2032 return { 1.0, 8.0 };
2039 explicit constexpr Red(
double value)
2040 : m_opt{ verifyValue(value) }
2061 return m_opt == other.m_opt;
2067 return m_opt != other.m_opt;
2073 return m_opt < other.m_opt;
2079 return m_opt > other.m_opt;
2085 return m_opt <= other.m_opt;
2091 return m_opt >= other.m_opt;
2101 void setFromString(
const std::string &value);
2103 constexpr ValueType
static verifyValue(
const ValueType &value)
2107 :
throw std::out_of_range{
"Red{ " + std::to_string(value)
2108 +
" } is not in range ["
2110 + std::to_string(
validRange().max()) +
"]" };
2113 Zivid::DataModel::Detail::Optional<double> m_opt;
2115 friend struct DataModel::Detail::Befriend<
Red>;
2142 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2143 typename std::enable_if<
2144 Zivid::Detail::TypeTraits::
2145 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
2148 template<typename... Args>
2152 using namespace Zivid::Detail::TypeTraits;
2155 AllArgsDecayedAreUnique<Args...>::value,
2156 "Found duplicate types among the arguments passed to Balance(...). "
2157 "Types should be listed at most once.");
2159 set(std::forward<Args>(args)...);
2175 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2177 template<typename... Args>
2181 using namespace Zivid::Detail::TypeTraits;
2183 using AllArgsAreDescendantNodes =
2184 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2186 AllArgsAreDescendantNodes::value,
2187 "All arguments passed to set(...) must be descendant nodes.");
2190 AllArgsDecayedAreUnique<Args...>::value,
2191 "Found duplicate types among the arguments passed to set(...). "
2192 "Types should be listed at most once.");
2194 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2211 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2213 template<typename... Args>
2217 using namespace Zivid::Detail::TypeTraits;
2219 using AllArgsAreDescendantNodes =
2220 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2222 AllArgsAreDescendantNodes::value,
2223 "All arguments passed to copyWith(...) must be descendant nodes.");
2226 AllArgsDecayedAreUnique<Args...>::value,
2227 "Found duplicate types among the arguments passed to copyWith(...). "
2228 "Types should be listed at most once.");
2231 copy.
set(std::forward<Args>(args)...);
2294 typename std::enable_if<
2295 std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
2304 typename std::enable_if<
2305 std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
2315 enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
2321 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2327 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2333 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2340 template<
typename F>
2349 template<
typename F>
2373 void setFromString(
const std::string &value);
2375 void setFromString(
const std::string &fullPath,
const std::string &value);
2377 std::string getString(
const std::string &fullPath)
const;
2383 friend struct DataModel::Detail::Befriend<
Balance>;
2396 static constexpr const char *path{
"Processing/Color/Experimental" };
2399 static constexpr const char *name{
"Experimental" };
2402 static constexpr const char *description{
2403 R
"description(Experimental color settings. These may be renamed, moved or deleted in the future.)description"
2437 static constexpr const char *path{
"Processing/Color/Experimental/Mode" };
2440 static constexpr const char *name{
"Mode" };
2443 static constexpr const char *description{
2444 R
"description(This setting controls how the color image is computed.
2446`automatic` is the default option. `automatic` is identical to `useFirstAcquisition` for
2447single-acquisition captures and multi-acquisition captures when all the acquisitions have
2448identical (duplicated) acquisition settings. `automatic` is identical to `toneMapping` for
2449multi-acquisition HDR captures with differing acquisition settings.
2451`useFirstAcquisition` uses the color data acquired from the first acquisition provided. If
2452the capture consists of more than one acquisition, then the remaining acquisitions are not used
2453for the color image. No tone mapping is performed. This option provides the most control of
2454the color image, and the color values will be consistent over repeated captures with the same
2457`toneMapping` uses all the acquisitions to create one merged and normalized color image. For
2458HDR captures the dynamic range of the captured images is usually higher than the 8-bit color
2459image range. `toneMapping` will map the HDR color data to the 8-bit color output range by
2460applying a scaling factor. `toneMapping` can also be used for single-acquisition captures to
2461normalize the captured color image to the full 8-bit output. Note that when using `toneMapping`
2462mode the color values can be inconsistent over repeated captures if you move, add or remove
2463objects in the scene. For the most control over the colors, select the `useFirstAcquisition`
2472 useFirstAcquisition,
2482 return { ValueType::automatic, ValueType::useFirstAcquisition, ValueType::toneMapping };
2490 : m_opt{ verifyValue(value) }
2517 return m_opt == other.m_opt;
2523 return m_opt != other.m_opt;
2533 void setFromString(
const std::string &value);
2535 constexpr ValueType
static verifyValue(
const ValueType &value)
2537 return value == ValueType::automatic || value == ValueType::useFirstAcquisition
2538 || value == ValueType::toneMapping
2540 :
throw std::invalid_argument{
2541 "Invalid value: Mode{ "
2542 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
2547 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
2549 friend struct DataModel::Detail::Befriend<
Mode>;
2552 using Descendants = std::tuple<Settings::Processing::Color::Experimental::Mode>;
2571 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2572 typename std::enable_if<
2573 Zivid::Detail::TypeTraits::
2574 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
2577 template<typename... Args>
2581 using namespace Zivid::Detail::TypeTraits;
2584 AllArgsDecayedAreUnique<Args...>::value,
2585 "Found duplicate types among the arguments passed to Experimental(...). "
2586 "Types should be listed at most once.");
2588 set(std::forward<Args>(args)...);
2602 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2604 template<typename... Args>
2608 using namespace Zivid::Detail::TypeTraits;
2610 using AllArgsAreDescendantNodes =
2611 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2613 AllArgsAreDescendantNodes::value,
2614 "All arguments passed to set(...) must be descendant nodes.");
2617 AllArgsDecayedAreUnique<Args...>::value,
2618 "Found duplicate types among the arguments passed to set(...). "
2619 "Types should be listed at most once.");
2621 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2636 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2638 template<typename... Args>
2642 using namespace Zivid::Detail::TypeTraits;
2644 using AllArgsAreDescendantNodes =
2645 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2647 AllArgsAreDescendantNodes::value,
2648 "All arguments passed to copyWith(...) must be descendant nodes.");
2651 AllArgsDecayedAreUnique<Args...>::value,
2652 "Found duplicate types among the arguments passed to copyWith(...). "
2653 "Types should be listed at most once.");
2656 copy.
set(std::forward<Args>(args)...);
2681 typename std::enable_if<
2682 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
2689 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2696 template<
typename F>
2703 template<
typename F>
2725 void setFromString(
const std::string &value);
2727 void setFromString(
const std::string &fullPath,
const std::string &value);
2729 std::string getString(
const std::string &fullPath)
const;
2733 friend struct DataModel::Detail::Befriend<
Experimental>;
2748 static constexpr const char *path{
"Processing/Color/Gamma" };
2751 static constexpr const char *name{
"Gamma" };
2754 static constexpr const char *description{
2755 R
"description(Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma
2756greater than 1 makes the colors darker.
2766 return { 0.25, 1.5 };
2774 : m_opt{ verifyValue(value) }
2795 return m_opt == other.m_opt;
2801 return m_opt != other.m_opt;
2807 return m_opt < other.m_opt;
2813 return m_opt > other.m_opt;
2819 return m_opt <= other.m_opt;
2825 return m_opt >= other.m_opt;
2835 void setFromString(
const std::string &value);
2837 constexpr ValueType
static verifyValue(
const ValueType &value)
2841 :
throw std::out_of_range{
"Gamma{ " + std::to_string(value) +
" } is not in range ["
2843 + std::to_string(
validRange().max()) +
"]" };
2846 Zivid::DataModel::Detail::Optional<double> m_opt;
2848 friend struct DataModel::Detail::Befriend<
Gamma>;
2883 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2884 typename std::enable_if<
2885 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2889 template<typename... Args>
2893 using namespace Zivid::Detail::TypeTraits;
2896 AllArgsDecayedAreUnique<Args...>::value,
2897 "Found duplicate types among the arguments passed to Color(...). "
2898 "Types should be listed at most once.");
2900 set(std::forward<Args>(args)...);
2920 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2922 template<typename... Args>
2926 using namespace Zivid::Detail::TypeTraits;
2928 using AllArgsAreDescendantNodes =
2929 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2931 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2934 AllArgsDecayedAreUnique<Args...>::value,
2935 "Found duplicate types among the arguments passed to set(...). "
2936 "Types should be listed at most once.");
2938 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2959 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2961 template<typename... Args>
2965 using namespace Zivid::Detail::TypeTraits;
2967 using AllArgsAreDescendantNodes =
2968 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2970 AllArgsAreDescendantNodes::value,
2971 "All arguments passed to copyWith(...) must be descendant nodes.");
2974 AllArgsDecayedAreUnique<Args...>::value,
2975 "Found duplicate types among the arguments passed to copyWith(...). "
2976 "Types should be listed at most once.");
2979 copy.
set(std::forward<Args>(args)...);
3005 m_balance.
set(value);
3012 m_balance.
set(value);
3019 m_balance.
set(value);
3026 return m_experimental;
3032 return m_experimental;
3038 m_experimental = value;
3045 m_experimental.
set(value);
3070 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type =
3079 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::
3088 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
3097 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::
3106 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::
3110 return m_experimental;
3115 typename std::enable_if<
3116 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
3125 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
3131 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3137 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3140 return m_experimental;
3143 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3150 template<
typename F>
3159 template<
typename F>
3183 void setFromString(
const std::string &value);
3185 void setFromString(
const std::string &fullPath,
const std::string &value);
3187 std::string getString(
const std::string &fullPath)
const;
3193 friend struct DataModel::Detail::Befriend<
Color>;
3206 static constexpr const char *path{
"Processing/Filters" };
3209 static constexpr const char *name{
"Filters" };
3212 static constexpr const char *description{ R
"description(Filters)description" };
3225 static constexpr const char *path{
"Processing/Filters/Cluster" };
3228 static constexpr const char *name{
"Cluster" };
3231 static constexpr const char *description{
3232 R
"description(Removes floating points and isolated clusters from the point cloud.
3246 static constexpr const char *path{
"Processing/Filters/Cluster/Removal" };
3249 static constexpr const char *name{
"Removal" };
3252 static constexpr const char *description{ R
"description(Removal)description" };
3264 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/Enabled" };
3267 static constexpr const char *name{
"Enabled" };
3270 static constexpr const char *description{ R
"description(Enabled)description" };
3280 return {
false,
true };
3309 return m_opt == other.m_opt;
3315 return m_opt != other.m_opt;
3325 void setFromString(
const std::string &value);
3327 Zivid::DataModel::Detail::Optional<bool> m_opt;
3329 friend struct DataModel::Detail::Befriend<
Enabled>;
3345 static constexpr const char *path{
3346 "Processing/Filters/Cluster/Removal/MaxNeighborDistance"
3350 static constexpr const char *name{
"MaxNeighborDistance" };
3353 static constexpr const char *description{
3354 R
"description(Maximum normalized distance between neighboring points that are still classified as
3355belonging to the same cluster. The default value is optimal for most scenes. On messy
3356scenes turning this setting down helps removing more bad points.
3366 return { 2.0, 10.0 };
3374 : m_opt{ verifyValue(value) }
3395 return m_opt == other.m_opt;
3401 return m_opt != other.m_opt;
3407 return m_opt < other.m_opt;
3413 return m_opt > other.m_opt;
3419 return m_opt <= other.m_opt;
3425 return m_opt >= other.m_opt;
3435 void setFromString(
const std::string &value);
3437 constexpr ValueType
static verifyValue(
const ValueType &value)
3441 :
throw std::out_of_range{
"MaxNeighborDistance{ " + std::to_string(value)
3442 +
" } is not in range ["
3444 + std::to_string(
validRange().max()) +
"]" };
3447 Zivid::DataModel::Detail::Optional<double> m_opt;
3464 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/MinArea" };
3467 static constexpr const char *name{
"MinArea" };
3470 static constexpr const char *description{
3471 R
"description(Clusters with area below this threshold are removed by the filter.
3472The area is given in mm^2.
3482 return { 0.0, 1500.0 };
3490 : m_opt{ verifyValue(value) }
3511 return m_opt == other.m_opt;
3517 return m_opt != other.m_opt;
3523 return m_opt < other.m_opt;
3529 return m_opt > other.m_opt;
3535 return m_opt <= other.m_opt;
3541 return m_opt >= other.m_opt;
3551 void setFromString(
const std::string &value);
3553 constexpr ValueType
static verifyValue(
const ValueType &value)
3557 :
throw std::out_of_range{
"MinArea{ " + std::to_string(value)
3558 +
" } is not in range ["
3560 + std::to_string(
validRange().max()) +
"]" };
3563 Zivid::DataModel::Detail::Optional<double> m_opt;
3565 friend struct DataModel::Detail::Befriend<
MinArea>;
3592 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3593 typename std::enable_if<
3594 Zivid::Detail::TypeTraits::
3595 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
3598 template<typename... Args>
3602 using namespace Zivid::Detail::TypeTraits;
3605 AllArgsDecayedAreUnique<Args...>::value,
3606 "Found duplicate types among the arguments passed to Removal(...). "
3607 "Types should be listed at most once.");
3609 set(std::forward<Args>(args)...);
3625 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3627 template<typename... Args>
3631 using namespace Zivid::Detail::TypeTraits;
3633 using AllArgsAreDescendantNodes =
3634 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3636 AllArgsAreDescendantNodes::value,
3637 "All arguments passed to set(...) must be descendant nodes.");
3640 AllArgsDecayedAreUnique<Args...>::value,
3641 "Found duplicate types among the arguments passed to set(...). "
3642 "Types should be listed at most once.");
3644 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3661 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3663 template<typename... Args>
3667 using namespace Zivid::Detail::TypeTraits;
3669 using AllArgsAreDescendantNodes =
3670 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3672 AllArgsAreDescendantNodes::value,
3673 "All arguments passed to copyWith(...) must be descendant nodes.");
3676 AllArgsDecayedAreUnique<Args...>::value,
3677 "Found duplicate types among the arguments passed to copyWith(...). "
3678 "Types should be listed at most once.");
3681 copy.
set(std::forward<Args>(args)...);
3707 return m_maxNeighborDistance;
3713 return m_maxNeighborDistance;
3719 m_maxNeighborDistance = value;
3744 typename std::enable_if<
3745 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
3754 typename std::enable_if<
3755 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
3760 return m_maxNeighborDistance;
3765 typename std::enable_if<
3766 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
3773 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3779 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3782 return m_maxNeighborDistance;
3785 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3792 template<
typename F>
3796 f(m_maxNeighborDistance);
3801 template<
typename F>
3805 f(m_maxNeighborDistance);
3825 void setFromString(
const std::string &value);
3827 void setFromString(
const std::string &fullPath,
const std::string &value);
3829 std::string getString(
const std::string &fullPath)
const;
3832 MaxNeighborDistance m_maxNeighborDistance;
3835 friend struct DataModel::Detail::Befriend<
Removal>;
3864 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3865 typename std::enable_if<
3866 Zivid::Detail::TypeTraits::
3867 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
3870 template<typename... Args>
3874 using namespace Zivid::Detail::TypeTraits;
3877 AllArgsDecayedAreUnique<Args...>::value,
3878 "Found duplicate types among the arguments passed to Cluster(...). "
3879 "Types should be listed at most once.");
3881 set(std::forward<Args>(args)...);
3898 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3900 template<typename... Args>
3904 using namespace Zivid::Detail::TypeTraits;
3906 using AllArgsAreDescendantNodes =
3907 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3909 AllArgsAreDescendantNodes::value,
3910 "All arguments passed to set(...) must be descendant nodes.");
3913 AllArgsDecayedAreUnique<Args...>::value,
3914 "Found duplicate types among the arguments passed to set(...). "
3915 "Types should be listed at most once.");
3917 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3935 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3937 template<typename... Args>
3941 using namespace Zivid::Detail::TypeTraits;
3943 using AllArgsAreDescendantNodes =
3944 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3946 AllArgsAreDescendantNodes::value,
3947 "All arguments passed to copyWith(...) must be descendant nodes.");
3950 AllArgsDecayedAreUnique<Args...>::value,
3951 "Found duplicate types among the arguments passed to copyWith(...). "
3952 "Types should be listed at most once.");
3955 copy.
set(std::forward<Args>(args)...);
3981 m_removal.
set(value);
3988 m_removal.
set(value);
3995 m_removal.
set(value);
4001 typename std::enable_if<
4002 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
4011 typename std::enable_if<
4012 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
4021 typename std::enable_if<
4022 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
4032 typename std::enable_if<
4033 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
4040 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4047 template<
typename F>
4054 template<
typename F>
4076 void setFromString(
const std::string &value);
4078 void setFromString(
const std::string &fullPath,
const std::string &value);
4080 std::string getString(
const std::string &fullPath)
const;
4084 friend struct DataModel::Detail::Befriend<
Cluster>;
4097 static constexpr const char *path{
"Processing/Filters/Experimental" };
4100 static constexpr const char *name{
"Experimental" };
4103 static constexpr const char *description{
4104 R
"description(Experimental filters. These may be renamed, moved or deleted in the future.)description"
4121 static constexpr const char *path{
"Processing/Filters/Experimental/ContrastDistortion" };
4124 static constexpr const char *name{
"ContrastDistortion" };
4127 static constexpr const char *description{
4128 R
"description(Corrects artifacts that appear when imaging scenes with large texture gradients
4129or high contrast. These artifacts are caused by blurring in the lens. The filter
4130works best when aperture values are chosen such that the camera has quite good focus.
4131The filter also supports removing the points that experience a large correction.
4145 static constexpr const char *path{
4146 "Processing/Filters/Experimental/ContrastDistortion/Correction"
4150 static constexpr const char *name{
"Correction" };
4153 static constexpr const char *description{ R
"description(Correction)description" };
4165 static constexpr const char *path{
4166 "Processing/Filters/Experimental/ContrastDistortion/Correction/Enabled"
4170 static constexpr const char *name{
"Enabled" };
4173 static constexpr const char *description{ R
"description(Enabled)description" };
4183 return {
false,
true };
4212 return m_opt == other.m_opt;
4218 return m_opt != other.m_opt;
4228 void setFromString(
const std::string &value);
4230 Zivid::DataModel::Detail::Optional<bool> m_opt;
4232 friend struct DataModel::Detail::Befriend<
Enabled>;
4245 static constexpr const char *path{
4246 "Processing/Filters/Experimental/ContrastDistortion/Correction/Strength"
4250 static constexpr const char *name{
"Strength" };
4253 static constexpr const char *description{
4254 R
"description(Higher values gives more correction.)description"
4263 return { 0.0, 1.0 };
4271 : m_opt{ verifyValue(value) }
4292 return m_opt == other.m_opt;
4298 return m_opt != other.m_opt;
4304 return m_opt < other.m_opt;
4310 return m_opt > other.m_opt;
4316 return m_opt <= other.m_opt;
4322 return m_opt >= other.m_opt;
4332 void setFromString(
const std::string &value);
4334 constexpr ValueType
static verifyValue(
const ValueType &value)
4338 :
throw std::out_of_range{
"Strength{ " + std::to_string(value)
4339 +
" } is not in range ["
4341 + std::to_string(
validRange().max()) +
"]" };
4344 Zivid::DataModel::Detail::Optional<double> m_opt;
4346 friend struct DataModel::Detail::Befriend<
Strength>;
4371 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4372 typename std::enable_if<
4373 Zivid::Detail::TypeTraits::
4374 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
4377 template<typename... Args>
4381 using namespace Zivid::Detail::TypeTraits;
4384 AllArgsDecayedAreUnique<Args...>::value,
4385 "Found duplicate types among the arguments passed to Correction(...). "
4386 "Types should be listed at most once.");
4388 set(std::forward<Args>(args)...);
4403 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4405 template<typename... Args>
4409 using namespace Zivid::Detail::TypeTraits;
4411 using AllArgsAreDescendantNodes =
4412 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4414 AllArgsAreDescendantNodes::value,
4415 "All arguments passed to set(...) must be descendant nodes.");
4418 AllArgsDecayedAreUnique<Args...>::value,
4419 "Found duplicate types among the arguments passed to set(...). "
4420 "Types should be listed at most once.");
4422 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4438 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4440 template<typename... Args>
4444 using namespace Zivid::Detail::TypeTraits;
4446 using AllArgsAreDescendantNodes =
4447 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4449 AllArgsAreDescendantNodes::value,
4450 "All arguments passed to copyWith(...) must be descendant nodes.");
4453 AllArgsDecayedAreUnique<Args...>::value,
4454 "Found duplicate types among the arguments passed to copyWith(...). "
4455 "Types should be listed at most once.");
4458 copy.
set(std::forward<Args>(args)...);
4502 typename std::enable_if<
4505 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4516 typename std::enable_if<
4519 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4529 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4536 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4545 template<
typename F>
4553 template<
typename F>
4576 void setFromString(
const std::string &value);
4578 void setFromString(
const std::string &fullPath,
const std::string &value);
4580 std::string getString(
const std::string &fullPath)
const;
4585 friend struct DataModel::Detail::Befriend<
Correction>;
4598 static constexpr const char *path{
4599 "Processing/Filters/Experimental/ContrastDistortion/Removal"
4603 static constexpr const char *name{
"Removal" };
4606 static constexpr const char *description{ R
"description(Removal)description" };
4618 static constexpr const char *path{
4619 "Processing/Filters/Experimental/ContrastDistortion/Removal/Enabled"
4623 static constexpr const char *name{
"Enabled" };
4626 static constexpr const char *description{ R
"description(Enabled)description" };
4636 return {
false,
true };
4665 return m_opt == other.m_opt;
4671 return m_opt != other.m_opt;
4681 void setFromString(
const std::string &value);
4683 Zivid::DataModel::Detail::Optional<bool> m_opt;
4685 friend struct DataModel::Detail::Befriend<
Enabled>;
4698 static constexpr const char *path{
4699 "Processing/Filters/Experimental/ContrastDistortion/Removal/Threshold"
4703 static constexpr const char *name{
"Threshold" };
4706 static constexpr const char *description{
4707 R
"description(Higher values remove more points.)description"
4716 return { 0.0, 1.0 };
4724 : m_opt{ verifyValue(value) }
4745 return m_opt == other.m_opt;
4751 return m_opt != other.m_opt;
4757 return m_opt < other.m_opt;
4763 return m_opt > other.m_opt;
4769 return m_opt <= other.m_opt;
4775 return m_opt >= other.m_opt;
4785 void setFromString(
const std::string &value);
4787 constexpr ValueType
static verifyValue(
const ValueType &value)
4791 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
4792 +
" } is not in range ["
4794 + std::to_string(
validRange().max()) +
"]" };
4797 Zivid::DataModel::Detail::Optional<double> m_opt;
4799 friend struct DataModel::Detail::Befriend<
Threshold>;
4824 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4825 typename std::enable_if<
4826 Zivid::Detail::TypeTraits::
4827 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
4830 template<typename... Args>
4834 using namespace Zivid::Detail::TypeTraits;
4837 AllArgsDecayedAreUnique<Args...>::value,
4838 "Found duplicate types among the arguments passed to Removal(...). "
4839 "Types should be listed at most once.");
4841 set(std::forward<Args>(args)...);
4856 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4858 template<typename... Args>
4862 using namespace Zivid::Detail::TypeTraits;
4864 using AllArgsAreDescendantNodes =
4865 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4867 AllArgsAreDescendantNodes::value,
4868 "All arguments passed to set(...) must be descendant nodes.");
4871 AllArgsDecayedAreUnique<Args...>::value,
4872 "Found duplicate types among the arguments passed to set(...). "
4873 "Types should be listed at most once.");
4875 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4891 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4893 template<typename... Args>
4897 using namespace Zivid::Detail::TypeTraits;
4899 using AllArgsAreDescendantNodes =
4900 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4902 AllArgsAreDescendantNodes::value,
4903 "All arguments passed to copyWith(...) must be descendant nodes.");
4906 AllArgsDecayedAreUnique<Args...>::value,
4907 "Found duplicate types among the arguments passed to copyWith(...). "
4908 "Types should be listed at most once.");
4911 copy.
set(std::forward<Args>(args)...);
4949 m_threshold = value;
4955 typename std::enable_if<
4958 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4969 typename std::enable_if<
4972 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4981 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4988 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4996 template<
typename F>
5004 template<
typename F>
5027 void setFromString(
const std::string &value);
5029 void setFromString(
const std::string &fullPath,
const std::string &value);
5031 std::string getString(
const std::string &fullPath)
const;
5036 friend struct DataModel::Detail::Befriend<
Removal>;
5069 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5070 typename std::enable_if<
5071 Zivid::Detail::TypeTraits::
5072 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
5075 template<typename... Args>
5079 using namespace Zivid::Detail::TypeTraits;
5082 AllArgsDecayedAreUnique<Args...>::value,
5083 "Found duplicate types among the arguments passed to ContrastDistortion(...). "
5084 "Types should be listed at most once.");
5086 set(std::forward<Args>(args)...);
5105 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5107 template<typename... Args>
5111 using namespace Zivid::Detail::TypeTraits;
5113 using AllArgsAreDescendantNodes =
5114 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5116 AllArgsAreDescendantNodes::value,
5117 "All arguments passed to set(...) must be descendant nodes.");
5120 AllArgsDecayedAreUnique<Args...>::value,
5121 "Found duplicate types among the arguments passed to set(...). "
5122 "Types should be listed at most once.");
5124 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5144 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5146 template<typename... Args>
5150 using namespace Zivid::Detail::TypeTraits;
5152 using AllArgsAreDescendantNodes =
5153 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5155 AllArgsAreDescendantNodes::value,
5156 "All arguments passed to copyWith(...) must be descendant nodes.");
5159 AllArgsDecayedAreUnique<Args...>::value,
5160 "Found duplicate types among the arguments passed to copyWith(...). "
5161 "Types should be listed at most once.");
5164 copy.
set(std::forward<Args>(args)...);
5171 return m_correction;
5177 return m_correction;
5183 m_correction = value;
5190 m_correction.
set(value);
5197 m_correction.
set(value);
5223 m_removal.
set(value);
5230 m_removal.
set(value);
5236 typename std::enable_if<
5243 return m_correction;
5248 typename std::enable_if<
5251 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5257 return m_correction.get<
5263 typename std::enable_if<
5266 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5272 return m_correction.get<Settings::Processing::Filters::Experimental::ContrastDistortion::
5273 Correction::Strength>();
5278 typename std::enable_if<
5290 typename std::enable_if<
5299 return m_removal.get<
5305 typename std::enable_if<
5308 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
5314 return m_removal.get<
5318 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5321 return m_correction;
5324 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
5331 template<
typename F>
5339 template<
typename F>
5362 void setFromString(
const std::string &value);
5364 void setFromString(
const std::string &fullPath,
const std::string &value);
5366 std::string getString(
const std::string &fullPath)
const;
5368 Correction m_correction;
5385 static constexpr const char *path{
"Processing/Filters/Experimental/HoleFilling" };
5388 static constexpr const char *name{
"HoleFilling" };
5391 static constexpr const char *description{
5392 R
"description(Fills in removed points by interpolating remaining surrounding points.
5406 static constexpr const char *path{
"Processing/Filters/Experimental/HoleFilling/Enabled" };
5409 static constexpr const char *name{
"Enabled" };
5412 static constexpr const char *description{ R
"description(Enabled)description" };
5422 return {
false,
true };
5451 return m_opt == other.m_opt;
5457 return m_opt != other.m_opt;
5467 void setFromString(
const std::string &value);
5469 Zivid::DataModel::Detail::Optional<bool> m_opt;
5471 friend struct DataModel::Detail::Befriend<
Enabled>;
5487 static constexpr const char *path{
"Processing/Filters/Experimental/HoleFilling/HoleSize" };
5490 static constexpr const char *name{
"HoleSize" };
5493 static constexpr const char *description{
5494 R
"description(Relative diameter of holes to fill. Increasing this will fill more points, but require more
5495computation time. The maximum allowed hole size scales with distance, so that we allow
5496filling larger holes at greater distances, measured in mm.
5506 return { 0.0, 1.0 };
5514 : m_opt{ verifyValue(value) }
5535 return m_opt == other.m_opt;
5541 return m_opt != other.m_opt;
5547 return m_opt < other.m_opt;
5553 return m_opt > other.m_opt;
5559 return m_opt <= other.m_opt;
5565 return m_opt >= other.m_opt;
5575 void setFromString(
const std::string &value);
5577 constexpr ValueType
static verifyValue(
const ValueType &value)
5581 :
throw std::out_of_range{
"HoleSize{ " + std::to_string(value)
5582 +
" } is not in range ["
5584 + std::to_string(
validRange().max()) +
"]" };
5587 Zivid::DataModel::Detail::Optional<double> m_opt;
5589 friend struct DataModel::Detail::Befriend<
HoleSize>;
5606 static constexpr const char *path{
5607 "Processing/Filters/Experimental/HoleFilling/Strictness"
5611 static constexpr const char *name{
"Strictness" };
5614 static constexpr const char *description{
5615 R
"description(Level of strictness when considering if a point should be filled. A higher level of
5616strictness requires a missing point to be surrounded by valid points on more sides in
5617order to be filled. Increasing this will fill fewer points, but it will be less likely to
5618fill gaps that are not circular, for example between two edges.
5636 : m_opt{ verifyValue(value) }
5657 return m_opt == other.m_opt;
5663 return m_opt != other.m_opt;
5669 return m_opt < other.m_opt;
5675 return m_opt > other.m_opt;
5681 return m_opt <= other.m_opt;
5687 return m_opt >= other.m_opt;
5697 void setFromString(
const std::string &value);
5699 constexpr ValueType
static verifyValue(
const ValueType &value)
5703 :
throw std::out_of_range{
"Strictness{ " + std::to_string(value)
5704 +
" } is not in range ["
5706 + std::to_string(
validRange().max()) +
"]" };
5709 Zivid::DataModel::Detail::Optional<int32_t> m_opt;
5711 friend struct DataModel::Detail::Befriend<
Strictness>;
5738 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5739 typename std::enable_if<
5740 Zivid::Detail::TypeTraits::
5741 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
5744 template<typename... Args>
5748 using namespace Zivid::Detail::TypeTraits;
5751 AllArgsDecayedAreUnique<Args...>::value,
5752 "Found duplicate types among the arguments passed to HoleFilling(...). "
5753 "Types should be listed at most once.");
5755 set(std::forward<Args>(args)...);
5771 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5773 template<typename... Args>
5777 using namespace Zivid::Detail::TypeTraits;
5779 using AllArgsAreDescendantNodes =
5780 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5782 AllArgsAreDescendantNodes::value,
5783 "All arguments passed to set(...) must be descendant nodes.");
5786 AllArgsDecayedAreUnique<Args...>::value,
5787 "Found duplicate types among the arguments passed to set(...). "
5788 "Types should be listed at most once.");
5790 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5807 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5809 template<typename... Args>
5813 using namespace Zivid::Detail::TypeTraits;
5815 using AllArgsAreDescendantNodes =
5816 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5818 AllArgsAreDescendantNodes::value,
5819 "All arguments passed to copyWith(...) must be descendant nodes.");
5822 AllArgsDecayedAreUnique<Args...>::value,
5823 "Found duplicate types among the arguments passed to copyWith(...). "
5824 "Types should be listed at most once.");
5827 copy.
set(std::forward<Args>(args)...);
5872 return m_strictness;
5878 return m_strictness;
5884 m_strictness = value;
5890 typename std::enable_if<
5891 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::
5901 typename std::enable_if<
5902 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::
5912 typename std::enable_if<
5913 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::
5918 return m_strictness;
5921 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5927 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
5933 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
5936 return m_strictness;
5940 template<
typename F>
5949 template<
typename F>
5973 void setFromString(
const std::string &value);
5975 void setFromString(
const std::string &fullPath,
const std::string &value);
5977 std::string getString(
const std::string &fullPath)
const;
5980 HoleSize m_holeSize;
5983 friend struct DataModel::Detail::Befriend<
HoleFilling>;
6026 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6027 typename std::enable_if<
6028 Zivid::Detail::TypeTraits::
6029 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
6032 template<typename... Args>
6036 using namespace Zivid::Detail::TypeTraits;
6039 AllArgsDecayedAreUnique<Args...>::value,
6040 "Found duplicate types among the arguments passed to Experimental(...). "
6041 "Types should be listed at most once.");
6043 set(std::forward<Args>(args)...);
6067 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6069 template<typename... Args>
6073 using namespace Zivid::Detail::TypeTraits;
6075 using AllArgsAreDescendantNodes =
6076 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6078 AllArgsAreDescendantNodes::value,
6079 "All arguments passed to set(...) must be descendant nodes.");
6082 AllArgsDecayedAreUnique<Args...>::value,
6083 "Found duplicate types among the arguments passed to set(...). "
6084 "Types should be listed at most once.");
6086 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6111 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6113 template<typename... Args>
6117 using namespace Zivid::Detail::TypeTraits;
6119 using AllArgsAreDescendantNodes =
6120 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6122 AllArgsAreDescendantNodes::value,
6123 "All arguments passed to copyWith(...) must be descendant nodes.");
6126 AllArgsDecayedAreUnique<Args...>::value,
6127 "Found duplicate types among the arguments passed to copyWith(...). "
6128 "Types should be listed at most once.");
6131 copy.
set(std::forward<Args>(args)...);
6138 return m_contrastDistortion;
6144 return m_contrastDistortion;
6150 m_contrastDistortion = value;
6157 m_contrastDistortion.
set(value);
6164 m_contrastDistortion.
set(value);
6171 m_contrastDistortion.
set(value);
6178 m_contrastDistortion.
set(value);
6185 m_contrastDistortion.
set(value);
6192 m_contrastDistortion.
set(value);
6199 return m_holeFilling;
6205 return m_holeFilling;
6211 m_holeFilling = value;
6218 m_holeFilling.
set(value);
6225 m_holeFilling.
set(value);
6232 m_holeFilling.
set(value);
6238 typename std::enable_if<
6239 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
6243 return m_contrastDistortion;
6248 typename std::enable_if<
6255 return m_contrastDistortion
6261 typename std::enable_if<
6270 return m_contrastDistortion.get<
6276 typename std::enable_if<
6285 return m_contrastDistortion.get<
6291 typename std::enable_if<
6292 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
6297 return m_contrastDistortion
6303 typename std::enable_if<
6311 return m_contrastDistortion
6317 typename std::enable_if<
6326 return m_contrastDistortion
6332 typename std::enable_if<
6333 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling>::value,
6337 return m_holeFilling;
6342 typename std::enable_if<
6343 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::value,
6352 typename std::enable_if<
6353 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::value,
6362 typename std::enable_if<
6363 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::
6368 return m_holeFilling
6372 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6375 return m_contrastDistortion;
6378 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6381 return m_holeFilling;
6385 template<
typename F>
6388 f(m_contrastDistortion);
6393 template<
typename F>
6396 f(m_contrastDistortion);
6416 void setFromString(
const std::string &value);
6418 void setFromString(
const std::string &fullPath,
const std::string &value);
6420 std::string getString(
const std::string &fullPath)
const;
6422 ContrastDistortion m_contrastDistortion;
6425 friend struct DataModel::Detail::Befriend<
Experimental>;
6438 static constexpr const char *path{
"Processing/Filters/Noise" };
6441 static constexpr const char *name{
"Noise" };
6444 static constexpr const char *description{
6445 R
"description(Contains filters that can be used to clean up a noisy point cloud)description"
6458 static constexpr const char *path{
"Processing/Filters/Noise/Removal" };
6461 static constexpr const char *name{
"Removal" };
6464 static constexpr const char *description{
6465 R
"description(Discard points with signal-to-noise ratio (SNR) values below a threshold)description"
6478 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Enabled" };
6481 static constexpr const char *name{
"Enabled" };
6484 static constexpr const char *description{
6485 R
"description(Enable or disable the SNR filter)description"
6496 return {
false,
true };
6525 return m_opt == other.m_opt;
6531 return m_opt != other.m_opt;
6541 void setFromString(
const std::string &value);
6543 Zivid::DataModel::Detail::Optional<bool> m_opt;
6545 friend struct DataModel::Detail::Befriend<
Enabled>;
6558 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Threshold" };
6561 static constexpr const char *name{
"Threshold" };
6564 static constexpr const char *description{
6565 R
"description(Discard points with signal-to-noise ratio (SNR) below the given value)description"
6574 return { 0.0, 100.0 };
6582 : m_opt{ verifyValue(value) }
6603 return m_opt == other.m_opt;
6609 return m_opt != other.m_opt;
6615 return m_opt < other.m_opt;
6621 return m_opt > other.m_opt;
6627 return m_opt <= other.m_opt;
6633 return m_opt >= other.m_opt;
6643 void setFromString(
const std::string &value);
6645 constexpr ValueType
static verifyValue(
const ValueType &value)
6649 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
6650 +
" } is not in range ["
6652 + std::to_string(
validRange().max()) +
"]" };
6655 Zivid::DataModel::Detail::Optional<double> m_opt;
6657 friend struct DataModel::Detail::Befriend<
Threshold>;
6682 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6683 typename std::enable_if<
6684 Zivid::Detail::TypeTraits::
6685 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
6688 template<typename... Args>
6692 using namespace Zivid::Detail::TypeTraits;
6695 AllArgsDecayedAreUnique<Args...>::value,
6696 "Found duplicate types among the arguments passed to Removal(...). "
6697 "Types should be listed at most once.");
6699 set(std::forward<Args>(args)...);
6714 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6716 template<typename... Args>
6720 using namespace Zivid::Detail::TypeTraits;
6722 using AllArgsAreDescendantNodes =
6723 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6725 AllArgsAreDescendantNodes::value,
6726 "All arguments passed to set(...) must be descendant nodes.");
6729 AllArgsDecayedAreUnique<Args...>::value,
6730 "Found duplicate types among the arguments passed to set(...). "
6731 "Types should be listed at most once.");
6733 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6749 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6751 template<typename... Args>
6755 using namespace Zivid::Detail::TypeTraits;
6757 using AllArgsAreDescendantNodes =
6758 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6760 AllArgsAreDescendantNodes::value,
6761 "All arguments passed to copyWith(...) must be descendant nodes.");
6764 AllArgsDecayedAreUnique<Args...>::value,
6765 "Found duplicate types among the arguments passed to copyWith(...). "
6766 "Types should be listed at most once.");
6769 copy.
set(std::forward<Args>(args)...);
6807 m_threshold = value;
6813 typename std::enable_if<
6814 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
6823 typename std::enable_if<
6824 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
6831 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6837 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6844 template<
typename F>
6852 template<
typename F>
6875 void setFromString(
const std::string &value);
6877 void setFromString(
const std::string &fullPath,
const std::string &value);
6879 std::string getString(
const std::string &fullPath)
const;
6884 friend struct DataModel::Detail::Befriend<
Removal>;
6900 static constexpr const char *path{
"Processing/Filters/Noise/Repair" };
6903 static constexpr const char *name{
"Repair" };
6906 static constexpr const char *description{
6907 R
"description(Get better surface coverage by repairing regions of missing data due to noisy points.
6908Consider disabling this filter if you require all points in your point cloud to be of
6923 static constexpr const char *path{
"Processing/Filters/Noise/Repair/Enabled" };
6926 static constexpr const char *name{
"Enabled" };
6929 static constexpr const char *description{
6930 R
"description(Enable or disable noise repair)description"
6941 return {
false,
true };
6970 return m_opt == other.m_opt;
6976 return m_opt != other.m_opt;
6986 void setFromString(
const std::string &value);
6988 Zivid::DataModel::Detail::Optional<bool> m_opt;
6990 friend struct DataModel::Detail::Befriend<
Enabled>;
6993 using Descendants = std::tuple<Settings::Processing::Filters::Noise::Repair::Enabled>;
7012 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7013 typename std::enable_if<
7014 Zivid::Detail::TypeTraits::
7015 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
7018 template<typename... Args>
7022 using namespace Zivid::Detail::TypeTraits;
7025 AllArgsDecayedAreUnique<Args...>::value,
7026 "Found duplicate types among the arguments passed to Repair(...). "
7027 "Types should be listed at most once.");
7029 set(std::forward<Args>(args)...);
7043 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7045 template<typename... Args>
7049 using namespace Zivid::Detail::TypeTraits;
7051 using AllArgsAreDescendantNodes =
7052 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7054 AllArgsAreDescendantNodes::value,
7055 "All arguments passed to set(...) must be descendant nodes.");
7058 AllArgsDecayedAreUnique<Args...>::value,
7059 "Found duplicate types among the arguments passed to set(...). "
7060 "Types should be listed at most once.");
7062 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7077 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7079 template<typename... Args>
7083 using namespace Zivid::Detail::TypeTraits;
7085 using AllArgsAreDescendantNodes =
7086 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7088 AllArgsAreDescendantNodes::value,
7089 "All arguments passed to copyWith(...) must be descendant nodes.");
7092 AllArgsDecayedAreUnique<Args...>::value,
7093 "Found duplicate types among the arguments passed to copyWith(...). "
7094 "Types should be listed at most once.");
7097 copy.
set(std::forward<Args>(args)...);
7122 typename std::enable_if<
7123 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
7130 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7137 template<
typename F>
7144 template<
typename F>
7166 void setFromString(
const std::string &value);
7168 void setFromString(
const std::string &fullPath,
const std::string &value);
7170 std::string getString(
const std::string &fullPath)
const;
7174 friend struct DataModel::Detail::Befriend<
Repair>;
7190 static constexpr const char *path{
"Processing/Filters/Noise/Suppression" };
7193 static constexpr const char *name{
"Suppression" };
7196 static constexpr const char *description{
7197 R
"description(Reduce noise and outliers in the point cloud. This filter can also be used to reduce
7198ripple effects caused by interreflections. Consider disabling this filter if you need to
7199distinguish very fine details and thus need to avoid any smoothing effects.
7213 static constexpr const char *path{
"Processing/Filters/Noise/Suppression/Enabled" };
7216 static constexpr const char *name{
"Enabled" };
7219 static constexpr const char *description{
7220 R
"description(Enable or disable noise suppression)description"
7231 return {
false,
true };
7260 return m_opt == other.m_opt;
7266 return m_opt != other.m_opt;
7276 void setFromString(
const std::string &value);
7278 Zivid::DataModel::Detail::Optional<bool> m_opt;
7280 friend struct DataModel::Detail::Befriend<
Enabled>;
7283 using Descendants = std::tuple<Settings::Processing::Filters::Noise::Suppression::Enabled>;
7302 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7303 typename std::enable_if<
7304 Zivid::Detail::TypeTraits::
7305 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
7308 template<typename... Args>
7312 using namespace Zivid::Detail::TypeTraits;
7315 AllArgsDecayedAreUnique<Args...>::value,
7316 "Found duplicate types among the arguments passed to Suppression(...). "
7317 "Types should be listed at most once.");
7319 set(std::forward<Args>(args)...);
7333 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7335 template<typename... Args>
7339 using namespace Zivid::Detail::TypeTraits;
7341 using AllArgsAreDescendantNodes =
7342 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7344 AllArgsAreDescendantNodes::value,
7345 "All arguments passed to set(...) must be descendant nodes.");
7348 AllArgsDecayedAreUnique<Args...>::value,
7349 "Found duplicate types among the arguments passed to set(...). "
7350 "Types should be listed at most once.");
7352 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7367 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7369 template<typename... Args>
7373 using namespace Zivid::Detail::TypeTraits;
7375 using AllArgsAreDescendantNodes =
7376 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7378 AllArgsAreDescendantNodes::value,
7379 "All arguments passed to copyWith(...) must be descendant nodes.");
7382 AllArgsDecayedAreUnique<Args...>::value,
7383 "Found duplicate types among the arguments passed to copyWith(...). "
7384 "Types should be listed at most once.");
7387 copy.
set(std::forward<Args>(args)...);
7412 typename std::enable_if<
7413 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
7420 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7427 template<
typename F>
7434 template<
typename F>
7456 void setFromString(
const std::string &value);
7458 void setFromString(
const std::string &fullPath,
const std::string &value);
7460 std::string getString(
const std::string &fullPath)
const;
7464 friend struct DataModel::Detail::Befriend<
Suppression>;
7499 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7500 typename std::enable_if<
7501 Zivid::Detail::TypeTraits::
7502 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
7505 template<typename... Args>
7509 using namespace Zivid::Detail::TypeTraits;
7512 AllArgsDecayedAreUnique<Args...>::value,
7513 "Found duplicate types among the arguments passed to Noise(...). "
7514 "Types should be listed at most once.");
7516 set(std::forward<Args>(args)...);
7536 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7538 template<typename... Args>
7542 using namespace Zivid::Detail::TypeTraits;
7544 using AllArgsAreDescendantNodes =
7545 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7547 AllArgsAreDescendantNodes::value,
7548 "All arguments passed to set(...) must be descendant nodes.");
7551 AllArgsDecayedAreUnique<Args...>::value,
7552 "Found duplicate types among the arguments passed to set(...). "
7553 "Types should be listed at most once.");
7555 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7576 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7578 template<typename... Args>
7582 using namespace Zivid::Detail::TypeTraits;
7584 using AllArgsAreDescendantNodes =
7585 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7587 AllArgsAreDescendantNodes::value,
7588 "All arguments passed to copyWith(...) must be descendant nodes.");
7591 AllArgsDecayedAreUnique<Args...>::value,
7592 "Found duplicate types among the arguments passed to copyWith(...). "
7593 "Types should be listed at most once.");
7596 copy.
set(std::forward<Args>(args)...);
7622 m_removal.
set(value);
7629 m_removal.
set(value);
7655 m_repair.
set(value);
7662 return m_suppression;
7668 return m_suppression;
7674 m_suppression = value;
7681 m_suppression.
set(value);
7687 typename std::enable_if<
7688 std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
7697 typename std::enable_if<
7698 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
7707 typename std::enable_if<
7708 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
7717 typename std::enable_if<
7718 std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
7727 typename std::enable_if<
7728 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
7737 typename std::enable_if<
7738 std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
7742 return m_suppression;
7747 typename std::enable_if<
7748 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
7755 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7761 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
7767 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
7770 return m_suppression;
7774 template<
typename F>
7783 template<
typename F>
7807 void setFromString(
const std::string &value);
7809 void setFromString(
const std::string &fullPath,
const std::string &value);
7811 std::string getString(
const std::string &fullPath)
const;
7817 friend struct DataModel::Detail::Befriend<
Noise>;
7830 static constexpr const char *path{
"Processing/Filters/Outlier" };
7833 static constexpr const char *name{
"Outlier" };
7836 static constexpr const char *description{
7837 R
"description(Contains a filter that removes points with large Euclidean distance to neighboring points)description"
7850 static constexpr const char *path{
"Processing/Filters/Outlier/Removal" };
7853 static constexpr const char *name{
"Removal" };
7856 static constexpr const char *description{
7857 R
"description(Discard point if Euclidean distance to neighboring points is above a threshold)description"
7870 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Enabled" };
7873 static constexpr const char *name{
"Enabled" };
7876 static constexpr const char *description{
7877 R
"description(Enable or disable the outlier filter)description"
7888 return {
false,
true };
7917 return m_opt == other.m_opt;
7923 return m_opt != other.m_opt;
7933 void setFromString(
const std::string &value);
7935 Zivid::DataModel::Detail::Optional<bool> m_opt;
7937 friend struct DataModel::Detail::Befriend<
Enabled>;
7950 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Threshold" };
7953 static constexpr const char *name{
"Threshold" };
7956 static constexpr const char *description{
7957 R
"description(Discard point if Euclidean distance to neighboring points is above the given value)description"
7966 return { 0.0, 100.0 };
7974 : m_opt{ verifyValue(value) }
7995 return m_opt == other.m_opt;
8001 return m_opt != other.m_opt;
8007 return m_opt < other.m_opt;
8013 return m_opt > other.m_opt;
8019 return m_opt <= other.m_opt;
8025 return m_opt >= other.m_opt;
8035 void setFromString(
const std::string &value);
8037 constexpr ValueType
static verifyValue(
const ValueType &value)
8041 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
8042 +
" } is not in range ["
8044 + std::to_string(
validRange().max()) +
"]" };
8047 Zivid::DataModel::Detail::Optional<double> m_opt;
8049 friend struct DataModel::Detail::Befriend<
Threshold>;
8074 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8075 typename std::enable_if<
8076 Zivid::Detail::TypeTraits::
8077 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
8080 template<typename... Args>
8084 using namespace Zivid::Detail::TypeTraits;
8087 AllArgsDecayedAreUnique<Args...>::value,
8088 "Found duplicate types among the arguments passed to Removal(...). "
8089 "Types should be listed at most once.");
8091 set(std::forward<Args>(args)...);
8106 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8108 template<typename... Args>
8112 using namespace Zivid::Detail::TypeTraits;
8114 using AllArgsAreDescendantNodes =
8115 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8117 AllArgsAreDescendantNodes::value,
8118 "All arguments passed to set(...) must be descendant nodes.");
8121 AllArgsDecayedAreUnique<Args...>::value,
8122 "Found duplicate types among the arguments passed to set(...). "
8123 "Types should be listed at most once.");
8125 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8141 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8143 template<typename... Args>
8147 using namespace Zivid::Detail::TypeTraits;
8149 using AllArgsAreDescendantNodes =
8150 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8152 AllArgsAreDescendantNodes::value,
8153 "All arguments passed to copyWith(...) must be descendant nodes.");
8156 AllArgsDecayedAreUnique<Args...>::value,
8157 "Found duplicate types among the arguments passed to copyWith(...). "
8158 "Types should be listed at most once.");
8161 copy.
set(std::forward<Args>(args)...);
8199 m_threshold = value;
8205 typename std::enable_if<
8206 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
8215 typename std::enable_if<
8216 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
8223 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8229 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
8236 template<
typename F>
8244 template<
typename F>
8267 void setFromString(
const std::string &value);
8269 void setFromString(
const std::string &fullPath,
const std::string &value);
8271 std::string getString(
const std::string &fullPath)
const;
8276 friend struct DataModel::Detail::Befriend<
Removal>;
8303 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8304 typename std::enable_if<
8305 Zivid::Detail::TypeTraits::
8306 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
8309 template<typename... Args>
8313 using namespace Zivid::Detail::TypeTraits;
8316 AllArgsDecayedAreUnique<Args...>::value,
8317 "Found duplicate types among the arguments passed to Outlier(...). "
8318 "Types should be listed at most once.");
8320 set(std::forward<Args>(args)...);
8336 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8338 template<typename... Args>
8342 using namespace Zivid::Detail::TypeTraits;
8344 using AllArgsAreDescendantNodes =
8345 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8347 AllArgsAreDescendantNodes::value,
8348 "All arguments passed to set(...) must be descendant nodes.");
8351 AllArgsDecayedAreUnique<Args...>::value,
8352 "Found duplicate types among the arguments passed to set(...). "
8353 "Types should be listed at most once.");
8355 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8372 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8374 template<typename... Args>
8378 using namespace Zivid::Detail::TypeTraits;
8380 using AllArgsAreDescendantNodes =
8381 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8383 AllArgsAreDescendantNodes::value,
8384 "All arguments passed to copyWith(...) must be descendant nodes.");
8387 AllArgsDecayedAreUnique<Args...>::value,
8388 "Found duplicate types among the arguments passed to copyWith(...). "
8389 "Types should be listed at most once.");
8392 copy.
set(std::forward<Args>(args)...);
8418 m_removal.
set(value);
8425 m_removal.
set(value);
8431 typename std::enable_if<
8432 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
8441 typename std::enable_if<
8442 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
8451 typename std::enable_if<
8452 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
8459 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8466 template<
typename F>
8473 template<
typename F>
8495 void setFromString(
const std::string &value);
8497 void setFromString(
const std::string &fullPath,
const std::string &value);
8499 std::string getString(
const std::string &fullPath)
const;
8503 friend struct DataModel::Detail::Befriend<
Outlier>;
8516 static constexpr const char *path{
"Processing/Filters/Reflection" };
8519 static constexpr const char *name{
"Reflection" };
8522 static constexpr const char *description{
8523 R
"description(Contains a filter that removes points likely introduced by reflections (useful for shiny materials))description"
8536 static constexpr const char *path{
"Processing/Filters/Reflection/Removal" };
8539 static constexpr const char *name{
"Removal" };
8542 static constexpr const char *description{
8543 R
"description(Discard points likely introduced by reflections (useful for shiny materials))description"
8556 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Enabled" };
8559 static constexpr const char *name{
"Enabled" };
8562 static constexpr const char *description{
8563 R
"description(Enable or disable the reflection filter. Note that this filter is computationally intensive and may affect the frame rate)description"
8574 return {
false,
true };
8603 return m_opt == other.m_opt;
8609 return m_opt != other.m_opt;
8619 void setFromString(
const std::string &value);
8621 Zivid::DataModel::Detail::Optional<bool> m_opt;
8623 friend struct DataModel::Detail::Befriend<
Enabled>;
8636 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Experimental" };
8639 static constexpr const char *name{
"Experimental" };
8642 static constexpr const char *description{
8643 R
"description(Experimental reflection filter related settings)description"
8663 static constexpr const char *path{
8664 "Processing/Filters/Reflection/Removal/Experimental/Mode"
8668 static constexpr const char *name{
"Mode" };
8671 static constexpr const char *description{
8672 R
"description(The reflection filter has two modes: Local and Global. Local mode preserves more 3D data
8673on thinner objects, generally removes more reflection artifacts and processes faster than
8674the Global filter. The Global filter is generally better at removing outlier points in
8675the point cloud. It is advised to use the Outlier filter together with the Local
8678Global mode was introduced in SDK 1.0 and Local mode was introduced in SDK 2.7.
8694 return { ValueType::global, ValueType::local };
8702 : m_opt{ verifyValue(value) }
8729 return m_opt == other.m_opt;
8735 return m_opt != other.m_opt;
8745 void setFromString(
const std::string &value);
8747 constexpr ValueType
static verifyValue(
const ValueType &value)
8749 return value == ValueType::global || value == ValueType::local
8751 :
throw std::invalid_argument{
8752 "Invalid value: Mode{ "
8754 static_cast<std::underlying_type<ValueType>::type
>(value))
8759 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
8761 friend struct DataModel::Detail::Befriend<
Mode>;
8765 std::tuple<Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>;
8784 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8785 typename std::enable_if<
8786 Zivid::Detail::TypeTraits::
8787 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
8790 template<typename... Args>
8794 using namespace Zivid::Detail::TypeTraits;
8797 AllArgsDecayedAreUnique<Args...>::value,
8798 "Found duplicate types among the arguments passed to Experimental(...). "
8799 "Types should be listed at most once.");
8801 set(std::forward<Args>(args)...);
8815 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8817 template<typename... Args>
8821 using namespace Zivid::Detail::TypeTraits;
8823 using AllArgsAreDescendantNodes =
8824 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8826 AllArgsAreDescendantNodes::value,
8827 "All arguments passed to set(...) must be descendant nodes.");
8830 AllArgsDecayedAreUnique<Args...>::value,
8831 "Found duplicate types among the arguments passed to set(...). "
8832 "Types should be listed at most once.");
8834 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8849 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8851 template<typename... Args>
8855 using namespace Zivid::Detail::TypeTraits;
8857 using AllArgsAreDescendantNodes =
8858 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8860 AllArgsAreDescendantNodes::value,
8861 "All arguments passed to copyWith(...) must be descendant nodes.");
8864 AllArgsDecayedAreUnique<Args...>::value,
8865 "Found duplicate types among the arguments passed to copyWith(...). "
8866 "Types should be listed at most once.");
8869 copy.
set(std::forward<Args>(args)...);
8894 typename std::enable_if<
8904 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8911 template<
typename F>
8918 template<
typename F>
8940 void setFromString(
const std::string &value);
8942 void setFromString(
const std::string &fullPath,
const std::string &value);
8944 std::string getString(
const std::string &fullPath)
const;
8948 friend struct DataModel::Detail::Befriend<
Experimental>;
8975 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8976 typename std::enable_if<
8977 Zivid::Detail::TypeTraits::
8978 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
8981 template<typename... Args>
8985 using namespace Zivid::Detail::TypeTraits;
8988 AllArgsDecayedAreUnique<Args...>::value,
8989 "Found duplicate types among the arguments passed to Removal(...). "
8990 "Types should be listed at most once.");
8992 set(std::forward<Args>(args)...);
9008 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9010 template<typename... Args>
9014 using namespace Zivid::Detail::TypeTraits;
9016 using AllArgsAreDescendantNodes =
9017 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9019 AllArgsAreDescendantNodes::value,
9020 "All arguments passed to set(...) must be descendant nodes.");
9023 AllArgsDecayedAreUnique<Args...>::value,
9024 "Found duplicate types among the arguments passed to set(...). "
9025 "Types should be listed at most once.");
9027 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9044 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9046 template<typename... Args>
9050 using namespace Zivid::Detail::TypeTraits;
9052 using AllArgsAreDescendantNodes =
9053 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9055 AllArgsAreDescendantNodes::value,
9056 "All arguments passed to copyWith(...) must be descendant nodes.");
9059 AllArgsDecayedAreUnique<Args...>::value,
9060 "Found duplicate types among the arguments passed to copyWith(...). "
9061 "Types should be listed at most once.");
9064 copy.
set(std::forward<Args>(args)...);
9090 return m_experimental;
9096 return m_experimental;
9102 m_experimental = value;
9109 m_experimental.
set(value);
9115 typename std::enable_if<
9116 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
9125 typename std::enable_if<
9126 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::
9131 return m_experimental;
9136 typename std::enable_if<
9143 return m_experimental
9147 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9153 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9156 return m_experimental;
9160 template<
typename F>
9168 template<
typename F>
9191 void setFromString(
const std::string &value);
9193 void setFromString(
const std::string &fullPath,
const std::string &value);
9195 std::string getString(
const std::string &fullPath)
const;
9200 friend struct DataModel::Detail::Befriend<
Removal>;
9229 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9230 typename std::enable_if<
9231 Zivid::Detail::TypeTraits::
9232 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
9235 template<typename... Args>
9239 using namespace Zivid::Detail::TypeTraits;
9242 AllArgsDecayedAreUnique<Args...>::value,
9243 "Found duplicate types among the arguments passed to Reflection(...). "
9244 "Types should be listed at most once.");
9246 set(std::forward<Args>(args)...);
9263 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9265 template<typename... Args>
9269 using namespace Zivid::Detail::TypeTraits;
9271 using AllArgsAreDescendantNodes =
9272 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9274 AllArgsAreDescendantNodes::value,
9275 "All arguments passed to set(...) must be descendant nodes.");
9278 AllArgsDecayedAreUnique<Args...>::value,
9279 "Found duplicate types among the arguments passed to set(...). "
9280 "Types should be listed at most once.");
9282 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9300 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9302 template<typename... Args>
9306 using namespace Zivid::Detail::TypeTraits;
9308 using AllArgsAreDescendantNodes =
9309 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9311 AllArgsAreDescendantNodes::value,
9312 "All arguments passed to copyWith(...) must be descendant nodes.");
9315 AllArgsDecayedAreUnique<Args...>::value,
9316 "Found duplicate types among the arguments passed to copyWith(...). "
9317 "Types should be listed at most once.");
9320 copy.
set(std::forward<Args>(args)...);
9346 m_removal.
set(value);
9353 m_removal.
set(value);
9360 m_removal.
set(value);
9366 typename std::enable_if<
9367 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
9376 typename std::enable_if<
9377 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
9386 typename std::enable_if<
9387 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
9396 typename std::enable_if<
9397 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::
9405 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9412 template<
typename F>
9419 template<
typename F>
9441 void setFromString(
const std::string &value);
9443 void setFromString(
const std::string &fullPath,
const std::string &value);
9445 std::string getString(
const std::string &fullPath)
const;
9449 friend struct DataModel::Detail::Befriend<
Reflection>;
9462 static constexpr const char *path{
"Processing/Filters/Smoothing" };
9465 static constexpr const char *name{
"Smoothing" };
9468 static constexpr const char *description{ R
"description(Smoothing filters)description" };
9480 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian" };
9483 static constexpr const char *name{
"Gaussian" };
9486 static constexpr const char *description{
9487 R
"description(Gaussian smoothing of the point cloud)description"
9500 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Enabled" };
9503 static constexpr const char *name{
"Enabled" };
9506 static constexpr const char *description{
9507 R
"description(Enable or disable the smoothing filter)description"
9518 return {
false,
true };
9547 return m_opt == other.m_opt;
9553 return m_opt != other.m_opt;
9563 void setFromString(
const std::string &value);
9565 Zivid::DataModel::Detail::Optional<bool> m_opt;
9567 friend struct DataModel::Detail::Befriend<
Enabled>;
9580 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Sigma" };
9583 static constexpr const char *name{
"Sigma" };
9586 static constexpr const char *description{
9587 R
"description(Higher values result in smoother point clouds (Standard deviation of the filter coefficients))description"
9604 : m_opt{ verifyValue(value) }
9625 return m_opt == other.m_opt;
9631 return m_opt != other.m_opt;
9637 return m_opt < other.m_opt;
9643 return m_opt > other.m_opt;
9649 return m_opt <= other.m_opt;
9655 return m_opt >= other.m_opt;
9665 void setFromString(
const std::string &value);
9667 constexpr ValueType
static verifyValue(
const ValueType &value)
9671 :
throw std::out_of_range{
"Sigma{ " + std::to_string(value)
9672 +
" } is not in range ["
9674 + std::to_string(
validRange().max()) +
"]" };
9677 Zivid::DataModel::Detail::Optional<double> m_opt;
9679 friend struct DataModel::Detail::Befriend<
Sigma>;
9704 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9705 typename std::enable_if<
9706 Zivid::Detail::TypeTraits::
9707 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
9710 template<typename... Args>
9714 using namespace Zivid::Detail::TypeTraits;
9717 AllArgsDecayedAreUnique<Args...>::value,
9718 "Found duplicate types among the arguments passed to Gaussian(...). "
9719 "Types should be listed at most once.");
9721 set(std::forward<Args>(args)...);
9736 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9738 template<typename... Args>
9742 using namespace Zivid::Detail::TypeTraits;
9744 using AllArgsAreDescendantNodes =
9745 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9747 AllArgsAreDescendantNodes::value,
9748 "All arguments passed to set(...) must be descendant nodes.");
9751 AllArgsDecayedAreUnique<Args...>::value,
9752 "Found duplicate types among the arguments passed to set(...). "
9753 "Types should be listed at most once.");
9755 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9771 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9773 template<typename... Args>
9777 using namespace Zivid::Detail::TypeTraits;
9779 using AllArgsAreDescendantNodes =
9780 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9782 AllArgsAreDescendantNodes::value,
9783 "All arguments passed to copyWith(...) must be descendant nodes.");
9786 AllArgsDecayedAreUnique<Args...>::value,
9787 "Found duplicate types among the arguments passed to copyWith(...). "
9788 "Types should be listed at most once.");
9791 copy.
set(std::forward<Args>(args)...);
9835 typename std::enable_if<
9836 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9845 typename std::enable_if<
9846 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9853 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9859 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9866 template<
typename F>
9874 template<
typename F>
9897 void setFromString(
const std::string &value);
9899 void setFromString(
const std::string &fullPath,
const std::string &value);
9901 std::string getString(
const std::string &fullPath)
const;
9906 friend struct DataModel::Detail::Befriend<
Gaussian>;
9933 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9934 typename std::enable_if<
9935 Zivid::Detail::TypeTraits::
9936 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
9939 template<typename... Args>
9943 using namespace Zivid::Detail::TypeTraits;
9946 AllArgsDecayedAreUnique<Args...>::value,
9947 "Found duplicate types among the arguments passed to Smoothing(...). "
9948 "Types should be listed at most once.");
9950 set(std::forward<Args>(args)...);
9966 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9968 template<typename... Args>
9972 using namespace Zivid::Detail::TypeTraits;
9974 using AllArgsAreDescendantNodes =
9975 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9977 AllArgsAreDescendantNodes::value,
9978 "All arguments passed to set(...) must be descendant nodes.");
9981 AllArgsDecayedAreUnique<Args...>::value,
9982 "Found duplicate types among the arguments passed to set(...). "
9983 "Types should be listed at most once.");
9985 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
10002 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
10004 template<typename... Args>
10008 using namespace Zivid::Detail::TypeTraits;
10010 using AllArgsAreDescendantNodes =
10011 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10013 AllArgsAreDescendantNodes::value,
10014 "All arguments passed to copyWith(...) must be descendant nodes.");
10017 AllArgsDecayedAreUnique<Args...>::value,
10018 "Found duplicate types among the arguments passed to copyWith(...). "
10019 "Types should be listed at most once.");
10021 auto copy{ *
this };
10022 copy.
set(std::forward<Args>(args)...);
10041 m_gaussian = value;
10048 m_gaussian.
set(value);
10055 m_gaussian.
set(value);
10061 typename std::enable_if<
10062 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
10071 typename std::enable_if<
10072 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
10081 typename std::enable_if<
10082 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
10089 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
10096 template<
typename F>
10103 template<
typename F>
10121 return stream << value.
toString();
10125 void setFromString(
const std::string &value);
10127 void setFromString(
const std::string &fullPath,
const std::string &value);
10129 std::string getString(
const std::string &fullPath)
const;
10133 friend struct DataModel::Detail::Befriend<
Smoothing>;
10230 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
10231 typename std::enable_if<
10232 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
10236 template<typename... Args>
10240 using namespace Zivid::Detail::TypeTraits;
10243 AllArgsDecayedAreUnique<Args...>::value,
10244 "Found duplicate types among the arguments passed to Filters(...). "
10245 "Types should be listed at most once.");
10247 set(std::forward<Args>(args)...);
10298 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
10300 template<typename... Args>
10304 using namespace Zivid::Detail::TypeTraits;
10306 using AllArgsAreDescendantNodes =
10307 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10309 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
10312 AllArgsDecayedAreUnique<Args...>::value,
10313 "Found duplicate types among the arguments passed to set(...). "
10314 "Types should be listed at most once.");
10316 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
10368 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
10370 template<typename... Args>
10374 using namespace Zivid::Detail::TypeTraits;
10376 using AllArgsAreDescendantNodes =
10377 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10379 AllArgsAreDescendantNodes::value,
10380 "All arguments passed to copyWith(...) must be descendant nodes.");
10383 AllArgsDecayedAreUnique<Args...>::value,
10384 "Found duplicate types among the arguments passed to copyWith(...). "
10385 "Types should be listed at most once.");
10387 auto copy{ *
this };
10388 copy.
set(std::forward<Args>(args)...);
10414 m_cluster.
set(value);
10421 m_cluster.
set(value);
10428 m_cluster.
set(value);
10435 m_cluster.
set(value);
10442 return m_experimental;
10448 return m_experimental;
10454 m_experimental = value;
10461 m_experimental.
set(value);
10468 m_experimental.
set(value);
10475 m_experimental.
set(value);
10482 m_experimental.
set(value);
10489 m_experimental.
set(value);
10496 m_experimental.
set(value);
10503 m_experimental.
set(value);
10510 m_experimental.
set(value);
10517 m_experimental.
set(value);
10524 m_experimental.
set(value);
10531 m_experimental.
set(value);
10557 m_noise.
set(value);
10564 m_noise.
set(value);
10571 m_noise.
set(value);
10578 m_noise.
set(value);
10585 m_noise.
set(value);
10592 m_noise.
set(value);
10599 m_noise.
set(value);
10625 m_outlier.
set(value);
10632 m_outlier.
set(value);
10639 m_outlier.
set(value);
10646 return m_reflection;
10652 return m_reflection;
10658 m_reflection = value;
10665 m_reflection.
set(value);
10672 m_reflection.
set(value);
10679 m_reflection.
set(value);
10686 m_reflection.
set(value);
10693 return m_smoothing;
10699 return m_smoothing;
10705 m_smoothing = value;
10712 m_smoothing.
set(value);
10719 m_smoothing.
set(value);
10726 m_smoothing.
set(value);
10732 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type =
10741 typename std::enable_if<
10742 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
10751 typename std::enable_if<
10752 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
10761 typename std::enable_if<
10762 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
10771 typename std::enable_if<
10772 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
10781 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
10785 return m_experimental;
10790 typename std::enable_if<
10791 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
10800 typename std::enable_if<
10801 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::
10806 return m_experimental
10812 typename std::enable_if<
10820 return m_experimental
10826 typename std::enable_if<
10834 return m_experimental
10840 typename std::enable_if<
10841 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
10846 return m_experimental
10852 typename std::enable_if<
10859 return m_experimental
10865 typename std::enable_if<
10872 return m_experimental
10878 typename std::enable_if<
10879 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling>::value,
10888 typename std::enable_if<
10889 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::value,
10898 typename std::enable_if<
10899 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::value,
10908 typename std::enable_if<
10909 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::value,
10918 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type =
10928 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type = 0>
10936 typename std::enable_if<
10937 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
10946 typename std::enable_if<
10947 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
10956 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
10965 typename std::enable_if<
10966 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
10975 typename std::enable_if<
10976 std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
10985 typename std::enable_if<
10986 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
10995 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type =
11004 typename std::enable_if<
11005 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
11014 typename std::enable_if<
11015 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
11024 typename std::enable_if<
11025 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
11034 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::
11038 return m_reflection;
11043 typename std::enable_if<
11044 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
11053 typename std::enable_if<
11054 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
11063 typename std::enable_if<
11064 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
11073 typename std::enable_if<
11074 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::value,
11083 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::
11087 return m_smoothing;
11092 typename std::enable_if<
11093 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
11102 typename std::enable_if<
11103 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
11112 typename std::enable_if<
11113 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
11120 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
11126 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
11129 return m_experimental;
11132 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
11138 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
11144 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
11147 return m_reflection;
11150 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
11153 return m_smoothing;
11157 template<
typename F>
11169 template<
typename F>
11192 return stream << value.
toString();
11196 void setFromString(
const std::string &value);
11198 void setFromString(
const std::string &fullPath,
const std::string &value);
11200 std::string getString(
const std::string &fullPath)
const;
11206 Reflection m_reflection;
11209 friend struct DataModel::Detail::Befriend<
Filters>;
11324 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11325 typename std::enable_if<
11326 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11330 template<typename... Args>
11334 using namespace Zivid::Detail::TypeTraits;
11337 AllArgsDecayedAreUnique<Args...>::value,
11338 "Found duplicate types among the arguments passed to Processing(...). "
11339 "Types should be listed at most once.");
11341 set(std::forward<Args>(args)...);
11401 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11403 template<typename... Args>
11407 using namespace Zivid::Detail::TypeTraits;
11409 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11411 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11414 AllArgsDecayedAreUnique<Args...>::value,
11415 "Found duplicate types among the arguments passed to set(...). "
11416 "Types should be listed at most once.");
11418 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
11479 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
11481 template<typename... Args>
11485 using namespace Zivid::Detail::TypeTraits;
11487 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11489 AllArgsAreDescendantNodes::value,
11490 "All arguments passed to copyWith(...) must be descendant nodes.");
11493 AllArgsDecayedAreUnique<Args...>::value,
11494 "Found duplicate types among the arguments passed to copyWith(...). "
11495 "Types should be listed at most once.");
11497 auto copy{ *
this };
11498 copy.
set(std::forward<Args>(args)...);
11524 m_color.
set(value);
11531 m_color.
set(value);
11538 m_color.
set(value);
11545 m_color.
set(value);
11552 m_color.
set(value);
11559 m_color.
set(value);
11566 m_color.
set(value);
11592 m_filters.
set(value);
11599 m_filters.
set(value);
11606 m_filters.
set(value);
11613 m_filters.
set(value);
11620 m_filters.
set(value);
11627 m_filters.
set(value);
11634 m_filters.
set(value);
11641 m_filters.
set(value);
11648 m_filters.
set(value);
11655 m_filters.
set(value);
11662 m_filters.
set(value);
11669 m_filters.
set(value);
11676 m_filters.
set(value);
11683 m_filters.
set(value);
11690 m_filters.
set(value);
11697 m_filters.
set(value);
11704 m_filters.
set(value);
11711 m_filters.
set(value);
11718 m_filters.
set(value);
11725 m_filters.
set(value);
11732 m_filters.
set(value);
11739 m_filters.
set(value);
11746 m_filters.
set(value);
11753 m_filters.
set(value);
11760 m_filters.
set(value);
11767 m_filters.
set(value);
11774 m_filters.
set(value);
11781 m_filters.
set(value);
11788 m_filters.
set(value);
11795 m_filters.
set(value);
11802 m_filters.
set(value);
11809 m_filters.
set(value);
11816 m_filters.
set(value);
11823 m_filters.
set(value);
11830 m_filters.
set(value);
11837 m_filters.
set(value);
11844 m_filters.
set(value);
11851 m_filters.
set(value);
11857 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
11865 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
11873 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type =
11882 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
11891 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type =
11900 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type =
11909 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
11918 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
11926 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
11934 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
11942 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
11951 typename std::enable_if<
11952 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
11961 typename std::enable_if<
11962 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
11971 typename std::enable_if<
11972 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
11981 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
11990 typename std::enable_if<
11991 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
12000 typename std::enable_if<
12001 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
12010 typename std::enable_if<
12023 typename std::enable_if<
12036 typename std::enable_if<
12037 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
12046 typename std::enable_if<
12047 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
12058 typename std::enable_if<
12071 typename std::enable_if<
12072 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling>::value,
12081 typename std::enable_if<
12082 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::value,
12091 typename std::enable_if<
12092 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::value,
12101 typename std::enable_if<
12102 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::value,
12111 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
12119 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::
12128 typename std::enable_if<
12129 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
12138 typename std::enable_if<
12139 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
12148 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
12157 typename std::enable_if<
12158 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
12168 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::type = 0>
12176 typename std::enable_if<
12177 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
12186 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
12194 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
12203 typename std::enable_if<
12204 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
12213 typename std::enable_if<
12214 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
12223 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type =
12232 typename std::enable_if<
12233 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
12242 typename std::enable_if<
12243 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
12252 typename std::enable_if<
12253 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
12262 typename std::enable_if<
12263 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::value,
12272 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type =
12281 typename std::enable_if<
12282 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
12291 typename std::enable_if<
12292 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
12301 typename std::enable_if<
12302 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
12309 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
12315 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
12322 template<
typename F>
12330 template<
typename F>
12349 return stream << value.
toString();
12353 void setFromString(
const std::string &value);
12355 void setFromString(
const std::string &fullPath,
const std::string &value);
12357 std::string getString(
const std::string &fullPath)
const;
12362 friend struct DataModel::Detail::Befriend<
Processing>;
12376 static constexpr const char *path{
"RegionOfInterest" };
12379 static constexpr const char *name{
"RegionOfInterest" };
12382 static constexpr const char *description{ R
"description(Removes points outside the region of interest.
12405 static constexpr const char *path{
"RegionOfInterest/Box" };
12408 static constexpr const char *name{
"Box" };
12411 static constexpr const char *description{ R
"description(Removes the points outside the box.
12413The box is defined by three points: O, A and B. These points define two vectors,
12414OA that goes from PointO to PointA, and OB that goes from PointO to PointB.
12415This gives 4 points O, A, B and (O + OA + OB), that together form a
12416parallelogram in 3D.
12418Two extents can be provided, to extrude the parallelogram along the surface
12419normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped).
12420The surface normal vector is defined by the cross product OA x OB.
12433 static constexpr const char *path{
"RegionOfInterest/Box/Enabled" };
12436 static constexpr const char *name{
"Enabled" };
12439 static constexpr const char *description{ R
"description(Enabled)description" };
12449 return {
false,
true };
12478 return m_opt == other.m_opt;
12484 return m_opt != other.m_opt;
12490 return stream << value.
toString();
12494 void setFromString(
const std::string &value);
12496 Zivid::DataModel::Detail::Optional<bool> m_opt;
12498 friend struct DataModel::Detail::Befriend<
Enabled>;
12511 static constexpr const char *path{
"RegionOfInterest/Box/Extents" };
12514 static constexpr const char *name{
"Extents" };
12517 static constexpr const char *description{
12518 R
"description(Two points on the normal describing the direction and distance from the plane from which the normal is derived.)description"
12548 explicit constexpr Extents(
double minValue,
double maxValue)
12555 return m_opt == other.m_opt;
12561 return m_opt != other.m_opt;
12567 return stream << value.
toString();
12571 void setFromString(
const std::string &value);
12573 Zivid::DataModel::Detail::Optional<Zivid::Range<double>> m_opt;
12575 friend struct DataModel::Detail::Befriend<
Extents>;
12588 static constexpr const char *path{
"RegionOfInterest/Box/PointA" };
12591 static constexpr const char *name{
"PointA" };
12594 static constexpr const char *description{
12595 R
"description(A point such that the vector from PointO to PointA describes the first edge of the parallelogram)description"
12625 explicit constexpr PointA(
float x,
float y,
float z)
12632 return m_opt == other.m_opt;
12638 return m_opt != other.m_opt;
12644 return stream << value.
toString();
12648 void setFromString(
const std::string &value);
12650 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
12652 friend struct DataModel::Detail::Befriend<
PointA>;
12665 static constexpr const char *path{
"RegionOfInterest/Box/PointB" };
12668 static constexpr const char *name{
"PointB" };
12671 static constexpr const char *description{
12672 R
"description(A point such that the vector from PointO to PointB describes the second edge of the parallelogram)description"
12702 explicit constexpr PointB(
float x,
float y,
float z)
12709 return m_opt == other.m_opt;
12715 return m_opt != other.m_opt;
12721 return stream << value.
toString();
12725 void setFromString(
const std::string &value);
12727 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
12729 friend struct DataModel::Detail::Befriend<
PointB>;
12742 static constexpr const char *path{
"RegionOfInterest/Box/PointO" };
12745 static constexpr const char *name{
"PointO" };
12748 static constexpr const char *description{
12749 R
"description(The point at the intersection of two adjacent edges defining a parallelogram)description"
12779 explicit constexpr PointO(
float x,
float y,
float z)
12786 return m_opt == other.m_opt;
12792 return m_opt != other.m_opt;
12798 return stream << value.
toString();
12802 void setFromString(
const std::string &value);
12804 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
12806 friend struct DataModel::Detail::Befriend<
PointO>;
12837 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
12838 typename std::enable_if<
12839 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
12843 template<typename... Args>
12847 using namespace Zivid::Detail::TypeTraits;
12850 AllArgsDecayedAreUnique<Args...>::value,
12851 "Found duplicate types among the arguments passed to Box(...). "
12852 "Types should be listed at most once.");
12854 set(std::forward<Args>(args)...);
12872 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
12874 template<typename... Args>
12878 using namespace Zivid::Detail::TypeTraits;
12880 using AllArgsAreDescendantNodes =
12881 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
12883 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
12886 AllArgsDecayedAreUnique<Args...>::value,
12887 "Found duplicate types among the arguments passed to set(...). "
12888 "Types should be listed at most once.");
12890 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
12909 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
12911 template<typename... Args>
12915 using namespace Zivid::Detail::TypeTraits;
12917 using AllArgsAreDescendantNodes =
12918 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
12920 AllArgsAreDescendantNodes::value,
12921 "All arguments passed to copyWith(...) must be descendant nodes.");
12924 AllArgsDecayedAreUnique<Args...>::value,
12925 "Found duplicate types among the arguments passed to copyWith(...). "
12926 "Types should be listed at most once.");
12928 auto copy{ *
this };
12929 copy.
set(std::forward<Args>(args)...);
13030 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::
13039 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::
13048 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::
13057 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::
13066 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::
13073 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13079 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13085 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
13091 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
13097 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
13104 template<
typename F>
13115 template<
typename F>
13137 return stream << value.
toString();
13141 void setFromString(
const std::string &value);
13143 void setFromString(
const std::string &fullPath,
const std::string &value);
13145 std::string getString(
const std::string &fullPath)
const;
13153 friend struct DataModel::Detail::Befriend<
Box>;
13168 static constexpr const char *path{
"RegionOfInterest/Depth" };
13171 static constexpr const char *name{
"Depth" };
13174 static constexpr const char *description{
13175 R
"description(Removes points that reside outside of a depth range, meaning that their Z coordinate
13176falls above a given maximum or below a given minimum.
13190 static constexpr const char *path{
"RegionOfInterest/Depth/Enabled" };
13193 static constexpr const char *name{
"Enabled" };
13196 static constexpr const char *description{ R
"description(Enabled)description" };
13206 return {
false,
true };
13235 return m_opt == other.m_opt;
13241 return m_opt != other.m_opt;
13247 return stream << value.
toString();
13251 void setFromString(
const std::string &value);
13253 Zivid::DataModel::Detail::Optional<bool> m_opt;
13255 friend struct DataModel::Detail::Befriend<
Enabled>;
13268 static constexpr const char *path{
"RegionOfInterest/Depth/Range" };
13271 static constexpr const char *name{
"Range" };
13274 static constexpr const char *description{
13275 R
"description(Specify the minimum and maximum Z value that will be included.)description"
13305 explicit constexpr Range(
double minValue,
double maxValue)
13312 return m_opt == other.m_opt;
13318 return m_opt != other.m_opt;
13324 return stream << value.
toString();
13328 void setFromString(
const std::string &value);
13330 Zivid::DataModel::Detail::Optional<Zivid::Range<double>> m_opt;
13332 friend struct DataModel::Detail::Befriend<
Range>;
13336 std::tuple<Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range>;
13356 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13357 typename std::enable_if<
13358 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13362 template<typename... Args>
13366 using namespace Zivid::Detail::TypeTraits;
13369 AllArgsDecayedAreUnique<Args...>::value,
13370 "Found duplicate types among the arguments passed to Depth(...). "
13371 "Types should be listed at most once.");
13373 set(std::forward<Args>(args)...);
13388 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13390 template<typename... Args>
13394 using namespace Zivid::Detail::TypeTraits;
13396 using AllArgsAreDescendantNodes =
13397 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13399 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13402 AllArgsDecayedAreUnique<Args...>::value,
13403 "Found duplicate types among the arguments passed to set(...). "
13404 "Types should be listed at most once.");
13406 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13422 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13424 template<typename... Args>
13428 using namespace Zivid::Detail::TypeTraits;
13430 using AllArgsAreDescendantNodes =
13431 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13433 AllArgsAreDescendantNodes::value,
13434 "All arguments passed to copyWith(...) must be descendant nodes.");
13437 AllArgsDecayedAreUnique<Args...>::value,
13438 "Found duplicate types among the arguments passed to copyWith(...). "
13439 "Types should be listed at most once.");
13441 auto copy{ *
this };
13442 copy.
set(std::forward<Args>(args)...);
13486 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::
13495 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::
13502 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13508 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13515 template<
typename F>
13523 template<
typename F>
13542 return stream << value.
toString();
13546 void setFromString(
const std::string &value);
13548 void setFromString(
const std::string &fullPath,
const std::string &value);
13550 std::string getString(
const std::string &fullPath)
const;
13555 friend struct DataModel::Detail::Befriend<
Depth>;
13594 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13595 typename std::enable_if<
13596 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13600 template<typename... Args>
13604 using namespace Zivid::Detail::TypeTraits;
13607 AllArgsDecayedAreUnique<Args...>::value,
13608 "Found duplicate types among the arguments passed to RegionOfInterest(...). "
13609 "Types should be listed at most once.");
13611 set(std::forward<Args>(args)...);
13633 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13635 template<typename... Args>
13639 using namespace Zivid::Detail::TypeTraits;
13641 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13643 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13646 AllArgsDecayedAreUnique<Args...>::value,
13647 "Found duplicate types among the arguments passed to set(...). "
13648 "Types should be listed at most once.");
13650 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13673 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13675 template<typename... Args>
13679 using namespace Zivid::Detail::TypeTraits;
13681 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13683 AllArgsAreDescendantNodes::value,
13684 "All arguments passed to copyWith(...) must be descendant nodes.");
13687 AllArgsDecayedAreUnique<Args...>::value,
13688 "Found duplicate types among the arguments passed to copyWith(...). "
13689 "Types should be listed at most once.");
13691 auto copy{ *
this };
13692 copy.
set(std::forward<Args>(args)...);
13772 m_depth.
set(value);
13779 m_depth.
set(value);
13785 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
13793 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type =
13802 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type =
13811 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
13819 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
13827 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
13835 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
13843 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type =
13852 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type =
13859 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13865 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13872 template<
typename F>
13880 template<
typename F>
13899 return stream << value.
toString();
13903 void setFromString(
const std::string &value);
13905 void setFromString(
const std::string &fullPath,
const std::string &value);
13907 std::string getString(
const std::string &fullPath)
const;
13926 static constexpr const char *path{
"Sampling" };
13929 static constexpr const char *name{
"Sampling" };
13932 static constexpr const char *description{ R
"description(Sampling group
13949 static constexpr const char *path{
"Sampling/Color" };
13952 static constexpr const char *name{
"Color" };
13955 static constexpr const char *description{
13956 R
"description(Choose how to sample colors for the pointcloud. The `rgb` option gives all
13957colors for a regular Zivid camera. The `disabled` option gives no colors and
13958can allow for faster captures. It is also useful if you want to avoid projecting
13959white light in the subsampling modes under `Sampling::Pixel`.
13975 return { ValueType::rgb, ValueType::disabled };
13983 : m_opt{ verifyValue(value) }
14010 return m_opt == other.m_opt;
14016 return m_opt != other.m_opt;
14022 return stream << value.
toString();
14026 void setFromString(
const std::string &value);
14028 constexpr ValueType
static verifyValue(
const ValueType &value)
14030 return value == ValueType::rgb || value == ValueType::disabled
14032 :
throw std::invalid_argument{
14033 "Invalid value: Color{ "
14034 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14038 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
14040 friend struct DataModel::Detail::Befriend<
Color>;
14061 static constexpr const char *path{
"Sampling/Pixel" };
14064 static constexpr const char *name{
"Pixel" };
14067 static constexpr const char *description{
14068 R
"description(Set whether the full image sensor should be used with white projector light or
14069only specific color channels with corresponding projector light.
14070Using only a specific color channel will subsample pixels and give a
14073Subsampling decreases the capture time, as less data will be captured and processed.
14074Picking a specific color channel can also help reduce noise and effects of ambient light.
14075Projecting blue light will in most cases give better data than red light.
14093 return { ValueType::all, ValueType::blueSubsample2x2, ValueType::redSubsample2x2 };
14101 : m_opt{ verifyValue(value) }
14128 return m_opt == other.m_opt;
14134 return m_opt != other.m_opt;
14140 return stream << value.
toString();
14144 void setFromString(
const std::string &value);
14146 constexpr ValueType
static verifyValue(
const ValueType &value)
14148 return value == ValueType::all || value == ValueType::blueSubsample2x2
14149 || value == ValueType::redSubsample2x2
14151 :
throw std::invalid_argument{
14152 "Invalid value: Pixel{ "
14153 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14157 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
14159 friend struct DataModel::Detail::Befriend<
Pixel>;
14162 using Descendants = std::tuple<Settings::Sampling::Color, Settings::Sampling::Pixel>;
14182 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14183 typename std::enable_if<
14184 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
14188 template<typename... Args>
14192 using namespace Zivid::Detail::TypeTraits;
14195 AllArgsDecayedAreUnique<Args...>::value,
14196 "Found duplicate types among the arguments passed to Sampling(...). "
14197 "Types should be listed at most once.");
14199 set(std::forward<Args>(args)...);
14214 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
14216 template<typename... Args>
14220 using namespace Zivid::Detail::TypeTraits;
14222 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14224 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
14227 AllArgsDecayedAreUnique<Args...>::value,
14228 "Found duplicate types among the arguments passed to set(...). "
14229 "Types should be listed at most once.");
14231 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
14247 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
14249 template<typename... Args>
14253 using namespace Zivid::Detail::TypeTraits;
14255 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14257 AllArgsAreDescendantNodes::value,
14258 "All arguments passed to copyWith(...) must be descendant nodes.");
14261 AllArgsDecayedAreUnique<Args...>::value,
14262 "Found duplicate types among the arguments passed to copyWith(...). "
14263 "Types should be listed at most once.");
14265 auto copy{ *
this };
14266 copy.
set(std::forward<Args>(args)...);
14310 typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
14318 typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
14324 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
14330 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
14337 template<
typename F>
14345 template<
typename F>
14364 return stream << value.
toString();
14368 void setFromString(
const std::string &value);
14370 void setFromString(
const std::string &fullPath,
const std::string &value);
14372 std::string getString(
const std::string &fullPath)
const;
14377 friend struct DataModel::Detail::Befriend<
Sampling>;
14533 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14534 typename std::enable_if<
14535 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
14538 template<typename... Args>
14542 using namespace Zivid::Detail::TypeTraits;
14545 AllArgsDecayedAreUnique<Args...>::value,
14546 "Found duplicate types among the arguments passed to Settings(...). "
14547 "Types should be listed at most once.");
14549 set(std::forward<Args>(args)...);
14628 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
14630 template<typename... Args>
14634 using namespace Zivid::Detail::TypeTraits;
14636 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14638 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
14641 AllArgsDecayedAreUnique<Args...>::value,
14642 "Found duplicate types among the arguments passed to set(...). "
14643 "Types should be listed at most once.");
14645 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
14725 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
14727 template<typename... Args>
14731 using namespace Zivid::Detail::TypeTraits;
14733 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14735 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
14738 AllArgsDecayedAreUnique<Args...>::value,
14739 "Found duplicate types among the arguments passed to copyWith(...). "
14740 "Types should be listed at most once.");
14742 auto copy{ *
this };
14743 copy.
set(std::forward<Args>(args)...);
14750 return m_acquisitions;
14756 return m_acquisitions;
14762 m_acquisitions = value;
14769 return m_diagnostics;
14775 return m_diagnostics;
14781 m_diagnostics = value;
14788 m_diagnostics.
set(value);
14795 return m_experimental;
14801 return m_experimental;
14807 m_experimental = value;
14814 m_experimental.
set(value);
14821 return m_processing;
14827 return m_processing;
14833 m_processing = value;
14840 m_processing.
set(value);
14847 m_processing.
set(value);
14854 m_processing.
set(value);
14861 m_processing.
set(value);
14868 m_processing.
set(value);
14875 m_processing.
set(value);
14882 m_processing.
set(value);
14889 m_processing.
set(value);
14896 m_processing.
set(value);
14903 m_processing.
set(value);
14910 m_processing.
set(value);
14917 m_processing.
set(value);
14924 m_processing.
set(value);
14931 m_processing.
set(value);
14938 m_processing.
set(value);
14945 m_processing.
set(value);
14952 m_processing.
set(value);
14959 m_processing.
set(value);
14966 m_processing.
set(value);
14973 m_processing.
set(value);
14980 m_processing.
set(value);
14987 m_processing.
set(value);
14994 m_processing.
set(value);
15001 m_processing.
set(value);
15008 m_processing.
set(value);
15015 m_processing.
set(value);
15022 m_processing.
set(value);
15029 m_processing.
set(value);
15036 m_processing.
set(value);
15043 m_processing.
set(value);
15050 m_processing.
set(value);
15057 m_processing.
set(value);
15064 m_processing.
set(value);
15071 m_processing.
set(value);
15078 m_processing.
set(value);
15085 m_processing.
set(value);
15092 m_processing.
set(value);
15099 m_processing.
set(value);
15106 m_processing.
set(value);
15113 m_processing.
set(value);
15120 m_processing.
set(value);
15127 m_processing.
set(value);
15134 m_processing.
set(value);
15141 m_processing.
set(value);
15148 m_processing.
set(value);
15155 m_processing.
set(value);
15162 m_processing.
set(value);
15169 return m_regionOfInterest;
15175 return m_regionOfInterest;
15181 m_regionOfInterest = value;
15188 m_regionOfInterest.
set(value);
15195 m_regionOfInterest.
set(value);
15202 m_regionOfInterest.
set(value);
15209 m_regionOfInterest.
set(value);
15216 m_regionOfInterest.
set(value);
15223 m_regionOfInterest.
set(value);
15230 m_regionOfInterest.
set(value);
15237 m_regionOfInterest.
set(value);
15244 m_regionOfInterest.
set(value);
15263 m_sampling = value;
15270 m_sampling.
set(value);
15277 m_sampling.
set(value);
15281 template<typename T, typename std::enable_if<std::is_same<T, Settings::Acquisitions>::value,
int>::type = 0>
15284 return m_acquisitions;
15287 template<typename T, typename std::enable_if<std::is_same<T, Settings::Diagnostics>::value,
int>::type = 0>
15290 return m_diagnostics;
15295 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
15301 template<typename T, typename std::enable_if<std::is_same<T, Settings::Experimental>::value,
int>::type = 0>
15304 return m_experimental;
15309 typename std::enable_if<std::is_same<T, Settings::Experimental::Engine>::value,
int>::type = 0>
15315 template<typename T, typename std::enable_if<std::is_same<T, Settings::Processing>::value,
int>::type = 0>
15318 return m_processing;
15323 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
15331 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
15339 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type = 0>
15347 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::type = 0>
15355 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
15363 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type = 0>
15371 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
15380 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
15388 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
15396 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
15404 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
15413 typename std::enable_if<
15414 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
15423 typename std::enable_if<
15424 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
15433 typename std::enable_if<
15434 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
15443 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::type = 0>
15451 typename std::enable_if<
15452 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
15461 typename std::enable_if<
15462 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
15471 typename std::enable_if<
15472 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled>::
15477 return m_processing
15483 typename std::enable_if<
15484 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength>::
15489 return m_processing
15495 typename std::enable_if<
15496 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
15505 typename std::enable_if<
15506 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
15511 return m_processing
15517 typename std::enable_if<
15518 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold>::
15523 return m_processing
15529 typename std::enable_if<
15530 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling>::value,
15539 typename std::enable_if<
15540 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::value,
15549 typename std::enable_if<
15550 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::value,
15559 typename std::enable_if<
15560 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::value,
15569 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
15577 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type =
15586 typename std::enable_if<
15587 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
15596 typename std::enable_if<
15597 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
15606 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::type =
15616 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
int>::type = 0>
15624 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::
15633 typename std::enable_if<
15634 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
15643 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
15651 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
15660 typename std::enable_if<
15661 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
15670 typename std::enable_if<
15671 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
15680 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type = 0>
15688 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
int>::
15697 typename std::enable_if<
15698 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
15707 typename std::enable_if<
15708 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
15717 typename std::enable_if<
15718 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::value,
15727 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type = 0>
15735 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
int>::
15744 typename std::enable_if<
15745 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
15754 typename std::enable_if<
15755 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
15762 template<typename T, typename std::enable_if<std::is_same<T, Settings::RegionOfInterest>::value,
int>::type = 0>
15765 return m_regionOfInterest;
15770 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
15778 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type = 0>
15786 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type = 0>
15794 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
15802 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
15810 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
15818 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
15826 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type = 0>
15834 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type = 0>
15840 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling>::value,
int>::type = 0>
15846 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
15852 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
15858 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
15861 return m_acquisitions;
15864 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
15867 return m_diagnostics;
15870 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
15873 return m_experimental;
15876 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
15879 return m_processing;
15882 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
15885 return m_regionOfInterest;
15888 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
15895 template<
typename F>
15902 f(m_regionOfInterest);
15907 template<
typename F>
15914 f(m_regionOfInterest);
15930 return stream << value.
toString();
15934 void save(
const std::string &fileName)
const;
15937 void load(
const std::string &fileName);
15940 void setFromString(
const std::string &value);
15942 void setFromString(
const std::string &fullPath,
const std::string &value);
15944 std::string getString(
const std::string &fullPath)
const;
15953 friend struct DataModel::Detail::Befriend<
Settings>;
15967 struct Settings::Version<21>
15969 using Type = Settings;
15976# pragma warning(pop)
15980# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
15985 struct tuple_size<
Zivid::Settings::Diagnostics> : integral_constant<size_t, 1>
15989 struct tuple_element<i,
Zivid::Settings::Diagnostics>
15991 static_assert(i < tuple_size<Zivid::Settings::Diagnostics>::value,
"Index must be less than 1");
15994 =
decltype(declval<Zivid::Settings::Diagnostics>().get<i>());
15998 struct tuple_size<
Zivid::Settings::Experimental> : integral_constant<size_t, 1>
16002 struct tuple_element<i,
Zivid::Settings::Experimental>
16004 static_assert(i < tuple_size<Zivid::Settings::Experimental>::value,
"Index must be less than 1");
16007 =
decltype(declval<Zivid::Settings::Experimental>().get<i>());
16011 struct tuple_size<
Zivid::Settings::Processing> : integral_constant<size_t, 2>
16015 struct tuple_element<i,
Zivid::Settings::Processing>
16017 static_assert(i < tuple_size<Zivid::Settings::Processing>::value,
"Index must be less than 2");
16020 =
decltype(declval<Zivid::Settings::Processing>().get<i>());
16024 struct tuple_size<
Zivid::Settings::Processing::Color> : integral_constant<size_t, 3>
16028 struct tuple_element<i,
Zivid::Settings::Processing::Color>
16030 static_assert(i < tuple_size<Zivid::Settings::Processing::Color>::value,
"Index must be less than 3");
16033 =
decltype(declval<Zivid::Settings::Processing::Color>().get<i>());
16037 struct tuple_size<
Zivid::Settings::Processing::Color::Balance> : integral_constant<size_t, 3>
16041 struct tuple_element<i,
Zivid::Settings::Processing::Color::Balance>
16043 static_assert(i < tuple_size<Zivid::Settings::Processing::Color::Balance>::value,
"Index must be less than 3");
16046 =
decltype(declval<Zivid::Settings::Processing::Color::Balance>().get<i>());
16050 struct tuple_size<
Zivid::Settings::Processing::Color::Experimental> : integral_constant<size_t, 1>
16054 struct tuple_element<i,
Zivid::Settings::Processing::Color::Experimental>
16057 i < tuple_size<Zivid::Settings::Processing::Color::Experimental>::value,
16058 "Index must be less than 1");
16061 =
decltype(declval<Zivid::Settings::Processing::Color::Experimental>().get<i>());
16065 struct tuple_size<
Zivid::Settings::Processing::Filters> : integral_constant<size_t, 6>
16069 struct tuple_element<i,
Zivid::Settings::Processing::Filters>
16071 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters>::value,
"Index must be less than 6");
16074 =
decltype(declval<Zivid::Settings::Processing::Filters>().get<i>());
16078 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster> : integral_constant<size_t, 1>
16082 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster>
16085 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster>::value,
16086 "Index must be less than 1");
16089 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster>().get<i>());
16093 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster::Removal> : integral_constant<size_t, 3>
16097 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster::Removal>
16100 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster::Removal>::value,
16101 "Index must be less than 3");
16104 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster::Removal>().get<i>());
16108 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental> : integral_constant<size_t, 2>
16112 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental>
16115 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental>::value,
16116 "Index must be less than 2");
16119 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental>().get<i>());
16123 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16124 : integral_constant<size_t, 2>
16128 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16131 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
16132 "Index must be less than 2");
16135 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>().get<i>());
16139 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16140 : integral_constant<size_t, 2>
16144 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16147 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
16148 "Index must be less than 2");
16151 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>()
16156 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16157 : integral_constant<size_t, 2>
16161 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16164 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
16165 "Index must be less than 2");
16168 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>()
16173 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::HoleFilling> : integral_constant<size_t, 3>
16177 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::HoleFilling>
16180 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::HoleFilling>::value,
16181 "Index must be less than 3");
16184 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::HoleFilling>().get<i>());
16188 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise> : integral_constant<size_t, 3>
16192 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise>
16194 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Noise>::value,
"Index must be less than 3");
16197 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise>().get<i>());
16201 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Removal> : integral_constant<size_t, 2>
16205 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Removal>
16208 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Removal>::value,
16209 "Index must be less than 2");
16212 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Removal>().get<i>());
16216 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Repair> : integral_constant<size_t, 1>
16220 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Repair>
16223 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Repair>::value,
16224 "Index must be less than 1");
16227 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Repair>().get<i>());
16231 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Suppression> : integral_constant<size_t, 1>
16235 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Suppression>
16238 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Suppression>::value,
16239 "Index must be less than 1");
16242 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Suppression>().get<i>());
16246 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier> : integral_constant<size_t, 1>
16250 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier>
16253 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier>::value,
16254 "Index must be less than 1");
16257 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier>().get<i>());
16261 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier::Removal> : integral_constant<size_t, 2>
16265 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier::Removal>
16268 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier::Removal>::value,
16269 "Index must be less than 2");
16272 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier::Removal>().get<i>());
16276 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection> : integral_constant<size_t, 1>
16280 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection>
16283 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection>::value,
16284 "Index must be less than 1");
16287 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection>().get<i>());
16291 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal> : integral_constant<size_t, 2>
16295 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal>
16298 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal>::value,
16299 "Index must be less than 2");
16302 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal>().get<i>());
16306 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>
16307 : integral_constant<size_t, 1>
16311 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>
16314 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
16315 "Index must be less than 1");
16318 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>().get<i>());
16322 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing> : integral_constant<size_t, 1>
16326 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing>
16329 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing>::value,
16330 "Index must be less than 1");
16333 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing>().get<i>());
16337 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing::Gaussian> : integral_constant<size_t, 2>
16341 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing::Gaussian>
16344 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>::value,
16345 "Index must be less than 2");
16348 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>().get<i>());
16352 struct tuple_size<
Zivid::Settings::RegionOfInterest> : integral_constant<size_t, 2>
16356 struct tuple_element<i,
Zivid::Settings::RegionOfInterest>
16358 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest>::value,
"Index must be less than 2");
16361 =
decltype(declval<Zivid::Settings::RegionOfInterest>().get<i>());
16365 struct tuple_size<
Zivid::Settings::RegionOfInterest::Box> : integral_constant<size_t, 5>
16369 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Box>
16371 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Box>::value,
"Index must be less than 5");
16374 =
decltype(declval<Zivid::Settings::RegionOfInterest::Box>().get<i>());
16378 struct tuple_size<
Zivid::Settings::RegionOfInterest::Depth> : integral_constant<size_t, 2>
16382 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Depth>
16384 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Depth>::value,
"Index must be less than 2");
16387 =
decltype(declval<Zivid::Settings::RegionOfInterest::Depth>().get<i>());
16391 struct tuple_size<
Zivid::Settings::Sampling> : integral_constant<size_t, 2>
16395 struct tuple_element<i,
Zivid::Settings::Sampling>
16397 static_assert(i < tuple_size<Zivid::Settings::Sampling>::value,
"Index must be less than 2");
16400 =
decltype(declval<Zivid::Settings::Sampling>().get<i>());
16404 struct tuple_size<
Zivid::Settings> : integral_constant<size_t, 6>
16408 struct tuple_element<i,
Zivid::Settings>
16410 static_assert(i < tuple_size<Zivid::Settings>::value,
"Index must be less than 6");
16413 =
decltype(declval<Zivid::Settings>().get<i>());
16422#if defined(__has_include) && !defined(NO_DOC)
16423# if __has_include("Zivid/SettingsInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
16424# include "Zivid/SettingsInternal.h"
#define ZIVID_CORE_EXPORT
Definition: CoreExport.h:101
Class describing a range of values for a given type T
Definition: Range.h:118
Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to the effe...
Definition: Settings.h:178
bool operator<(const Aperture &other) const
Comparison operator
Definition: Settings.h:241
friend std::ostream & operator<<(std::ostream &stream, const Aperture &value)
Operator to serialize the value to a stream
Definition: Settings.h:265
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:253
bool operator>(const Aperture &other) const
Comparison operator
Definition: Settings.h:247
bool operator==(const Aperture &other) const
Comparison operator
Definition: Settings.h:229
bool operator>=(const Aperture &other) const
Comparison operator
Definition: Settings.h:259
bool operator!=(const Aperture &other) const
Comparison operator
Definition: Settings.h:235
Aperture()=default
Default constructor
constexpr Aperture(double value)
Constructor
Definition: Settings.h:209
double ValueType
The type of the underlying value
Definition: Settings.h:197
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Aperture
Definition: Settings.h:200
bool hasValue() const
Check if the value is set
Brightness controls the light output from the projector.
Definition: Settings.h:301
bool operator<=(const Brightness &other) const
Comparison operator
Definition: Settings.h:384
bool operator!=(const Brightness &other) const
Comparison operator
Definition: Settings.h:366
bool operator>=(const Brightness &other) const
Comparison operator
Definition: Settings.h:390
bool operator<(const Brightness &other) const
Comparison operator
Definition: Settings.h:372
bool operator>(const Brightness &other) const
Comparison operator
Definition: Settings.h:378
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Brightness
Definition: Settings.h:331
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:396
constexpr Brightness(double value)
Constructor
Definition: Settings.h:340
bool hasValue() const
Check if the value is set
Brightness()=default
Default constructor
double ValueType
The type of the underlying value
Definition: Settings.h:328
bool operator==(const Brightness &other) const
Comparison operator
Definition: Settings.h:360
Exposure time for each single image in the measurement. Affects frame rate.
Definition: Settings.h:422
bool operator>=(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:501
bool operator<(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:483
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:489
std::chrono::microseconds ValueType
The type of the underlying value
Definition: Settings.h:439
bool operator==(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:471
bool operator!=(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:477
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:442
constexpr ExposureTime(std::chrono::microseconds value)
Constructor
Definition: Settings.h:451
friend std::ostream & operator<<(std::ostream &stream, const ExposureTime &value)
Operator to serialize the value to a stream
Definition: Settings.h:507
bool operator<=(const ExposureTime &other) const
Comparison operator
Definition: Settings.h:495
Analog gain in the camera
Definition: Settings.h:534
bool operator==(const Gain &other) const
Comparison operator
Definition: Settings.h:581
friend std::ostream & operator<<(std::ostream &stream, const Gain &value)
Operator to serialize the value to a stream
Definition: Settings.h:617
constexpr Gain(double value)
Constructor
Definition: Settings.h:561
bool operator>=(const Gain &other) const
Comparison operator
Definition: Settings.h:611
void reset()
Reset the node to unset state
bool operator<=(const Gain &other) const
Comparison operator
Definition: Settings.h:605
static constexpr Range< double > validRange()
The range of valid values for Gain
Definition: Settings.h:552
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:549
std::string toString() const
Get the value as string
bool operator!=(const Gain &other) const
Comparison operator
Definition: Settings.h:587
bool operator>(const Gain &other) const
Comparison operator
Definition: Settings.h:599
bool operator<(const Gain &other) const
Comparison operator
Definition: Settings.h:593
Settings for a single acquisition
Definition: Settings.h:158
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:891
Acquisition & set(const Aperture &value)
Set Aperture
Definition: Settings.h:770
const Aperture & aperture() const
Get Aperture
Definition: Settings.h:758
Gain & gain()
Get Gain
Definition: Settings.h:821
const Settings::Acquisition::Aperture & get() const
Definition: Settings.h:836
Brightness & brightness()
Get Brightness
Definition: Settings.h:783
friend std::ostream & operator<<(std::ostream &stream, const Acquisition &value)
Operator to send the value as string to a stream
Definition: Settings.h:919
std::tuple< Settings::Acquisition::Aperture, Settings::Acquisition::Brightness, Settings::Acquisition::ExposureTime, Settings::Acquisition::Gain > Descendants
Definition: Settings.h:643
bool operator==(const Acquisition &other) const
Equality operator
const Settings::Acquisition::ExposureTime & get() const
Definition: Settings.h:852
bool operator!=(const Acquisition &other) const
Inequality operator
const ExposureTime & exposureTime() const
Get ExposureTime
Definition: Settings.h:796
Acquisition & set(const Brightness &value)
Set Brightness
Definition: Settings.h:789
Acquisition & set(const ExposureTime &value)
Set ExposureTime
Definition: Settings.h:808
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:703
const Brightness & brightness() const
Get Brightness
Definition: Settings.h:777
const Settings::Acquisition::Gain & get() const
Definition: Settings.h:860
Acquisition & set(const Gain &value)
Set Gain
Definition: Settings.h:827
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:738
Aperture & aperture()
Get Aperture
Definition: Settings.h:764
const Settings::Acquisition::Brightness & get() const
Definition: Settings.h:844
Acquisition(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:673
ExposureTime & exposureTime()
Get ExposureTime
Definition: Settings.h:802
const Gain & gain() const
Get Gain
Definition: Settings.h:815
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:901
List of Acquisition objects
Definition: Settings.h:943
bool operator!=(const Acquisitions &other) const
Comparison operator
Definition: Settings.h:1081
std::vector< Settings::Acquisition >::const_iterator ConstIterator
Constant iterator type for Acquisitions
Definition: Settings.h:1060
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:1042
std::vector< Settings::Acquisition >::iterator Iterator
Iterator type for Acquisitions
Definition: Settings.h:1051
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:975
friend std::ostream & operator<<(std::ostream &stream, const Acquisitions &value)
Operator to serialize the value to a stream
Definition: Settings.h:1087
void forEach(const F &f)
Run the given function on each element in the list
Definition: Settings.h:1032
Acquisitions(std::vector< Settings::Acquisition > value)
Constructor
Definition: Settings.h:970
std::vector< Settings::Acquisition > ValueType
The type of the underlying value
Definition: Settings.h:958
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Acquisitions
Definition: Settings.h:961
const Settings::Acquisition & operator[](std::size_t pos) const
Returns a const reference to the element at position pos in the list
Settings::Acquisition & at(std::size_t pos)
Returns a reference to the element at position pos in the list
std::size_t size() const noexcept
Get the size of the list
Settings::Acquisition & operator[](std::size_t pos)
Returns a reference to the element at position pos in the list
Enable diagnostics
Definition: Settings.h:1136
static const Enabled no
Off/disabled.
Definition: Settings.h:1153
bool hasValue() const
Check if the value is set
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:1156
void reset()
Reset the node to unset state
Enabled()=default
Default constructor
bool ValueType
The type of the underlying value
Definition: Settings.h:1151
static const Enabled yes
On/enabled.
Definition: Settings.h:1152
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:1185
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:1197
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:1165
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:1191
std::string toString() const
Get the value as string
When Diagnostics is enabled, extra diagnostic information is recorded during capture....
Definition: Settings.h:1110
friend std::ostream & operator<<(std::ostream &stream, const Diagnostics &value)
Operator to send the value as string to a stream
Definition: Settings.h:1372
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:1350
std::tuple< Settings::Diagnostics::Enabled > Descendants
Definition: Settings.h:1210
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:1296
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1357
Diagnostics()
Default constructor
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:1322
bool operator==(const Diagnostics &other) const
Equality operator
Diagnostics(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:1237
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:1264
const Settings::Diagnostics::Enabled & get() const
Definition: Settings.h:1337
bool operator!=(const Diagnostics &other) const
Inequality operator
Diagnostics & set(const Enabled &value)
Set Enabled
Definition: Settings.h:1328
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:1316
Set the Zivid Vision Engine to use.
Definition: Settings.h:1432
ValueType value() const
Get the value
static const Engine phase
phase
Definition: Settings.h:1472
bool hasValue() const
Check if the value is set
static const Engine omni
omni
Definition: Settings.h:1474
ValueType
The type of the underlying value
Definition: Settings.h:1467
friend std::ostream & operator<<(std::ostream &stream, const Engine &value)
Operator to serialize the value to a stream
Definition: Settings.h:1524
static std::set< ValueType > validValues()
All valid values of Engine
Definition: Settings.h:1477
std::string toString() const
Get the value as string
bool operator==(const Engine &other) const
Comparison operator
Definition: Settings.h:1512
Engine()=default
Default constructor
bool operator!=(const Engine &other) const
Comparison operator
Definition: Settings.h:1518
constexpr Engine(ValueType value)
Constructor
Definition: Settings.h:1486
friend std::ostream & operator<<(std::ostream &stream, const Engine::ValueType &value)
Operator to serialize ValueType to a stream
Definition: Settings.h:1506
static const Engine stripe
stripe
Definition: Settings.h:1473
void reset()
Reset the node to unset state
Experimental features. These settings may be changed, renamed, moved or deleted in the future.
Definition: Settings.h:1393
Engine & engine()
Get Engine
Definition: Settings.h:1659
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:1601
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:1633
std::string toString() const
Get the value as string
bool operator!=(const Experimental &other) const
Inequality operator
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream
Definition: Settings.h:1709
const Settings::Experimental::Engine & get() const
Definition: Settings.h:1674
std::tuple< Settings::Experimental::Engine > Descendants
Definition: Settings.h:1547
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:1687
bool operator==(const Experimental &other) const
Equality operator
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:1574
Experimental()
Default constructor
Experimental & set(const Engine &value)
Set Engine
Definition: Settings.h:1665
const Engine & engine() const
Get Engine
Definition: Settings.h:1653
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1694
Digital gain applied to blue channel
Definition: Settings.h:1786
friend std::ostream & operator<<(std::ostream &stream, const Blue &value)
Operator to serialize the value to a stream
Definition: Settings.h:1871
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:1835
bool operator>=(const Blue &other) const
Comparison operator
Definition: Settings.h:1865
std::string toString() const
Get the value as string
bool operator<(const Blue &other) const
Comparison operator
Definition: Settings.h:1847
constexpr Blue(double value)
Constructor
Definition: Settings.h:1815
Blue()=default
Default constructor
bool operator<=(const Blue &other) const
Comparison operator
Definition: Settings.h:1859
bool operator!=(const Blue &other) const
Comparison operator
Definition: Settings.h:1841
bool hasValue() const
Check if the value is set
double ValueType
The type of the underlying value
Definition: Settings.h:1803
bool operator>(const Blue &other) const
Comparison operator
Definition: Settings.h:1853
static constexpr Range< double > validRange()
The range of valid values for Blue
Definition: Settings.h:1806
Digital gain applied to green channel
Definition: Settings.h:1898
void reset()
Reset the node to unset state
bool operator>(const Green &other) const
Comparison operator
Definition: Settings.h:1965
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:1983
double ValueType
The type of the underlying value
Definition: Settings.h:1915
bool operator>=(const Green &other) const
Comparison operator
Definition: Settings.h:1977
constexpr Green(double value)
Constructor
Definition: Settings.h:1927
bool operator==(const Green &other) const
Comparison operator
Definition: Settings.h:1947
bool operator!=(const Green &other) const
Comparison operator
Definition: Settings.h:1953
Green()=default
Default constructor
std::string toString() const
Get the value as string
bool operator<(const Green &other) const
Comparison operator
Definition: Settings.h:1959
static constexpr Range< double > validRange()
The range of valid values for Green
Definition: Settings.h:1918
bool operator<=(const Green &other) const
Comparison operator
Definition: Settings.h:1971
Digital gain applied to red channel
Definition: Settings.h:2010
bool operator!=(const Red &other) const
Comparison operator
Definition: Settings.h:2065
constexpr Red(double value)
Constructor
Definition: Settings.h:2039
friend std::ostream & operator<<(std::ostream &stream, const Red &value)
Operator to serialize the value to a stream
Definition: Settings.h:2095
bool operator>=(const Red &other) const
Comparison operator
Definition: Settings.h:2089
double ValueType
The type of the underlying value
Definition: Settings.h:2027
static constexpr Range< double > validRange()
The range of valid values for Red
Definition: Settings.h:2030
double value() const
Get the value
bool operator==(const Red &other) const
Comparison operator
Definition: Settings.h:2059
Red()=default
Default constructor
bool operator<(const Red &other) const
Comparison operator
Definition: Settings.h:2071
void reset()
Reset the node to unset state
bool operator>(const Red &other) const
Comparison operator
Definition: Settings.h:2077
bool hasValue() const
Check if the value is set
bool operator<=(const Red &other) const
Comparison operator
Definition: Settings.h:2083
std::string toString() const
Get the value as string
Color balance settings
Definition: Settings.h:1768
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:2179
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:2341
bool operator!=(const Balance &other) const
Inequality operator
Balance & set(const Red &value)
Set Red
Definition: Settings.h:2286
Green & green()
Get Green
Definition: Settings.h:2261
std::string toString() const
Get the value as string
Balance(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:2150
Red & red()
Get Red
Definition: Settings.h:2280
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:2215
Balance & set(const Blue &value)
Set Blue
Definition: Settings.h:2248
Blue & blue()
Get Blue
Definition: Settings.h:2242
const Red & red() const
Get Red
Definition: Settings.h:2274
std::tuple< Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red > Descendants
Definition: Settings.h:2121
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2350
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:2307
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:2316
Balance & set(const Green &value)
Set Green
Definition: Settings.h:2267
const Green & green() const
Get Green
Definition: Settings.h:2255
friend std::ostream & operator<<(std::ostream &stream, const Balance &value)
Operator to send the value as string to a stream
Definition: Settings.h:2367
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:2297
const Blue & blue() const
Get Blue
Definition: Settings.h:2236
Balance()
Default constructor
This setting controls how the color image is computed.
Definition: Settings.h:2431
static const Mode toneMapping
toneMapping
Definition: Settings.h:2477
ValueType value() const
Get the value
std::string toString() const
Get the value as string
static const Mode automatic
automatic
Definition: Settings.h:2475
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream
Definition: Settings.h:2527
void reset()
Reset the node to unset state
static const Mode useFirstAcquisition
useFirstAcquisition
Definition: Settings.h:2476
bool operator!=(const Mode &other) const
Comparison operator
Definition: Settings.h:2521
bool operator==(const Mode &other) const
Comparison operator
Definition: Settings.h:2515
ValueType
The type of the underlying value
Definition: Settings.h:2470
bool hasValue() const
Check if the value is set
constexpr Mode(ValueType value)
Constructor
Definition: Settings.h:2489
static std::set< ValueType > validValues()
All valid values of Mode
Definition: Settings.h:2480
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:2509
Experimental color settings. These may be renamed, moved or deleted in the future.
Definition: Settings.h:2390
std::tuple< Settings::Processing::Color::Experimental::Mode > Descendants
Definition: Settings.h:2552
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:2719
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2704
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:2579
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:2606
std::string toString() const
Get the value as string
Experimental & set(const Mode &value)
Set Mode
Definition: Settings.h:2673
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:2697
bool operator==(const Experimental &other) const
Equality operator
Experimental()
Default constructor
Mode & mode()
Get Mode
Definition: Settings.h:2667
const Mode & mode() const
Get Mode
Definition: Settings.h:2661
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:2684
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:2640
Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma greater t...
Definition: Settings.h:2742
friend std::ostream & operator<<(std::ostream &stream, const Gamma &value)
Operator to serialize the value to a stream
Definition: Settings.h:2829
double value() const
Get the value
bool operator>(const Gamma &other) const
Comparison operator
Definition: Settings.h:2811
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Gamma
Definition: Settings.h:2764
Gamma()=default
Default constructor
double ValueType
The type of the underlying value
Definition: Settings.h:2761
bool hasValue() const
Check if the value is set
bool operator>=(const Gamma &other) const
Comparison operator
Definition: Settings.h:2823
constexpr Gamma(double value)
Constructor
Definition: Settings.h:2773
bool operator!=(const Gamma &other) const
Comparison operator
Definition: Settings.h:2799
bool operator<(const Gamma &other) const
Comparison operator
Definition: Settings.h:2805
std::string toString() const
Get the value as string
bool operator==(const Gamma &other) const
Comparison operator
Definition: Settings.h:2793
bool operator<=(const Gamma &other) const
Comparison operator
Definition: Settings.h:2817
Color settings
Definition: Settings.h:1750
Color & set(const Gamma &value)
Set Gamma
Definition: Settings.h:3062
const Settings::Processing::Color::Gamma & get() const
Definition: Settings.h:3126
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:3099
bool operator==(const Color &other) const
Equality operator
Color & set(const Experimental::Mode &value)
Set Experimental::Mode
Definition: Settings.h:3043
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:3090
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:2924
Color & set(const Experimental &value)
Set Experimental
Definition: Settings.h:3036
Color & set(const Balance &value)
Set Balance
Definition: Settings.h:2996
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to send the value as string to a stream
Definition: Settings.h:3177
const Balance & balance() const
Get Balance
Definition: Settings.h:2984
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:3024
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:3160
const Settings::Processing::Color::Experimental & get() const
Definition: Settings.h:3108
Color & set(const Balance::Green &value)
Set Balance::Green
Definition: Settings.h:3010
Experimental & experimental()
Get Experimental
Definition: Settings.h:3030
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:2858
Color & set(const Balance::Blue &value)
Set Balance::Blue
Definition: Settings.h:3003
Gamma & gamma()
Get Gamma
Definition: Settings.h:3056
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:2963
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:3118
Color & set(const Balance::Red &value)
Set Balance::Red
Definition: Settings.h:3017
const Gamma & gamma() const
Get Gamma
Definition: Settings.h:3050
Color(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:2891
const Settings::Processing::Color::Balance & get() const
Definition: Settings.h:3072
Balance & balance()
Get Balance
Definition: Settings.h:2990
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:3151
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:3081
Enabled
Definition: Settings.h:3258
bool hasValue() const
Check if the value is set
bool ValueType
The type of the underlying value
Definition: Settings.h:3273
static const Enabled no
Off/disabled.
Definition: Settings.h:3275
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:3287
void reset()
Reset the node to unset state
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:3278
Enabled()=default
Default constructor
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:3313
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:3319
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:3307
std::string toString() const
Get the value as string
bool value() const
Get the value
static const Enabled yes
On/enabled.
Definition: Settings.h:3274
Maximum normalized distance between neighboring points that are still classified as belonging to the ...
Definition: Settings.h:3339
constexpr MaxNeighborDistance(double value)
Constructor
Definition: Settings.h:3373
bool operator!=(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3399
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:3361
bool hasValue() const
Check if the value is set
MaxNeighborDistance()=default
Default constructor
bool operator>=(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3423
bool operator<(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3405
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for MaxNeighborDistance
Definition: Settings.h:3364
bool operator<=(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3417
friend std::ostream & operator<<(std::ostream &stream, const MaxNeighborDistance &value)
Operator to serialize the value to a stream
Definition: Settings.h:3429
bool operator==(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3393
bool operator>(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3411
Clusters with area below this threshold are removed by the filter. The area is given in mm^2.
Definition: Settings.h:3458
bool operator>=(const MinArea &other) const
Comparison operator
Definition: Settings.h:3539
double ValueType
The type of the underlying value
Definition: Settings.h:3477
friend std::ostream & operator<<(std::ostream &stream, const MinArea &value)
Operator to serialize the value to a stream
Definition: Settings.h:3545
bool operator<(const MinArea &other) const
Comparison operator
Definition: Settings.h:3521
bool operator!=(const MinArea &other) const
Comparison operator
Definition: Settings.h:3515
void reset()
Reset the node to unset state
bool operator<=(const MinArea &other) const
Comparison operator
Definition: Settings.h:3533
constexpr MinArea(double value)
Constructor
Definition: Settings.h:3489
std::string toString() const
Get the value as string
bool operator>(const MinArea &other) const
Comparison operator
Definition: Settings.h:3527
MinArea()=default
Default constructor
static constexpr Range< double > validRange()
The range of valid values for MinArea
Definition: Settings.h:3480
double value() const
Get the value
bool operator==(const MinArea &other) const
Comparison operator
Definition: Settings.h:3509
bool hasValue() const
Check if the value is set
Removal
Definition: Settings.h:3240
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:3600
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:3819
const MaxNeighborDistance & maxNeighborDistance() const
Get MaxNeighborDistance
Definition: Settings.h:3705
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:3686
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:3758
std::string toString() const
Get the value as string
MinArea & minArea()
Get MinArea
Definition: Settings.h:3730
const MinArea & minArea() const
Get MinArea
Definition: Settings.h:3724
Removal()
Default constructor
bool operator!=(const Removal &other) const
Inequality 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:3665
Removal & set(const MaxNeighborDistance &value)
Set MaxNeighborDistance
Definition: Settings.h:3717
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:3768
Removal & set(const MinArea &value)
Set MinArea
Definition: Settings.h:3736
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:3793
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:3747
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:3692
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:3629
bool operator==(const Removal &other) const
Equality operator
MaxNeighborDistance & maxNeighborDistance()
Get MaxNeighborDistance
Definition: Settings.h:3711
std::tuple< Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea > Descendants
Definition: Settings.h:3571
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:3802
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:3698
Removes floating points and isolated clusters from the point cloud.
Definition: Settings.h:3219
const Removal & removal() const
Get Removal
Definition: Settings.h:3960
Cluster(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:3872
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:4035
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition: Settings.h:4004
Cluster & set(const Removal::MaxNeighborDistance &value)
Set Removal::MaxNeighborDistance
Definition: Settings.h:3986
bool operator!=(const Cluster &other) const
Inequality operator
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:4025
bool operator==(const Cluster &other) const
Equality operator
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:3939
Removal & removal()
Get Removal
Definition: Settings.h:3966
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:4055
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:4048
Cluster & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:3979
Cluster & set(const Removal &value)
Set Removal
Definition: Settings.h:3972
Cluster & set(const Removal::MinArea &value)
Set Removal::MinArea
Definition: Settings.h:3993
Cluster()
Default constructor
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:4014
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:3842
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:3902
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:4070
Enabled
Definition: Settings.h:4159
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:4177
bool ValueType
The type of the underlying value
Definition: Settings.h:4176
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:4181
static const Enabled no
Off/disabled.
Definition: Settings.h:4178
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:4190
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:4222
bool hasValue() const
Check if the value is set
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:4210
bool value() const
Get the value
Enabled()=default
Default constructor
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:4216
Higher values gives more correction.
Definition: Settings.h:4239
double ValueType
The type of the underlying value
Definition: Settings.h:4258
bool operator>(const Strength &other) const
Comparison operator
Definition: Settings.h:4308
bool operator!=(const Strength &other) const
Comparison operator
Definition: Settings.h:4296
bool hasValue() const
Check if the value is set
constexpr Strength(double value)
Constructor
Definition: Settings.h:4270
static constexpr Range< double > validRange()
The range of valid values for Strength
Definition: Settings.h:4261
double value() const
Get the value
bool operator<=(const Strength &other) const
Comparison operator
Definition: Settings.h:4314
bool operator>=(const Strength &other) const
Comparison operator
Definition: Settings.h:4320
friend std::ostream & operator<<(std::ostream &stream, const Strength &value)
Operator to serialize the value to a stream
Definition: Settings.h:4326
Strength()=default
Default constructor
bool operator<(const Strength &other) const
Comparison operator
Definition: Settings.h:4302
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:4290
Correction
Definition: Settings.h:4139
bool operator==(const Correction &other) const
Equality operator
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:4469
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:4546
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:4463
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:4524
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength > Descendants
Definition: Settings.h:4351
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:4442
Strength & strength()
Get Strength
Definition: Settings.h:4488
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:4509
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:4570
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:4407
Correction & set(const Enabled &value)
Set Enabled
Definition: Settings.h:4475
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:4554
std::string toString() const
Get the value as string
Correction & set(const Strength &value)
Set Strength
Definition: Settings.h:4494
const Strength & strength() const
Get Strength
Definition: Settings.h:4482
Correction(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:4379
Enabled
Definition: Settings.h:4612
std::string toString() const
Get the value as string
static const Enabled yes
On/enabled.
Definition: Settings.h:4630
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:4643
Enabled()=default
Default constructor
void reset()
Reset the node to unset state
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:4669
bool ValueType
The type of the underlying value
Definition: Settings.h:4629
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:4634
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:4675
bool hasValue() const
Check if the value is set
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:4663
bool value() const
Get the value
static const Enabled no
Off/disabled.
Definition: Settings.h:4631
Higher values remove more points.
Definition: Settings.h:4692
void reset()
Reset the node to unset state
bool operator<=(const Threshold &other) const
Comparison operator
Definition: Settings.h:4767
constexpr Threshold(double value)
Constructor
Definition: Settings.h:4723
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:4749
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:4755
static constexpr Range< double > validRange()
The range of valid values for Threshold
Definition: Settings.h:4714
Threshold()=default
Default constructor
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:4743
bool operator>=(const Threshold &other) const
Comparison operator
Definition: Settings.h:4773
std::string toString() const
Get the value as string
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:4761
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:4779
double value() const
Get the value
double ValueType
The type of the underlying value
Definition: Settings.h:4711
Removal
Definition: Settings.h:4592
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:4997
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:4860
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:5021
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:4935
Removal & set(const Threshold &value)
Set Threshold
Definition: Settings.h:4947
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:4832
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:4895
Threshold & threshold()
Get Threshold
Definition: Settings.h:4941
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:4928
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:4962
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold > Descendants
Definition: Settings.h:4804
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:4922
Removal()
Default constructor
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:4916
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:4976
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5005
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:4115
ContrastDistortion & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:5221
ContrastDistortion & set(const Correction::Enabled &value)
Set Correction::Enabled
Definition: Settings.h:5188
ContrastDistortion & set(const Correction &value)
Set Correction
Definition: Settings.h:5181
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:5332
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:5356
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:5148
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:5045
ContrastDistortion & set(const Correction::Strength &value)
Set Correction::Strength
Definition: Settings.h:5195
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:5109
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5340
ContrastDistortion & set(const Removal &value)
Set Removal
Definition: Settings.h:5214
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:5311
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:5283
const Removal & removal() const
Get Removal
Definition: Settings.h:5202
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:5255
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:5241
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:5270
std::string toString() const
Get the value as string
Removal & removal()
Get Removal
Definition: Settings.h:5208
bool operator==(const ContrastDistortion &other) const
Equality operator
ContrastDistortion & set(const Removal::Threshold &value)
Set Removal::Threshold
Definition: Settings.h:5228
const Correction & correction() const
Get Correction
Definition: Settings.h:5169
ContrastDistortion(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:5077
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:5296
Correction & correction()
Get Correction
Definition: Settings.h:5175
Enabled
Definition: Settings.h:5400
std::string toString() const
Get the value as string
static const Enabled no
Off/disabled.
Definition: Settings.h:5417
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:5449
void reset()
Reset the node to unset state
Enabled()=default
Default constructor
static const Enabled yes
On/enabled.
Definition: Settings.h:5416
bool ValueType
The type of the underlying value
Definition: Settings.h:5415
bool hasValue() const
Check if the value is set
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:5420
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:5455
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:5461
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:5429
bool value() const
Get the value
Relative diameter of holes to fill. Increasing this will fill more points, but require more computati...
Definition: Settings.h:5481
bool operator>=(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5563
bool hasValue() const
Check if the value is set
HoleSize()=default
Default constructor
bool operator<=(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5557
double ValueType
The type of the underlying value
Definition: Settings.h:5501
friend std::ostream & operator<<(std::ostream &stream, const HoleSize &value)
Operator to serialize the value to a stream
Definition: Settings.h:5569
void reset()
Reset the node to unset state
bool operator!=(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5539
bool operator>(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5551
std::string toString() const
Get the value as string
constexpr HoleSize(double value)
Constructor
Definition: Settings.h:5513
static constexpr Range< double > validRange()
The range of valid values for HoleSize
Definition: Settings.h:5504
bool operator==(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5533
bool operator<(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5545
double value() const
Get the value
Level of strictness when considering if a point should be filled. A higher level of strictness requir...
Definition: Settings.h:5600
bool hasValue() const
Check if the value is set
bool operator==(const Strictness &other) const
Comparison operator
Definition: Settings.h:5655
bool operator<(const Strictness &other) const
Comparison operator
Definition: Settings.h:5667
void reset()
Reset the node to unset state
bool operator>(const Strictness &other) const
Comparison operator
Definition: Settings.h:5673
bool operator<=(const Strictness &other) const
Comparison operator
Definition: Settings.h:5679
constexpr Strictness(int32_t value)
Constructor
Definition: Settings.h:5635
bool operator!=(const Strictness &other) const
Comparison operator
Definition: Settings.h:5661
static constexpr Range< int32_t > validRange()
The range of valid values for Strictness
Definition: Settings.h:5626
Strictness()=default
Default constructor
int32_t ValueType
The type of the underlying value
Definition: Settings.h:5623
int32_t value() const
Get the value
friend std::ostream & operator<<(std::ostream &stream, const Strictness &value)
Operator to serialize the value to a stream
Definition: Settings.h:5691
std::string toString() const
Get the value as string
bool operator>=(const Strictness &other) const
Comparison operator
Definition: Settings.h:5685
Fills in removed points by interpolating remaining surrounding points.
Definition: Settings.h:5379
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:5941
const Strictness & strictness() const
Get Strictness
Definition: Settings.h:5870
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5950
Strictness & strictness()
Get Strictness
Definition: Settings.h:5876
HoleFilling copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition: Settings.h:5811
HoleSize & holeSize()
Get HoleSize
Definition: Settings.h:5857
bool operator==(const HoleFilling &other) const
Equality operator
std::tuple< Settings::Processing::Filters::Experimental::HoleFilling::Enabled, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize, Settings::Processing::Filters::Experimental::HoleFilling::Strictness > Descendants
Definition: Settings.h:5717
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:5832
HoleFilling & set(const Strictness &value)
Set Strictness
Definition: Settings.h:5882
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:5916
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:5894
const HoleSize & holeSize() const
Get HoleSize
Definition: Settings.h:5851
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:5775
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:5905
HoleFilling & set(const Enabled &value)
Set Enabled
Definition: Settings.h:5844
bool operator!=(const HoleFilling &other) const
Inequality operator
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:5838
HoleFilling(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:5746
std::string toString() const
Get the value as string
friend std::ostream & operator<<(std::ostream &stream, const HoleFilling &value)
Operator to send the value as string to a stream
Definition: Settings.h:5967
HoleFilling()
Default constructor
HoleFilling & set(const HoleSize &value)
Set HoleSize
Definition: Settings.h:5863
Experimental filters. These may be renamed, moved or deleted in the future.
Definition: Settings.h:4091
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6394
ContrastDistortion & contrastDistortion()
Get ContrastDistortion
Definition: Settings.h:6142
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:6295
const HoleFilling & holeFilling() const
Get HoleFilling
Definition: Settings.h:6197
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:6115
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:6034
Experimental & set(const ContrastDistortion &value)
Set ContrastDistortion
Definition: Settings.h:6148
Experimental & set(const ContrastDistortion::Removal::Threshold &value)
Set ContrastDistortion::Removal::Threshold
Definition: Settings.h:6190
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:6071
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:6345
Experimental & set(const ContrastDistortion::Correction::Strength &value)
Set ContrastDistortion::Correction::Strength
Definition: Settings.h:6169
Experimental & set(const HoleFilling::HoleSize &value)
Set HoleFilling::HoleSize
Definition: Settings.h:6223
Experimental & set(const HoleFilling::Strictness &value)
Set HoleFilling::Strictness
Definition: Settings.h:6230
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream
Definition: Settings.h:6410
Experimental()
Default constructor
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, Settings::Processing::Filters::Experimental::HoleFilling, Settings::Processing::Filters::Experimental::HoleFilling::Enabled, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize, Settings::Processing::Filters::Experimental::HoleFilling::Strictness > Descendants
Definition: Settings.h:5997
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:6282
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:6386
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:6366
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:6355
Experimental & set(const ContrastDistortion::Removal &value)
Set ContrastDistortion::Removal
Definition: Settings.h:6176
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:6241
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:6253
bool operator!=(const Experimental &other) const
Inequality operator
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:6323
Experimental & set(const ContrastDistortion::Correction::Enabled &value)
Set ContrastDistortion::Correction::Enabled
Definition: Settings.h:6162
Experimental & set(const HoleFilling::Enabled &value)
Set HoleFilling::Enabled
Definition: Settings.h:6216
const ContrastDistortion & contrastDistortion() const
Get ContrastDistortion
Definition: Settings.h:6136
std::string toString() const
Get the value as string
bool operator==(const Experimental &other) const
Equality operator
Experimental & set(const HoleFilling &value)
Set HoleFilling
Definition: Settings.h:6209
const Settings::Processing::Filters::Experimental::HoleFilling & get() const
Definition: Settings.h:6335
Experimental & set(const ContrastDistortion::Correction &value)
Set ContrastDistortion::Correction
Definition: Settings.h:6155
Experimental & set(const ContrastDistortion::Removal::Enabled &value)
Set ContrastDistortion::Removal::Enabled
Definition: Settings.h:6183
HoleFilling & holeFilling()
Get HoleFilling
Definition: Settings.h:6203
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:6267
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:6309
Enable or disable the SNR filter
Definition: Settings.h:6472
static const Enabled yes
On/enabled.
Definition: Settings.h:6490
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:6529
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:6523
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:6494
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:6503
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:6535
Enabled()=default
Default constructor
static const Enabled no
Off/disabled.
Definition: Settings.h:6491
bool ValueType
The type of the underlying value
Definition: Settings.h:6489
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:6552
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:6631
constexpr Threshold(double value)
Constructor
Definition: Settings.h:6581
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:6601
bool operator<=(const Threshold &other) const
Comparison operator
Definition: Settings.h:6625
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Threshold
Definition: Settings.h:6572
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream
Definition: Settings.h:6637
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:6619
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:6613
std::string toString() const
Get the value as string
double ValueType
The type of the underlying value
Definition: Settings.h:6569
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:6607
Discard points with signal-to-noise ratio (SNR) values below a threshold
Definition: Settings.h:6452
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:6690
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:6869
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:6774
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:6793
std::tuple< Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold > Descendants
Definition: Settings.h:6662
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6853
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:6786
Removal & set(const Threshold &value)
Set Threshold
Definition: Settings.h:6805
bool operator==(const Removal &other) const
Equality operator
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:6718
bool operator!=(const Removal &other) const
Inequality operator
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:6826
Threshold & threshold()
Get Threshold
Definition: Settings.h:6799
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:6845
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:6753
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:6780
Removal()
Default constructor
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:6816
Enable or disable noise repair
Definition: Settings.h:6917
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:6939
bool ValueType
The type of the underlying value
Definition: Settings.h:6934
static const Enabled no
Off/disabled.
Definition: Settings.h:6936
void reset()
Reset the node to unset state
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:6974
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:6948
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:6935
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:6980
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:6968
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:6894
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:7138
Repair(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:7020
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:7145
bool operator==(const Repair &other) const
Equality operator
Repair & set(const Enabled &value)
Set Enabled
Definition: Settings.h:7114
std::tuple< Settings::Processing::Filters::Noise::Repair::Enabled > Descendants
Definition: Settings.h:6993
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:7108
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:7102
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:7081
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition: Settings.h:7125
friend std::ostream & operator<<(std::ostream &stream, const Repair &value)
Operator to send the value as string to a stream
Definition: Settings.h:7160
std::string toString() const
Get the value as string
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:7047
Enable or disable noise suppression
Definition: Settings.h:7207
static const Enabled no
Off/disabled.
Definition: Settings.h:7226
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:7238
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:7264
void reset()
Reset the node to unset state
bool ValueType
The type of the underlying value
Definition: Settings.h:7224
std::string toString() const
Get the value as string
Enabled()=default
Default constructor
static const Enabled yes
On/enabled.
Definition: Settings.h:7225
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:7229
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:7270
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:7258
Reduce noise and outliers in the point cloud. This filter can also be used to reduce ripple effects c...
Definition: Settings.h:7184
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition: Settings.h:7415
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:7428
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:7398
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:7392
std::string toString() const
Get the value as string
std::tuple< Settings::Processing::Filters::Noise::Suppression::Enabled > Descendants
Definition: Settings.h:7283
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:7371
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:7337
friend std::ostream & operator<<(std::ostream &stream, const Suppression &value)
Operator to send the value as string to a stream
Definition: Settings.h:7450
bool operator!=(const Suppression &other) const
Inequality operator
Suppression & set(const Enabled &value)
Set Enabled
Definition: Settings.h:7404
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:7435
Suppression(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:7310
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:6432
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:7474
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:7775
Noise & set(const Suppression &value)
Set Suppression
Definition: Settings.h:7672
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition: Settings.h:7740
Suppression & suppression()
Get Suppression
Definition: Settings.h:7666
Removal & removal()
Get Removal
Definition: Settings.h:7607
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition: Settings.h:7750
Noise()
Default constructor
Noise(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:7507
Noise & set(const Removal::Threshold &value)
Set Removal::Threshold
Definition: Settings.h:7627
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:7580
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:7784
const Suppression & suppression() const
Get Suppression
Definition: Settings.h:7660
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:7710
Noise & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:7620
const Repair & repair() const
Get Repair
Definition: Settings.h:7634
Noise & set(const Repair::Enabled &value)
Set Repair::Enabled
Definition: Settings.h:7653
Noise & set(const Repair &value)
Set Repair
Definition: Settings.h:7646
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:7540
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:7801
Repair & repair()
Get Repair
Definition: Settings.h:7640
const Settings::Processing::Filters::Noise::Repair & get() const
Definition: Settings.h:7720
const Removal & removal() const
Get Removal
Definition: Settings.h:7601
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:7700
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition: Settings.h:7730
bool operator==(const Noise &other) const
Equality operator
Noise & set(const Suppression::Enabled &value)
Set Suppression::Enabled
Definition: Settings.h:7679
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:7690
Noise & set(const Removal &value)
Set Removal
Definition: Settings.h:7613
Enable or disable the outlier filter
Definition: Settings.h:7864
bool ValueType
The type of the underlying value
Definition: Settings.h:7881
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:7921
bool value() const
Get the value
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:7895
static const Enabled no
Off/disabled.
Definition: Settings.h:7883
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:7882
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:7927
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:7886
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:7915
Enabled()=default
Default constructor
Discard point if Euclidean distance to neighboring points is above the given value
Definition: Settings.h:7944
static constexpr Range< double > validRange()
The range of valid values for Threshold
Definition: Settings.h:7964
bool hasValue() const
Check if the value is set
double value() const
Get the value
constexpr Threshold(double value)
Constructor
Definition: Settings.h:7973
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:8005
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:7993
bool operator>=(const Threshold &other) const
Comparison operator
Definition: Settings.h:8023
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:7999
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream
Definition: Settings.h:8029
void reset()
Reset the node to unset state
bool operator<=(const Threshold &other) const
Comparison operator
Definition: Settings.h:8017
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:8011
std::string toString() const
Get the value as string
double ValueType
The type of the underlying value
Definition: Settings.h:7961
Threshold()=default
Default constructor
Discard point if Euclidean distance to neighboring points is above a threshold
Definition: Settings.h:7844
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:8261
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:8166
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:8145
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:8178
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:8172
Removal & set(const Threshold &value)
Set Threshold
Definition: Settings.h:8197
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:8208
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:8082
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:8218
std::tuple< Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition: Settings.h:8054
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:8185
Threshold & threshold()
Get Threshold
Definition: Settings.h:8191
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:8237
Removal()
Default constructor
bool operator==(const Removal &other) const
Equality operator
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:8110
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:8245
Contains a filter that removes points with large Euclidean distance to neighboring points
Definition: Settings.h:7824
const Removal & removal() const
Get Removal
Definition: Settings.h:8397
Outlier(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:8311
Outlier & set(const Removal &value)
Set Removal
Definition: Settings.h:8409
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:8474
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:8467
bool operator!=(const Outlier &other) const
Inequality operator
Outlier & set(const Removal::Threshold &value)
Set Removal::Threshold
Definition: Settings.h:8423
Outlier & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:8416
Removal & removal()
Get Removal
Definition: Settings.h:8403
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:8376
friend std::ostream & operator<<(std::ostream &stream, const Outlier &value)
Operator to send the value as string to a stream
Definition: Settings.h:8489
bool operator==(const Outlier &other) const
Equality operator
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:8454
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:8434
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:8444
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:8340
std::tuple< Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition: Settings.h:8282
Enable or disable the reflection filter. Note that this filter is computationally intensive and may a...
Definition: Settings.h:8550
bool ValueType
The type of the underlying value
Definition: Settings.h:8567
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:8568
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:8607
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:8581
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:8613
bool value() const
Get the value
static const Enabled no
Off/disabled.
Definition: Settings.h:8569
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:8601
Enabled()=default
Default constructor
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:8572
The reflection filter has two modes: Local and Global. Local mode preserves more 3D data on thinner o...
Definition: Settings.h:8657
std::string toString() const
Get the value as string
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream
Definition: Settings.h:8739
static const Mode global
global
Definition: Settings.h:8688
constexpr Mode(ValueType value)
Constructor
Definition: Settings.h:8701
void reset()
Reset the node to unset state
bool operator==(const Mode &other) const
Comparison operator
Definition: Settings.h:8727
ValueType value() const
Get the value
bool operator!=(const Mode &other) const
Comparison operator
Definition: Settings.h:8733
ValueType
The type of the underlying value
Definition: Settings.h:8684
static const Mode local
local
Definition: Settings.h:8689
bool hasValue() const
Check if the value is set
Mode()=default
Default constructor
static std::set< ValueType > validValues()
All valid values of Mode
Definition: Settings.h:8692
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream
Definition: Settings.h:8721
Experimental reflection filter related settings
Definition: Settings.h:8630
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:8792
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:8919
bool operator!=(const Experimental &other) const
Inequality operator
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:8912
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:8853
std::tuple< Settings::Processing::Filters::Reflection::Removal::Experimental::Mode > Descendants
Definition: Settings.h:8765
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream
Definition: Settings.h:8934
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:8899
bool operator==(const Experimental &other) const
Equality operator
Mode & mode()
Get Mode
Definition: Settings.h:8880
const Mode & mode() const
Get Mode
Definition: Settings.h:8874
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:8819
Experimental()
Default constructor
Experimental & set(const Mode &value)
Set Mode
Definition: Settings.h:8886
std::string toString() const
Get the value as string
Discard points likely introduced by reflections (useful for shiny materials)
Definition: Settings.h:8530
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:9088
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:9075
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:9185
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:9118
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:9012
std::tuple< Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode > Descendants
Definition: Settings.h:8954
Removal()
Default constructor
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:9161
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:9141
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:9048
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:8983
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:9081
Removal & set(const Experimental &value)
Set Experimental
Definition: Settings.h:9100
Experimental & experimental()
Get Experimental
Definition: Settings.h:9094
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:9169
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:9069
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:9129
bool operator!=(const Removal &other) const
Inequality operator
Removal & set(const Experimental::Mode &value)
Set Experimental::Mode
Definition: Settings.h:9107
Contains a filter that removes points likely introduced by reflections (useful for shiny materials)
Definition: Settings.h:8510
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:9400
Reflection & set(const Removal::Experimental &value)
Set Removal::Experimental
Definition: Settings.h:9351
bool operator!=(const Reflection &other) const
Inequality operator
bool operator==(const Reflection &other) const
Equality operator
std::tuple< Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode > Descendants
Definition: Settings.h:9207
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:9389
Removal & removal()
Get Removal
Definition: Settings.h:9331
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:9267
friend std::ostream & operator<<(std::ostream &stream, const Reflection &value)
Operator to send the value as string to a stream
Definition: Settings.h:9435
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:9420
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:9413
Reflection & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:9344
Reflection()
Default constructor
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:9379
Reflection(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:9237
std::string toString() const
Get the value as string
Reflection & set(const Removal::Experimental::Mode &value)
Set Removal::Experimental::Mode
Definition: Settings.h:9358
const Removal & removal() const
Get Removal
Definition: Settings.h:9325
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:9369
Reflection & set(const Removal &value)
Set Removal
Definition: Settings.h:9337
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:9304
Enable or disable the smoothing filter
Definition: Settings.h:9494
bool ValueType
The type of the underlying value
Definition: Settings.h:9511
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:9516
bool value() const
Get the value
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:9551
static const Enabled yes
On/enabled.
Definition: Settings.h:9512
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:9545
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:9557
static const Enabled no
Off/disabled.
Definition: Settings.h:9513
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:9525
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:9574
Sigma()=default
Default constructor
double ValueType
The type of the underlying value
Definition: Settings.h:9591
bool operator!=(const Sigma &other) const
Comparison operator
Definition: Settings.h:9629
bool operator>(const Sigma &other) const
Comparison operator
Definition: Settings.h:9641
double value() const
Get the value
bool hasValue() const
Check if the value is set
constexpr Sigma(double value)
Constructor
Definition: Settings.h:9603
static constexpr Range< double > validRange()
The range of valid values for Sigma
Definition: Settings.h:9594
friend std::ostream & operator<<(std::ostream &stream, const Sigma &value)
Operator to serialize the value to a stream
Definition: Settings.h:9659
void reset()
Reset the node to unset state
bool operator>=(const Sigma &other) const
Comparison operator
Definition: Settings.h:9653
bool operator==(const Sigma &other) const
Comparison operator
Definition: Settings.h:9623
bool operator<=(const Sigma &other) const
Comparison operator
Definition: Settings.h:9647
std::string toString() const
Get the value as string
bool operator<(const Sigma &other) const
Comparison operator
Definition: Settings.h:9635
Gaussian smoothing of the point cloud
Definition: Settings.h:9474
Gaussian(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:9712
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:9802
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:9867
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:9848
Gaussian & set(const Enabled &value)
Set Enabled
Definition: Settings.h:9808
friend std::ostream & operator<<(std::ostream &stream, const Gaussian &value)
Operator to send the value as string to a stream
Definition: Settings.h:9891
const Sigma & sigma() const
Get Sigma
Definition: Settings.h:9815
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:9684
bool operator==(const Gaussian &other) const
Equality operator
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:9796
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:9838
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:9775
Gaussian & set(const Sigma &value)
Set Sigma
Definition: Settings.h:9827
Sigma & sigma()
Get Sigma
Definition: Settings.h:9821
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:9740
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:9875
Smoothing filters
Definition: Settings.h:9456
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:10006
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:9970
Smoothing & set(const Gaussian &value)
Set Gaussian
Definition: Settings.h:10039
Smoothing()
Default constructor
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:9912
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:10074
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:10104
Smoothing & set(const Gaussian::Sigma &value)
Set Gaussian::Sigma
Definition: Settings.h:10053
Smoothing & set(const Gaussian::Enabled &value)
Set Gaussian::Enabled
Definition: Settings.h:10046
bool operator!=(const Smoothing &other) const
Inequality operator
const Gaussian & gaussian() const
Get Gaussian
Definition: Settings.h:10027
Smoothing(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:9941
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:10064
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:10097
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:10084
friend std::ostream & operator<<(std::ostream &stream, const Smoothing &value)
Operator to send the value as string to a stream
Definition: Settings.h:10119
Gaussian & gaussian()
Get Gaussian
Definition: Settings.h:10033
Filters
Definition: Settings.h:3200
bool operator!=(const Filters &other) const
Inequality operator
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:11007
Filters & set(const Reflection::Removal::Enabled &value)
Set Reflection::Removal::Enabled
Definition: Settings.h:10670
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:11170
Filters & set(const Cluster &value)
Set Cluster
Definition: Settings.h:10405
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:11017
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:10372
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:10870
Filters & set(const Noise::Repair &value)
Set Noise::Repair
Definition: Settings.h:10576
std::string toString() const
Get the value as string
Filters & set(const Reflection::Removal::Experimental &value)
Set Reflection::Removal::Experimental
Definition: Settings.h:10677
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition: Settings.h:10978
Filters & set(const Cluster::Removal::MaxNeighborDistance &value)
Set Cluster::Removal::MaxNeighborDistance
Definition: Settings.h:10426
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:10939
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:11066
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition: Settings.h:10988
const Settings::Processing::Filters::Smoothing & get() const
Definition: Settings.h:11085
Filters & set(const Noise::Repair::Enabled &value)
Set Noise::Repair::Enabled
Definition: Settings.h:10583
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition: Settings.h:10744
Cluster & cluster()
Get Cluster
Definition: Settings.h:10399
Filters & set(const Reflection::Removal::Experimental::Mode &value)
Set Reflection::Removal::Experimental::Mode
Definition: Settings.h:10684
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:11046
const Settings::Processing::Filters::Reflection & get() const
Definition: Settings.h:11036
Filters & set(const Outlier::Removal::Threshold &value)
Set Outlier::Removal::Threshold
Definition: Settings.h:10637
Filters & set(const Experimental::ContrastDistortion::Correction::Strength &value)
Set Experimental::ContrastDistortion::Correction::Strength
Definition: Settings.h:10480
Filters & set(const Experimental &value)
Set Experimental
Definition: Settings.h:10452
Outlier & outlier()
Get Outlier
Definition: Settings.h:10610
Filters & set(const Noise::Suppression &value)
Set Noise::Suppression
Definition: Settings.h:10590
Filters & set(const Outlier::Removal &value)
Set Outlier::Removal
Definition: Settings.h:10623
const Cluster & cluster() const
Get Cluster
Definition: Settings.h:10393
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:10440
Filters & set(const Experimental::ContrastDistortion &value)
Set Experimental::ContrastDistortion
Definition: Settings.h:10459
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:11190
Filters & set(const Cluster::Removal::Enabled &value)
Set Cluster::Removal::Enabled
Definition: Settings.h:10419
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:11056
const Settings::Processing::Filters::Experimental::HoleFilling & get() const
Definition: Settings.h:10881
const Settings::Processing::Filters::Outlier & get() const
Definition: Settings.h:10997
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:10793
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:11115
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:10302
const Reflection & reflection() const
Get Reflection
Definition: Settings.h:10644
const Settings::Processing::Filters::Experimental & get() const
Definition: Settings.h:10783
Filters & set(const Experimental::HoleFilling::Enabled &value)
Set Experimental::HoleFilling::Enabled
Definition: Settings.h:10515
Filters & set(const Noise::Removal::Threshold &value)
Set Noise::Removal::Threshold
Definition: Settings.h:10569
Filters & set(const Experimental::HoleFilling &value)
Set Experimental::HoleFilling
Definition: Settings.h:10508
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:11105
Filters & set(const Reflection &value)
Set Reflection
Definition: Settings.h:10656
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:10832
Filters & set(const Experimental::ContrastDistortion::Removal &value)
Set Experimental::ContrastDistortion::Removal
Definition: Settings.h:10487
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:11158
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:10754
Filters & set(const Outlier &value)
Set Outlier
Definition: Settings.h:10616
const Noise & noise() const
Get Noise
Definition: Settings.h:10536
Filters & set(const Experimental::ContrastDistortion::Correction &value)
Set Experimental::ContrastDistortion::Correction
Definition: Settings.h:10466
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:10818
Filters & set(const Reflection::Removal &value)
Set Reflection::Removal
Definition: Settings.h:10663
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:10929
Filters & set(const Noise::Removal::Enabled &value)
Set Noise::Removal::Enabled
Definition: Settings.h:10562
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:10911
Filters & set(const Smoothing::Gaussian::Enabled &value)
Set Smoothing::Gaussian::Enabled
Definition: Settings.h:10717
const Settings::Processing::Filters::Noise & get() const
Definition: Settings.h:10920
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition: Settings.h:10968
Filters & set(const Experimental::ContrastDistortion::Removal::Threshold &value)
Set Experimental::ContrastDistortion::Removal::Threshold
Definition: Settings.h:10501
Filters & set(const Smoothing::Gaussian &value)
Set Smoothing::Gaussian
Definition: Settings.h:10710
bool operator==(const Filters &other) const
Equality operator
Filters & set(const Outlier::Removal::Enabled &value)
Set Outlier::Removal::Enabled
Definition: Settings.h:10630
Filters & set(const Experimental::HoleFilling::HoleSize &value)
Set Experimental::HoleFilling::HoleSize
Definition: Settings.h:10522
Filters & set(const Cluster::Removal &value)
Set Cluster::Removal
Definition: Settings.h:10412
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:10857
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:11076
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:10901
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::Experimental::HoleFilling, Settings::Processing::Filters::Experimental::HoleFilling::Enabled, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize, Settings::Processing::Filters::Experimental::HoleFilling::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::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:10174
Filters & set(const Cluster::Removal::MinArea &value)
Set Cluster::Removal::MinArea
Definition: Settings.h:10433
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:10844
Filters(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:10238
Noise & noise()
Get Noise
Definition: Settings.h:10542
Filters & set(const Smoothing &value)
Set Smoothing
Definition: Settings.h:10703
Filters & set(const Experimental::ContrastDistortion::Correction::Enabled &value)
Set Experimental::ContrastDistortion::Correction::Enabled
Definition: Settings.h:10473
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:10764
Filters & set(const Noise::Removal &value)
Set Noise::Removal
Definition: Settings.h:10555
const Settings::Processing::Filters::Cluster & get() const
Definition: Settings.h:10734
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:11027
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:10949
Smoothing & smoothing()
Get Smoothing
Definition: Settings.h:10697
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:10774
Filters & set(const Noise::Suppression::Enabled &value)
Set Noise::Suppression::Enabled
Definition: Settings.h:10597
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:11095
Filters & set(const Experimental::ContrastDistortion::Removal::Enabled &value)
Set Experimental::ContrastDistortion::Removal::Enabled
Definition: Settings.h:10494
Filters & set(const Experimental::HoleFilling::Strictness &value)
Set Experimental::HoleFilling::Strictness
Definition: Settings.h:10529
const Outlier & outlier() const
Get Outlier
Definition: Settings.h:10604
const Settings::Processing::Filters::Noise::Repair & get() const
Definition: Settings.h:10958
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:10891
Reflection & reflection()
Get Reflection
Definition: Settings.h:10650
Filters & set(const Noise &value)
Set Noise
Definition: Settings.h:10548
Filters & set(const Smoothing::Gaussian::Sigma &value)
Set Smoothing::Gaussian::Sigma
Definition: Settings.h:10724
const Smoothing & smoothing() const
Get Smoothing
Definition: Settings.h:10691
Experimental & experimental()
Get Experimental
Definition: Settings.h:10446
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:10804
Settings related to processing of a capture, including filters and color balance
Definition: Settings.h:1730
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:12104
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:11911
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::Experimental::HoleFilling, Settings::Processing::Filters::Experimental::HoleFilling::Enabled, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize, Settings::Processing::Filters::Experimental::HoleFilling::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::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:11259
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:12039
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:12284
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:12245
Processing & set(const Color::Experimental &value)
Set Color::Experimental
Definition: Settings.h:11550
Processing & set(const Color &value)
Set Color
Definition: Settings.h:11515
Processing & set(const Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Filters::Cluster::Removal::MaxNeighborDistance
Definition: Settings.h:11611
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition: Settings.h:12160
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:11893
Processing & set(const Color::Balance &value)
Set Color::Balance
Definition: Settings.h:11522
Processing & set(const Filters::Smoothing::Gaussian &value)
Set Filters::Smoothing::Gaussian
Definition: Settings.h:11835
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:11483
Filters & filters()
Get Filters
Definition: Settings.h:11577
Processing & set(const Filters::Smoothing::Gaussian::Enabled &value)
Set Filters::Smoothing::Gaussian::Enabled
Definition: Settings.h:11842
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition: Settings.h:12179
const Settings::Processing::Color::Gamma & get() const
Definition: Settings.h:11919
Processing & set(const Filters::Experimental::ContrastDistortion::Removal &value)
Set Filters::Experimental::ContrastDistortion::Removal
Definition: Settings.h:11660
Processing & set(const Filters::Experimental::HoleFilling::HoleSize &value)
Set Filters::Experimental::HoleFilling::HoleSize
Definition: Settings.h:11695
Processing()
Default constructor
const Settings::Processing::Filters::Smoothing & get() const
Definition: Settings.h:12274
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Filters::Experimental::ContrastDistortion::Removal::Threshold
Definition: Settings.h:11674
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:11884
Processing & set(const Filters::Outlier::Removal &value)
Set Filters::Outlier::Removal
Definition: Settings.h:11772
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Removal::Enabled
Definition: Settings.h:11667
Processing & set(const Filters::Cluster::Removal::Enabled &value)
Set Filters::Cluster::Removal::Enabled
Definition: Settings.h:11604
friend std::ostream & operator<<(std::ostream &stream, const Processing &value)
Operator to send the value as string to a stream
Definition: Settings.h:12347
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition: Settings.h:12169
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:12050
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:12235
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:12141
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:12304
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:12131
Processing & set(const Color::Balance::Blue &value)
Set Color::Balance::Blue
Definition: Settings.h:11529
Color & color()
Get Color
Definition: Settings.h:11509
Processing & set(const Filters::Experimental::HoleFilling::Strictness &value)
Set Filters::Experimental::HoleFilling::Strictness
Definition: Settings.h:11702
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:12255
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:12294
Processing & set(const Filters::Reflection &value)
Set Filters::Reflection
Definition: Settings.h:11793
Processing & set(const Filters::Noise &value)
Set Filters::Noise
Definition: Settings.h:11709
Processing & set(const Filters::Cluster &value)
Set Filters::Cluster
Definition: Settings.h:11590
const Settings::Processing::Filters::Outlier & get() const
Definition: Settings.h:12187
const Settings::Processing::Filters & get() const
Definition: Settings.h:11927
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Filters::Experimental::ContrastDistortion::Correction::Strength
Definition: Settings.h:11653
Processing & set(const Filters::Noise::Removal::Enabled &value)
Set Filters::Noise::Removal::Enabled
Definition: Settings.h:11723
Processing & set(const Filters::Smoothing &value)
Set Filters::Smoothing
Definition: Settings.h:11828
const Settings::Processing::Color::Balance & get() const
Definition: Settings.h:11866
const Filters & filters() const
Get Filters
Definition: Settings.h:11571
Processing & set(const Filters::Cluster::Removal &value)
Set Filters::Cluster::Removal
Definition: Settings.h:11597
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:12331
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:11974
Processing & set(const Filters::Smoothing::Gaussian::Sigma &value)
Set Filters::Smoothing::Gaussian::Sigma
Definition: Settings.h:11849
Processing & set(const Filters::Noise::Suppression &value)
Set Filters::Noise::Suppression
Definition: Settings.h:11751
Processing & set(const Filters::Noise::Removal &value)
Set Filters::Noise::Removal
Definition: Settings.h:11716
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:12084
Processing & set(const Filters::Reflection::Removal::Experimental &value)
Set Filters::Reflection::Removal::Experimental
Definition: Settings.h:11814
Processing & set(const Filters::Outlier::Removal::Enabled &value)
Set Filters::Outlier::Removal::Enabled
Definition: Settings.h:11779
Processing & set(const Filters::Noise::Removal::Threshold &value)
Set Filters::Noise::Removal::Threshold
Definition: Settings.h:11730
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:11875
Processing & set(const Filters::Cluster::Removal::MinArea &value)
Set Filters::Cluster::Removal::MinArea
Definition: Settings.h:11618
Processing & set(const Filters::Experimental &value)
Set Filters::Experimental
Definition: Settings.h:11625
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:12121
Processing & set(const Filters::Outlier::Removal::Threshold &value)
Set Filters::Outlier::Removal::Threshold
Definition: Settings.h:11786
Processing & set(const Filters::Experimental::HoleFilling &value)
Set Filters::Experimental::HoleFilling
Definition: Settings.h:11681
Processing & set(const Color::Balance::Green &value)
Set Color::Balance::Green
Definition: Settings.h:11536
Processing & set(const Filters::Experimental::HoleFilling::Enabled &value)
Set Filters::Experimental::HoleFilling::Enabled
Definition: Settings.h:11688
const Settings::Processing::Color::Experimental & get() const
Definition: Settings.h:11902
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:12028
Processing & set(const Filters::Outlier &value)
Set Filters::Outlier
Definition: Settings.h:11765
Processing & set(const Filters::Noise::Repair::Enabled &value)
Set Filters::Noise::Repair::Enabled
Definition: Settings.h:11744
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:12015
Processing & set(const Color::Experimental::Mode &value)
Set Color::Experimental::Mode
Definition: Settings.h:11557
Processing & set(const Filters::Reflection::Removal::Enabled &value)
Set Filters::Reflection::Removal::Enabled
Definition: Settings.h:11807
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Correction::Enabled
Definition: Settings.h:11646
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:11954
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:12216
Processing & set(const Filters::Reflection::Removal::Experimental::Mode &value)
Set Filters::Reflection::Removal::Experimental::Mode
Definition: Settings.h:11821
Processing & set(const Filters::Reflection::Removal &value)
Set Filters::Reflection::Removal
Definition: Settings.h:11800
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:12265
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:11964
Processing(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:11332
Processing & set(const Filters::Experimental::ContrastDistortion::Correction &value)
Set Filters::Experimental::ContrastDistortion::Correction
Definition: Settings.h:11639
const Settings::Processing::Color & get() const
Definition: Settings.h:11858
bool operator==(const Processing &other) const
Equality operator
const Color & color() const
Get Color
Definition: Settings.h:11503
Processing & set(const Filters::Experimental::ContrastDistortion &value)
Set Filters::Experimental::ContrastDistortion
Definition: Settings.h:11632
Processing & set(const Filters::Noise::Suppression::Enabled &value)
Set Filters::Noise::Suppression::Enabled
Definition: Settings.h:11758
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition: Settings.h:11944
const Settings::Processing::Filters::Reflection & get() const
Definition: Settings.h:12225
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:12206
Processing & set(const Filters &value)
Set Filters
Definition: Settings.h:11583
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:12094
Processing & set(const Color::Balance::Red &value)
Set Color::Balance::Red
Definition: Settings.h:11543
const Settings::Processing::Filters::Noise & get() const
Definition: Settings.h:12112
bool operator!=(const Processing &other) const
Inequality operator
const Settings::Processing::Filters::Experimental & get() const
Definition: Settings.h:11983
const Settings::Processing::Filters::Noise::Repair & get() const
Definition: Settings.h:12150
Processing & set(const Color::Gamma &value)
Set Color::Gamma
Definition: Settings.h:11564
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:11405
const Settings::Processing::Filters::Experimental::HoleFilling & get() const
Definition: Settings.h:12074
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:12063
const Settings::Processing::Filters::Cluster & get() const
Definition: Settings.h:11935
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:12003
Processing & set(const Filters::Noise::Repair &value)
Set Filters::Noise::Repair
Definition: Settings.h:11737
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:11993
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:12323
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:12196
Enabled
Definition: Settings.h:12427
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:12456
bool ValueType
The type of the underlying value
Definition: Settings.h:12442
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:12476
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:12447
static const Enabled yes
On/enabled.
Definition: Settings.h:12443
static const Enabled no
Off/disabled.
Definition: Settings.h:12444
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:12488
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:12482
Two points on the normal describing the direction and distance from the plane from which the normal i...
Definition: Settings.h:12505
std::string toString() const
Get the value as string
bool operator==(const Extents &other) const
Comparison operator
Definition: Settings.h:12553
Extents()=default
Default constructor
void reset()
Reset the node to unset state
constexpr Extents(Zivid::Range< double > value)
Constructor
Definition: Settings.h:12528
constexpr Extents(double minValue, double maxValue)
Constructor
Definition: Settings.h:12548
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:12565
const Zivid::Range< double > & value() const
Get the value
bool operator!=(const Extents &other) const
Comparison operator
Definition: Settings.h:12559
A point such that the vector from PointO to PointA describes the first edge of the parallelogram
Definition: Settings.h:12582
void reset()
Reset the node to unset state
constexpr PointA(float x, float y, float z)
Constructor
Definition: Settings.h:12625
bool operator!=(const PointA &other) const
Comparison operator
Definition: Settings.h:12636
PointA()=default
Default constructor
bool operator==(const PointA &other) const
Comparison operator
Definition: Settings.h:12630
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:12642
constexpr PointA(Zivid::PointXYZ value)
Constructor
Definition: Settings.h:12605
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:12659
PointB()=default
Default constructor
bool operator==(const PointB &other) const
Comparison operator
Definition: Settings.h:12707
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:12719
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:12702
constexpr PointB(Zivid::PointXYZ value)
Constructor
Definition: Settings.h:12682
Zivid::PointXYZ value() const
Get the value
bool operator!=(const PointB &other) const
Comparison operator
Definition: Settings.h:12713
The point at the intersection of two adjacent edges defining a parallelogram
Definition: Settings.h:12736
constexpr PointO(float x, float y, float z)
Constructor
Definition: Settings.h:12779
void reset()
Reset the node to unset state
bool operator!=(const PointO &other) const
Comparison operator
Definition: Settings.h:12790
PointO()=default
Default constructor
constexpr PointO(Zivid::PointXYZ value)
Constructor
Definition: Settings.h:12759
bool operator==(const PointO &other) const
Comparison operator
Definition: Settings.h:12784
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:12796
Removes the points outside the box.
Definition: Settings.h:12399
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:12814
std::string toString() const
Get the value as string
Box & set(const PointA &value)
Set PointA
Definition: Settings.h:12984
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:12913
const PointO & pointO() const
Get PointO
Definition: Settings.h:13010
Box & set(const PointO &value)
Set PointO
Definition: Settings.h:13022
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:12940
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:12934
Box & set(const Extents &value)
Set Extents
Definition: Settings.h:12965
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition: Settings.h:13032
PointA & pointA()
Get PointA
Definition: Settings.h:12978
PointB & pointB()
Get PointB
Definition: Settings.h:12997
Box & set(const PointB &value)
Set PointB
Definition: Settings.h:13003
const Settings::RegionOfInterest::Box::PointO & get() const
Definition: Settings.h:13068
const Settings::RegionOfInterest::Box::PointA & get() const
Definition: Settings.h:13050
const Extents & extents() const
Get Extents
Definition: Settings.h:12953
Box(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:12845
const PointA & pointA() const
Get PointA
Definition: Settings.h:12972
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:12876
PointO & pointO()
Get PointO
Definition: Settings.h:13016
Extents & extents()
Get Extents
Definition: Settings.h:12959
const PointB & pointB() const
Get PointB
Definition: Settings.h:12991
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:13105
friend std::ostream & operator<<(std::ostream &stream, const Box &value)
Operator to send the value as string to a stream
Definition: Settings.h:13135
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:13059
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:13116
const Settings::RegionOfInterest::Box::Extents & get() const
Definition: Settings.h:13041
Box & set(const Enabled &value)
Set Enabled
Definition: Settings.h:12946
Enabled
Definition: Settings.h:13184
Enabled()=default
Default constructor
static const Enabled yes
On/enabled.
Definition: Settings.h:13200
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:13233
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:13239
bool ValueType
The type of the underlying value
Definition: Settings.h:13199
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:13245
bool value() const
Get the value
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:13204
std::string toString() const
Get the value as string
static const Enabled no
Off/disabled.
Definition: Settings.h:13201
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:13213
Specify the minimum and maximum Z value that will be included.
Definition: Settings.h:13262
constexpr Range(double minValue, double maxValue)
Constructor
Definition: Settings.h:13305
constexpr Range(Zivid::Range< double > value)
Constructor
Definition: Settings.h:13285
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:13322
Range()=default
Default constructor
bool operator==(const Range &other) const
Comparison operator
Definition: Settings.h:13310
bool operator!=(const Range &other) const
Comparison operator
Definition: Settings.h:13316
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:13162
Depth()
Default constructor
Depth & set(const Enabled &value)
Set Enabled
Definition: Settings.h:13459
std::string toString() const
Get the value as string
const Range & range() const
Get Range
Definition: Settings.h:13466
Depth & set(const Range &value)
Set Range
Definition: Settings.h:13478
std::tuple< Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range > Descendants
Definition: Settings.h:13336
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:13447
bool operator==(const Depth &other) const
Equality operator
Depth(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:13364
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:13524
bool operator!=(const Depth &other) const
Inequality operator
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition: Settings.h:13488
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:13516
Range & range()
Get Range
Definition: Settings.h:13472
friend std::ostream & operator<<(std::ostream &stream, const Depth &value)
Operator to send the value as string to a stream
Definition: Settings.h:13540
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:13392
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:13453
const Settings::RegionOfInterest::Depth::Range & get() const
Definition: Settings.h:13497
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:13426
Removes points outside the region of interest.
Definition: Settings.h:12370
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition: Settings.h:13845
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:13567
Depth & depth()
Get Depth
Definition: Settings.h:13757
RegionOfInterest & set(const Depth::Enabled &value)
Set Depth::Enabled
Definition: Settings.h:13770
const Box & box() const
Get Box
Definition: Settings.h:13697
RegionOfInterest & set(const Box &value)
Set Box
Definition: Settings.h:13709
friend std::ostream & operator<<(std::ostream &stream, const RegionOfInterest &value)
Operator to send the value as string to a stream
Definition: Settings.h:13897
RegionOfInterest & set(const Box::PointO &value)
Set Box::PointO
Definition: Settings.h:13744
const Settings::RegionOfInterest::Box::PointO & get() const
Definition: Settings.h:13828
std::string toString() const
Get the value as string
const Settings::RegionOfInterest::Box::PointA & get() const
Definition: Settings.h:13812
const Settings::RegionOfInterest::Depth & get() const
Definition: Settings.h:13836
const Settings::RegionOfInterest::Box::Extents & get() const
Definition: Settings.h:13804
const Settings::RegionOfInterest::Depth::Range & get() const
Definition: Settings.h:13854
const Settings::RegionOfInterest::Box::PointB & get() const
Definition: Settings.h:13820
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:13637
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:13677
Box & box()
Get Box
Definition: Settings.h:13703
const Settings::RegionOfInterest::Box & get() const
Definition: Settings.h:13786
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:13873
RegionOfInterest & set(const Box::PointA &value)
Set Box::PointA
Definition: Settings.h:13730
const Depth & depth() const
Get Depth
Definition: Settings.h:13751
RegionOfInterest & set(const Box::Extents &value)
Set Box::Extents
Definition: Settings.h:13723
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:13881
RegionOfInterest & set(const Box::Enabled &value)
Set Box::Enabled
Definition: Settings.h:13716
RegionOfInterest & set(const Depth::Range &value)
Set Depth::Range
Definition: Settings.h:13777
bool operator!=(const RegionOfInterest &other) const
Inequality operator
RegionOfInterest & set(const Depth &value)
Set Depth
Definition: Settings.h:13763
RegionOfInterest & set(const Box::PointB &value)
Set Box::PointB
Definition: Settings.h:13737
bool operator==(const RegionOfInterest &other) const
Equality operator
RegionOfInterest(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:13602
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition: Settings.h:13795
RegionOfInterest()
Default constructor
Choose how to sample colors for the pointcloud. The rgb option gives all colors for a regular Zivid c...
Definition: Settings.h:13943
ValueType
The type of the underlying value
Definition: Settings.h:13965
std::string toString() const
Get the value as string
static std::set< ValueType > validValues()
All valid values of Color
Definition: Settings.h:13973
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to serialize the value to a stream
Definition: Settings.h:14020
constexpr Color(ValueType value)
Constructor
Definition: Settings.h:13982
bool operator!=(const Color &other) const
Comparison operator
Definition: Settings.h:14014
Color()=default
Default constructor
static const Color disabled
disabled
Definition: Settings.h:13970
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:14008
friend std::ostream & operator<<(std::ostream &stream, const Color::ValueType &value)
Operator to serialize ValueType to a stream
Definition: Settings.h:14002
static const Color rgb
rgb
Definition: Settings.h:13969
ValueType value() const
Get the value
Set whether the full image sensor should be used with white projector light or only specific color ch...
Definition: Settings.h:14055
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:14091
constexpr Pixel(ValueType value)
Constructor
Definition: Settings.h:14100
static const Pixel all
all
Definition: Settings.h:14086
static const Pixel blueSubsample2x2
blueSubsample2x2
Definition: Settings.h:14087
bool operator!=(const Pixel &other) const
Comparison operator
Definition: Settings.h:14132
ValueType
The type of the underlying value
Definition: Settings.h:14081
static const Pixel redSubsample2x2
redSubsample2x2
Definition: Settings.h:14088
Pixel()=default
Default constructor
bool operator==(const Pixel &other) const
Comparison operator
Definition: Settings.h:14126
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:14120
friend std::ostream & operator<<(std::ostream &stream, const Pixel &value)
Operator to serialize the value to a stream
Definition: Settings.h:14138
std::string toString() const
Get the value as string
Sampling group
Definition: Settings.h:13920
std::tuple< Settings::Sampling::Color, Settings::Sampling::Pixel > Descendants
Definition: Settings.h:14162
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:14218
bool operator==(const Sampling &other) const
Equality operator
Color & color()
Get Color
Definition: Settings.h:14277
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:14251
const Pixel & pixel() const
Get Pixel
Definition: Settings.h:14290
friend std::ostream & operator<<(std::ostream &stream, const Sampling &value)
Operator to send the value as string to a stream
Definition: Settings.h:14362
Pixel & pixel()
Get Pixel
Definition: Settings.h:14296
const Settings::Sampling::Color & get() const
Definition: Settings.h:14311
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:14338
Sampling()
Default constructor
const Settings::Sampling::Pixel & get() const
Definition: Settings.h:14319
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:14346
Sampling(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:14190
const Color & color() const
Get Color
Definition: Settings.h:14271
std::string toString() const
Get the value as string
Sampling & set(const Color &value)
Set Color
Definition: Settings.h:14283
Sampling & set(const Pixel &value)
Set Pixel
Definition: Settings.h:14302
Settings used when capturing with a Zivid camera
Definition: Settings.h:124
const Settings::RegionOfInterest::Depth & get() const
Definition: Settings.h:15819
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:15663
Settings(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:14540
Settings & set(const Processing::Filters::Cluster::Removal::MinArea &value)
Set Processing::Filters::Cluster::Removal::MinArea
Definition: Settings.h:14929
const Settings::Processing::Filters::Outlier & get() const
Definition: Settings.h:15644
Settings & set(const RegionOfInterest::Box::PointB &value)
Set RegionOfInterest::Box::PointB
Definition: Settings.h:15214
const Settings::Processing::Color::Balance & get() const
Definition: Settings.h:15332
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled
Definition: Settings.h:14978
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:14793
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:15356
Settings & set(const Processing::Color::Experimental::Mode &value)
Set Processing::Color::Experimental::Mode
Definition: Settings.h:14880
Settings & set(const Processing::Filters::Smoothing &value)
Set Processing::Filters::Smoothing
Definition: Settings.h:15139
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:15542
const Settings::RegionOfInterest & get() const
Definition: Settings.h:15763
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:15579
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:14729
const Processing & processing() const
Get Processing
Definition: Settings.h:14819
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:15552
const Settings::Experimental & get() const
Definition: Settings.h:15302
const Settings::Processing::Color::Gamma & get() const
Definition: Settings.h:15381
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:15498
Settings & set(const Processing &value)
Set Processing
Definition: Settings.h:14831
const Settings::Sampling::Pixel & get() const
Definition: Settings.h:15853
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:15521
Settings & set(const Sampling &value)
Set Sampling
Definition: Settings.h:15261
Settings & set(const Processing::Filters::Outlier::Removal::Enabled &value)
Set Processing::Filters::Outlier::Removal::Enabled
Definition: Settings.h:15090
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:15426
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold
Definition: Settings.h:14985
Settings & set(const Experimental::Engine &value)
Set Experimental::Engine
Definition: Settings.h:14812
Settings & set(const Processing::Filters::Smoothing::Gaussian &value)
Set Processing::Filters::Smoothing::Gaussian
Definition: Settings.h:15146
Settings & set(const Sampling::Color &value)
Set Sampling::Color
Definition: Settings.h:15268
Settings & set(const Diagnostics &value)
Set Diagnostics
Definition: Settings.h:14779
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:15509
Settings & set(const RegionOfInterest::Depth::Enabled &value)
Set RegionOfInterest::Depth::Enabled
Definition: Settings.h:15235
Settings & set(const Processing::Filters::Noise &value)
Set Processing::Filters::Noise
Definition: Settings.h:15020
const Sampling & sampling() const
Get Sampling
Definition: Settings.h:15249
void load(const std::string &fileName)
Load from the given file
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:15436
const Settings::Acquisitions & get() const
Definition: Settings.h:15282
const Settings::Processing::Filters::Experimental::HoleFilling & get() const
Definition: Settings.h:15532
const Settings::Processing::Filters::Experimental & get() const
Definition: Settings.h:15444
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition: Settings.h:15626
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:15653
Settings & set(const Processing::Filters::Cluster &value)
Set Processing::Filters::Cluster
Definition: Settings.h:14901
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:15757
Settings & set(const Processing::Filters::Reflection::Removal::Experimental &value)
Set Processing::Filters::Reflection::Removal::Experimental
Definition: Settings.h:15125
const Settings::Diagnostics & get() const
Definition: Settings.h:15288
RegionOfInterest & regionOfInterest()
Get RegionOfInterest
Definition: Settings.h:15173
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:15747
const Settings::RegionOfInterest::Box & get() const
Definition: Settings.h:15771
Settings & set(const Processing::Color::Balance &value)
Set Processing::Color::Balance
Definition: Settings.h:14845
const Settings::RegionOfInterest::Box::PointO & get() const
Definition: Settings.h:15811
Settings & set(const RegionOfInterest::Depth &value)
Set RegionOfInterest::Depth
Definition: Settings.h:15228
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:15589
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition: Settings.h:15827
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:15464
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:15896
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:15348
const Settings::RegionOfInterest::Box::Extents & get() const
Definition: Settings.h:15787
Settings & set(const Processing::Filters::Smoothing::Gaussian::Enabled &value)
Set Processing::Filters::Smoothing::Gaussian::Enabled
Definition: Settings.h:15153
const Settings::Processing & get() const
Definition: Settings.h:15316
Settings & set(const Processing::Filters::Reflection &value)
Set Processing::Filters::Reflection
Definition: Settings.h:15104
const Settings::Experimental::Engine & get() const
Definition: Settings.h:15310
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:15908
Settings()
Default constructor
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:15454
Settings & set(const Processing::Filters::Outlier::Removal::Threshold &value)
Set Processing::Filters::Outlier::Removal::Threshold
Definition: Settings.h:15097
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition: Settings.h:15779
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:15373
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Strength
Definition: Settings.h:14964
Settings & set(const RegionOfInterest::Box::Enabled &value)
Set RegionOfInterest::Box::Enabled
Definition: Settings.h:15193
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:15487
Settings & set(const RegionOfInterest::Box::Extents &value)
Set RegionOfInterest::Box::Extents
Definition: Settings.h:15200
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:15340
std::tuple< Settings::Acquisitions, Settings::Diagnostics, Settings::Diagnostics::Enabled, Settings::Experimental, Settings::Experimental::Engine, Settings::Processing, Settings::Processing::Color, Settings::Processing::Color::Balance, Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red, Settings::Processing::Color::Experimental, Settings::Processing::Color::Experimental::Mode, Settings::Processing::Color::Gamma, Settings::Processing::Filters, Settings::Processing::Filters::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::Experimental::HoleFilling, Settings::Processing::Filters::Experimental::HoleFilling::Enabled, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize, Settings::Processing::Filters::Experimental::HoleFilling::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::Experimental, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma, 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:14446
const Acquisitions & acquisitions() const
Get Acquisitions
Definition: Settings.h:14748
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:14632
const Settings::Processing::Filters::Reflection & get() const
Definition: Settings.h:15681
Settings & set(const Processing::Filters::Experimental &value)
Set Processing::Filters::Experimental
Definition: Settings.h:14936
const Settings::Processing::Filters::Smoothing & get() const
Definition: Settings.h:15728
const Settings::Processing::Filters & get() const
Definition: Settings.h:15389
Settings & set(const Processing::Color::Experimental &value)
Set Processing::Color::Experimental
Definition: Settings.h:14873
void save(const std::string &fileName) const
Save to the given file
Settings & set(const RegionOfInterest::Depth::Range &value)
Set RegionOfInterest::Depth::Range
Definition: Settings.h:15242
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:15562
const Settings::Processing::Color::Experimental & get() const
Definition: Settings.h:15364
const Settings::Processing::Filters::Noise::Repair & get() const
Definition: Settings.h:15608
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal
Definition: Settings.h:14971
const Settings::RegionOfInterest::Box::PointA & get() const
Definition: Settings.h:15795
Settings & set(const Processing::Color &value)
Set Processing::Color
Definition: Settings.h:14838
Experimental & experimental()
Get Experimental
Definition: Settings.h:14799
Settings & set(const Processing::Filters::Outlier &value)
Set Processing::Filters::Outlier
Definition: Settings.h:15076
bool operator==(const Settings &other) const
Equality operator
Acquisitions & acquisitions()
Get Acquisitions
Definition: Settings.h:14754
Settings & set(const Processing::Filters::Reflection::Removal &value)
Set Processing::Filters::Reflection::Removal
Definition: Settings.h:15111
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition: Settings.h:15636
const Settings::Processing::Filters::Cluster & get() const
Definition: Settings.h:15397
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition: Settings.h:15617
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:14866
Settings & set(const RegionOfInterest::Box::PointO &value)
Set RegionOfInterest::Box::PointO
Definition: Settings.h:15221
const Settings::Sampling::Color & get() const
Definition: Settings.h:15847
Settings & set(const Processing::Filters::Cluster::Removal &value)
Set Processing::Filters::Cluster::Removal
Definition: Settings.h:14908
Settings & set(const RegionOfInterest::Box &value)
Set RegionOfInterest::Box
Definition: Settings.h:15186
Settings & set(const Processing::Filters::Noise::Suppression &value)
Set Processing::Filters::Noise::Suppression
Definition: Settings.h:15062
Diagnostics & diagnostics()
Get Diagnostics
Definition: Settings.h:14773
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:15599
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:15416
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:15710
Sampling & sampling()
Get Sampling
Definition: Settings.h:15255
Settings & set(const Processing::Filters::Reflection::Removal::Enabled &value)
Set Processing::Filters::Reflection::Removal::Enabled
Definition: Settings.h:15118
Processing & processing()
Get Processing
Definition: Settings.h:14825
Settings & set(const RegionOfInterest::Box::PointA &value)
Set RegionOfInterest::Box::PointA
Definition: Settings.h:15207
Settings & set(const Processing::Filters::Experimental::HoleFilling::Enabled &value)
Set Processing::Filters::Experimental::HoleFilling::Enabled
Definition: Settings.h:14999
Settings & set(const Processing::Filters::Experimental::HoleFilling &value)
Set Processing::Filters::Experimental::HoleFilling
Definition: Settings.h:14992
Settings & set(const Diagnostics::Enabled &value)
Set Diagnostics::Enabled
Definition: Settings.h:14786
const Settings::Processing::Filters::Noise & get() const
Definition: Settings.h:15570
const Settings::Diagnostics::Enabled & get() const
Definition: Settings.h:15296
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition: Settings.h:15406
Settings & set(const Processing::Filters::Experimental::HoleFilling::Strictness &value)
Set Processing::Filters::Experimental::HoleFilling::Strictness
Definition: Settings.h:15013
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:15475
const Settings::RegionOfInterest::Box::PointB & get() const
Definition: Settings.h:15803
Settings & set(const Processing::Filters::Experimental::ContrastDistortion &value)
Set Processing::Filters::Experimental::ContrastDistortion
Definition: Settings.h:14943
Settings & set(const Sampling::Pixel &value)
Set Sampling::Pixel
Definition: Settings.h:15275
Settings & set(const Processing::Color::Gamma &value)
Set Processing::Color::Gamma
Definition: Settings.h:14887
Settings & set(const Processing::Filters::Cluster::Removal::Enabled &value)
Set Processing::Filters::Cluster::Removal::Enabled
Definition: Settings.h:14915
const Settings::RegionOfInterest::Depth::Range & get() const
Definition: Settings.h:15835
const Settings::Sampling & get() const
Definition: Settings.h:15841
Settings & set(const Processing::Filters::Noise::Removal::Threshold &value)
Set Processing::Filters::Noise::Removal::Threshold
Definition: Settings.h:15041
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled
Definition: Settings.h:14957
Settings & set(const Processing::Filters::Reflection::Removal::Experimental::Mode &value)
Set Processing::Filters::Reflection::Removal::Experimental::Mode
Definition: Settings.h:15132
Settings & set(const Processing::Filters::Experimental::HoleFilling::HoleSize &value)
Set Processing::Filters::Experimental::HoleFilling::HoleSize
Definition: Settings.h:15006
Settings & set(const Acquisitions &value)
Set Acquisitions
Definition: Settings.h:14760
Settings & set(const Processing::Filters::Smoothing::Gaussian::Sigma &value)
Set Processing::Filters::Smoothing::Gaussian::Sigma
Definition: Settings.h:15160
const Diagnostics & diagnostics() const
Get Diagnostics
Definition: Settings.h:14767
bool operator!=(const Settings &other) const
Inequality operator
Settings & set(const Processing::Filters::Noise::Removal &value)
Set Processing::Filters::Noise::Removal
Definition: Settings.h:15027
Settings & set(const Processing::Filters::Noise::Repair &value)
Set Processing::Filters::Noise::Repair
Definition: Settings.h:15048
Settings & set(const Processing::Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Processing::Filters::Cluster::Removal::MaxNeighborDistance
Definition: Settings.h:14922
Settings & set(const Processing::Filters::Outlier::Removal &value)
Set Processing::Filters::Outlier::Removal
Definition: Settings.h:15083
Settings & set(const RegionOfInterest &value)
Set RegionOfInterest
Definition: Settings.h:15179
Settings & set(const Processing::Filters::Noise::Removal::Enabled &value)
Set Processing::Filters::Noise::Removal::Enabled
Definition: Settings.h:15034
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction
Definition: Settings.h:14950
const Settings::Processing::Color & get() const
Definition: Settings.h:15324
Settings & set(const Processing::Filters::Noise::Repair::Enabled &value)
Set Processing::Filters::Noise::Repair::Enabled
Definition: Settings.h:15055
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:15700
Settings & set(const Processing::Filters::Noise::Suppression::Enabled &value)
Set Processing::Filters::Noise::Suppression::Enabled
Definition: Settings.h:15069
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:15690
Settings & set(const Processing::Color::Balance::Green &value)
Set Processing::Color::Balance::Green
Definition: Settings.h:14859
Settings & set(const Processing::Filters &value)
Set Processing::Filters
Definition: Settings.h:14894
const RegionOfInterest & regionOfInterest() const
Get RegionOfInterest
Definition: Settings.h:15167
Settings & set(const Experimental &value)
Set Experimental
Definition: Settings.h:14805
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:15673
Settings & set(const Processing::Color::Balance::Blue &value)
Set Processing::Color::Balance::Blue
Definition: Settings.h:14852
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:15737
friend std::ostream & operator<<(std::ostream &stream, const Settings &value)
Operator to send the value as string to a stream
Definition: Settings.h:15928
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:15720
NodeType
Definition: NodeType.h:100
Ret validRange(const CameraInfo &cameraInfo)
Definition: SettingsInfo.h:227
The main Zivid namespace. All Zivid code is found here
Definition: Application.h:99
Array2D< T >::ConstIterator end(const Array2D< T > &array)
Iterator to the end of the array
Definition: Array2D.h:336
Array2D< T >::ConstIterator cbegin(const Array2D< T > &array)
Iterator to the beginning of the array
Definition: Array2D.h:315
Array2D< T >::ConstIterator cend(const Array2D< T > &array)
Iterator to the end of the array
Definition: Array2D.h:329
Array2D< T >::ConstIterator begin(const Array2D< T > &array)
Iterator to the beginning of the array
Definition: Array2D.h:322
Point with three coordinates as float
Definition: Point.h:105