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{ 17 };
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"
1427 static constexpr const char *path{
"Experimental/Engine" };
1430 static constexpr const char *name{
"Engine" };
1433 static constexpr const char *description{ R
"description(Set the Zivid Vision Engine to use.
1435The Phase Engine is the current default Zivid Vision Engine.
1437The Stripe Engine uses anti-reflection technology to suppress interreflection artifacts
1438and improve data quality on shiny objects like cylinders and chrome-plated parts.
1439Additional acquisition and processing time are required for the Stripe Engine.
1440The Stripe Engine is currently experimental, and may be changed and improved in the future.
1455 return { ValueType::phase, ValueType::stripe };
1463 : m_opt{ verifyValue(value) }
1490 return m_opt == other.m_opt;
1496 return m_opt != other.m_opt;
1506 void setFromString(
const std::string &value);
1508 constexpr ValueType
static verifyValue(
const ValueType &value)
1510 return value == ValueType::phase || value == ValueType::stripe
1512 :
throw std::invalid_argument{
1513 "Invalid value: Engine{ "
1514 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
1518 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
1520 friend struct DataModel::Detail::Befriend<
Engine>;
1542 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1543 typename std::enable_if<
1544 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1548 template<typename... Args>
1552 using namespace Zivid::Detail::TypeTraits;
1555 AllArgsDecayedAreUnique<Args...>::value,
1556 "Found duplicate types among the arguments passed to Experimental(...). "
1557 "Types should be listed at most once.");
1559 set(std::forward<Args>(args)...);
1573 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1575 template<typename... Args>
1579 using namespace Zivid::Detail::TypeTraits;
1581 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1583 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1586 AllArgsDecayedAreUnique<Args...>::value,
1587 "Found duplicate types among the arguments passed to set(...). "
1588 "Types should be listed at most once.");
1590 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1605 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1607 template<typename... Args>
1611 using namespace Zivid::Detail::TypeTraits;
1613 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1615 AllArgsAreDescendantNodes::value,
1616 "All arguments passed to copyWith(...) must be descendant nodes.");
1619 AllArgsDecayedAreUnique<Args...>::value,
1620 "Found duplicate types among the arguments passed to copyWith(...). "
1621 "Types should be listed at most once.");
1624 copy.
set(std::forward<Args>(args)...);
1649 typename std::enable_if<std::is_same<T, Settings::Experimental::Engine>::value,
int>::type = 0>
1655 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1662 template<
typename F>
1669 template<
typename F>
1691 void setFromString(
const std::string &value);
1693 void setFromString(
const std::string &fullPath,
const std::string &value);
1695 std::string getString(
const std::string &fullPath)
const;
1699 friend struct DataModel::Detail::Befriend<
Experimental>;
1712 static constexpr const char *path{
"Processing" };
1715 static constexpr const char *name{
"Processing" };
1718 static constexpr const char *description{
1719 R
"description(Settings related to processing of a capture, including filters and color balance)description"
1732 static constexpr const char *path{
"Processing/Color" };
1735 static constexpr const char *name{
"Color" };
1738 static constexpr const char *description{ R
"description(Color settings)description" };
1750 static constexpr const char *path{
"Processing/Color/Balance" };
1753 static constexpr const char *name{
"Balance" };
1756 static constexpr const char *description{ R
"description(Color balance settings)description" };
1768 static constexpr const char *path{
"Processing/Color/Balance/Blue" };
1771 static constexpr const char *name{
"Blue" };
1774 static constexpr const char *description{
1775 R
"description(Digital gain applied to blue channel)description"
1784 return { 1.0, 8.0 };
1791 explicit constexpr Blue(
double value)
1792 : m_opt{ verifyValue(value) }
1813 return m_opt == other.m_opt;
1819 return m_opt != other.m_opt;
1825 return m_opt < other.m_opt;
1831 return m_opt > other.m_opt;
1837 return m_opt <= other.m_opt;
1843 return m_opt >= other.m_opt;
1853 void setFromString(
const std::string &value);
1855 constexpr ValueType
static verifyValue(
const ValueType &value)
1859 :
throw std::out_of_range{
"Blue{ " + std::to_string(value)
1860 +
" } is not in range ["
1862 + std::to_string(
validRange().max()) +
"]" };
1865 Zivid::DataModel::Detail::Optional<double> m_opt;
1867 friend struct DataModel::Detail::Befriend<
Blue>;
1880 static constexpr const char *path{
"Processing/Color/Balance/Green" };
1883 static constexpr const char *name{
"Green" };
1886 static constexpr const char *description{
1887 R
"description(Digital gain applied to green channel)description"
1896 return { 1.0, 8.0 };
1904 : m_opt{ verifyValue(value) }
1925 return m_opt == other.m_opt;
1931 return m_opt != other.m_opt;
1937 return m_opt < other.m_opt;
1943 return m_opt > other.m_opt;
1949 return m_opt <= other.m_opt;
1955 return m_opt >= other.m_opt;
1965 void setFromString(
const std::string &value);
1967 constexpr ValueType
static verifyValue(
const ValueType &value)
1971 :
throw std::out_of_range{
"Green{ " + std::to_string(value)
1972 +
" } is not in range ["
1974 + std::to_string(
validRange().max()) +
"]" };
1977 Zivid::DataModel::Detail::Optional<double> m_opt;
1979 friend struct DataModel::Detail::Befriend<
Green>;
1992 static constexpr const char *path{
"Processing/Color/Balance/Red" };
1995 static constexpr const char *name{
"Red" };
1998 static constexpr const char *description{
1999 R
"description(Digital gain applied to red channel)description"
2008 return { 1.0, 8.0 };
2015 explicit constexpr Red(
double value)
2016 : m_opt{ verifyValue(value) }
2037 return m_opt == other.m_opt;
2043 return m_opt != other.m_opt;
2049 return m_opt < other.m_opt;
2055 return m_opt > other.m_opt;
2061 return m_opt <= other.m_opt;
2067 return m_opt >= other.m_opt;
2077 void setFromString(
const std::string &value);
2079 constexpr ValueType
static verifyValue(
const ValueType &value)
2083 :
throw std::out_of_range{
"Red{ " + std::to_string(value)
2084 +
" } is not in range ["
2086 + std::to_string(
validRange().max()) +
"]" };
2089 Zivid::DataModel::Detail::Optional<double> m_opt;
2091 friend struct DataModel::Detail::Befriend<
Red>;
2118 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2119 typename std::enable_if<
2120 Zivid::Detail::TypeTraits::
2121 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
2124 template<typename... Args>
2128 using namespace Zivid::Detail::TypeTraits;
2131 AllArgsDecayedAreUnique<Args...>::value,
2132 "Found duplicate types among the arguments passed to Balance(...). "
2133 "Types should be listed at most once.");
2135 set(std::forward<Args>(args)...);
2151 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2153 template<typename... Args>
2157 using namespace Zivid::Detail::TypeTraits;
2159 using AllArgsAreDescendantNodes =
2160 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2162 AllArgsAreDescendantNodes::value,
2163 "All arguments passed to set(...) must be descendant nodes.");
2166 AllArgsDecayedAreUnique<Args...>::value,
2167 "Found duplicate types among the arguments passed to set(...). "
2168 "Types should be listed at most once.");
2170 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2187 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2189 template<typename... Args>
2193 using namespace Zivid::Detail::TypeTraits;
2195 using AllArgsAreDescendantNodes =
2196 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2198 AllArgsAreDescendantNodes::value,
2199 "All arguments passed to copyWith(...) must be descendant nodes.");
2202 AllArgsDecayedAreUnique<Args...>::value,
2203 "Found duplicate types among the arguments passed to copyWith(...). "
2204 "Types should be listed at most once.");
2207 copy.
set(std::forward<Args>(args)...);
2270 typename std::enable_if<
2271 std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
2280 typename std::enable_if<
2281 std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
2291 enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
2297 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2303 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2309 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2316 template<
typename F>
2325 template<
typename F>
2349 void setFromString(
const std::string &value);
2351 void setFromString(
const std::string &fullPath,
const std::string &value);
2353 std::string getString(
const std::string &fullPath)
const;
2359 friend struct DataModel::Detail::Befriend<
Balance>;
2372 static constexpr const char *path{
"Processing/Color/Experimental" };
2375 static constexpr const char *name{
"Experimental" };
2378 static constexpr const char *description{
2379 R
"description(Experimental color settings. These may be renamed, moved or deleted in the future.)description"
2413 static constexpr const char *path{
"Processing/Color/Experimental/Mode" };
2416 static constexpr const char *name{
"Mode" };
2419 static constexpr const char *description{
2420 R
"description(This setting controls how the color image is computed.
2422`automatic` is the default option. `automatic` is identical to `useFirstAcquisition` for
2423single-acquisition captures and multi-acquisition captures when all the acquisitions have
2424identical (duplicated) acquisition settings. `automatic` is identical to `toneMapping` for
2425multi-acquisition HDR captures with differing acquisition settings.
2427`useFirstAcquisition` uses the color data acquired from the first acquisition provided. If
2428the capture consists of more than one acquisition, then the remaining acquisitions are not used
2429for the color image. No tone mapping is performed. This option provides the most control of
2430the color image, and the color values will be consistent over repeated captures with the same
2433`toneMapping` uses all the acquisitions to create one merged and normalized color image. For
2434HDR captures the dynamic range of the captured images is usually higher than the 8-bit color
2435image range. `toneMapping` will map the HDR color data to the 8-bit color output range by
2436applying a scaling factor. `toneMapping` can also be used for single-acquisition captures to
2437normalize the captured color image to the full 8-bit output. Note that when using `toneMapping`
2438mode the color values can be inconsistent over repeated captures if you move, add or remove
2439objects in the scene. For the most control over the colors, select the `useFirstAcquisition`
2448 useFirstAcquisition,
2458 return { ValueType::automatic, ValueType::useFirstAcquisition, ValueType::toneMapping };
2466 : m_opt{ verifyValue(value) }
2493 return m_opt == other.m_opt;
2499 return m_opt != other.m_opt;
2509 void setFromString(
const std::string &value);
2511 constexpr ValueType
static verifyValue(
const ValueType &value)
2513 return value == ValueType::automatic || value == ValueType::useFirstAcquisition
2514 || value == ValueType::toneMapping
2516 :
throw std::invalid_argument{
2517 "Invalid value: Mode{ "
2518 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
2523 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
2525 friend struct DataModel::Detail::Befriend<
Mode>;
2528 using Descendants = std::tuple<Settings::Processing::Color::Experimental::Mode>;
2547 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2548 typename std::enable_if<
2549 Zivid::Detail::TypeTraits::
2550 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
2553 template<typename... Args>
2557 using namespace Zivid::Detail::TypeTraits;
2560 AllArgsDecayedAreUnique<Args...>::value,
2561 "Found duplicate types among the arguments passed to Experimental(...). "
2562 "Types should be listed at most once.");
2564 set(std::forward<Args>(args)...);
2578 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2580 template<typename... Args>
2584 using namespace Zivid::Detail::TypeTraits;
2586 using AllArgsAreDescendantNodes =
2587 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2589 AllArgsAreDescendantNodes::value,
2590 "All arguments passed to set(...) must be descendant nodes.");
2593 AllArgsDecayedAreUnique<Args...>::value,
2594 "Found duplicate types among the arguments passed to set(...). "
2595 "Types should be listed at most once.");
2597 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2612 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2614 template<typename... Args>
2618 using namespace Zivid::Detail::TypeTraits;
2620 using AllArgsAreDescendantNodes =
2621 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2623 AllArgsAreDescendantNodes::value,
2624 "All arguments passed to copyWith(...) must be descendant nodes.");
2627 AllArgsDecayedAreUnique<Args...>::value,
2628 "Found duplicate types among the arguments passed to copyWith(...). "
2629 "Types should be listed at most once.");
2632 copy.
set(std::forward<Args>(args)...);
2657 typename std::enable_if<
2658 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
2665 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2672 template<
typename F>
2679 template<
typename F>
2701 void setFromString(
const std::string &value);
2703 void setFromString(
const std::string &fullPath,
const std::string &value);
2705 std::string getString(
const std::string &fullPath)
const;
2709 friend struct DataModel::Detail::Befriend<
Experimental>;
2724 static constexpr const char *path{
"Processing/Color/Gamma" };
2727 static constexpr const char *name{
"Gamma" };
2730 static constexpr const char *description{
2731 R
"description(Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma
2732greater than 1 makes the colors darker.
2742 return { 0.25, 1.5 };
2750 : m_opt{ verifyValue(value) }
2771 return m_opt == other.m_opt;
2777 return m_opt != other.m_opt;
2783 return m_opt < other.m_opt;
2789 return m_opt > other.m_opt;
2795 return m_opt <= other.m_opt;
2801 return m_opt >= other.m_opt;
2811 void setFromString(
const std::string &value);
2813 constexpr ValueType
static verifyValue(
const ValueType &value)
2817 :
throw std::out_of_range{
"Gamma{ " + std::to_string(value) +
" } is not in range ["
2819 + std::to_string(
validRange().max()) +
"]" };
2822 Zivid::DataModel::Detail::Optional<double> m_opt;
2824 friend struct DataModel::Detail::Befriend<
Gamma>;
2859 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2860 typename std::enable_if<
2861 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2865 template<typename... Args>
2869 using namespace Zivid::Detail::TypeTraits;
2872 AllArgsDecayedAreUnique<Args...>::value,
2873 "Found duplicate types among the arguments passed to Color(...). "
2874 "Types should be listed at most once.");
2876 set(std::forward<Args>(args)...);
2896 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2898 template<typename... Args>
2902 using namespace Zivid::Detail::TypeTraits;
2904 using AllArgsAreDescendantNodes =
2905 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2907 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2910 AllArgsDecayedAreUnique<Args...>::value,
2911 "Found duplicate types among the arguments passed to set(...). "
2912 "Types should be listed at most once.");
2914 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2935 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2937 template<typename... Args>
2941 using namespace Zivid::Detail::TypeTraits;
2943 using AllArgsAreDescendantNodes =
2944 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2946 AllArgsAreDescendantNodes::value,
2947 "All arguments passed to copyWith(...) must be descendant nodes.");
2950 AllArgsDecayedAreUnique<Args...>::value,
2951 "Found duplicate types among the arguments passed to copyWith(...). "
2952 "Types should be listed at most once.");
2955 copy.
set(std::forward<Args>(args)...);
2981 m_balance.
set(value);
2988 m_balance.
set(value);
2995 m_balance.
set(value);
3002 return m_experimental;
3008 return m_experimental;
3014 m_experimental = value;
3021 m_experimental.
set(value);
3046 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type =
3055 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::
3064 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
3073 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::
3082 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::
3086 return m_experimental;
3091 typename std::enable_if<
3092 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
3101 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
3107 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3113 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3116 return m_experimental;
3119 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3126 template<
typename F>
3135 template<
typename F>
3159 void setFromString(
const std::string &value);
3161 void setFromString(
const std::string &fullPath,
const std::string &value);
3163 std::string getString(
const std::string &fullPath)
const;
3169 friend struct DataModel::Detail::Befriend<
Color>;
3182 static constexpr const char *path{
"Processing/Filters" };
3185 static constexpr const char *name{
"Filters" };
3188 static constexpr const char *description{ R
"description(Filters)description" };
3201 static constexpr const char *path{
"Processing/Filters/Cluster" };
3204 static constexpr const char *name{
"Cluster" };
3207 static constexpr const char *description{
3208 R
"description(Removes floating points and small isolated clusters from the point cloud.
3222 static constexpr const char *path{
"Processing/Filters/Cluster/Removal" };
3225 static constexpr const char *name{
"Removal" };
3228 static constexpr const char *description{ R
"description(Removal)description" };
3240 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/Enabled" };
3243 static constexpr const char *name{
"Enabled" };
3246 static constexpr const char *description{ R
"description(Enabled)description" };
3256 return {
false,
true };
3285 return m_opt == other.m_opt;
3291 return m_opt != other.m_opt;
3301 void setFromString(
const std::string &value);
3303 Zivid::DataModel::Detail::Optional<bool> m_opt;
3305 friend struct DataModel::Detail::Befriend<
Enabled>;
3321 static constexpr const char *path{
3322 "Processing/Filters/Cluster/Removal/MaxNeighborDistance"
3326 static constexpr const char *name{
"MaxNeighborDistance" };
3329 static constexpr const char *description{
3330 R
"description(Maximum normalized distance between neighboring points that are still classified as
3331belonging to the same cluster. The default value (10.0) is optimal for most scenes.
3332On messy scenes turning this setting down helps removing more bad points.
3342 return { 4.0, 10.0 };
3350 : m_opt{ verifyValue(value) }
3371 return m_opt == other.m_opt;
3377 return m_opt != other.m_opt;
3383 return m_opt < other.m_opt;
3389 return m_opt > other.m_opt;
3395 return m_opt <= other.m_opt;
3401 return m_opt >= other.m_opt;
3411 void setFromString(
const std::string &value);
3413 constexpr ValueType
static verifyValue(
const ValueType &value)
3417 :
throw std::out_of_range{
"MaxNeighborDistance{ " + std::to_string(value)
3418 +
" } is not in range ["
3420 + std::to_string(
validRange().max()) +
"]" };
3423 Zivid::DataModel::Detail::Optional<double> m_opt;
3440 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/MinArea" };
3443 static constexpr const char *name{
"MinArea" };
3446 static constexpr const char *description{
3447 R
"description(Clusters with area below this threshold are removed by the filter.
3448The area is given in mm^2.
3458 return { 0.0, 1500.0 };
3466 : m_opt{ verifyValue(value) }
3487 return m_opt == other.m_opt;
3493 return m_opt != other.m_opt;
3499 return m_opt < other.m_opt;
3505 return m_opt > other.m_opt;
3511 return m_opt <= other.m_opt;
3517 return m_opt >= other.m_opt;
3527 void setFromString(
const std::string &value);
3529 constexpr ValueType
static verifyValue(
const ValueType &value)
3533 :
throw std::out_of_range{
"MinArea{ " + std::to_string(value)
3534 +
" } is not in range ["
3536 + std::to_string(
validRange().max()) +
"]" };
3539 Zivid::DataModel::Detail::Optional<double> m_opt;
3541 friend struct DataModel::Detail::Befriend<
MinArea>;
3568 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3569 typename std::enable_if<
3570 Zivid::Detail::TypeTraits::
3571 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
3574 template<typename... Args>
3578 using namespace Zivid::Detail::TypeTraits;
3581 AllArgsDecayedAreUnique<Args...>::value,
3582 "Found duplicate types among the arguments passed to Removal(...). "
3583 "Types should be listed at most once.");
3585 set(std::forward<Args>(args)...);
3601 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3603 template<typename... Args>
3607 using namespace Zivid::Detail::TypeTraits;
3609 using AllArgsAreDescendantNodes =
3610 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3612 AllArgsAreDescendantNodes::value,
3613 "All arguments passed to set(...) must be descendant nodes.");
3616 AllArgsDecayedAreUnique<Args...>::value,
3617 "Found duplicate types among the arguments passed to set(...). "
3618 "Types should be listed at most once.");
3620 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3637 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3639 template<typename... Args>
3643 using namespace Zivid::Detail::TypeTraits;
3645 using AllArgsAreDescendantNodes =
3646 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3648 AllArgsAreDescendantNodes::value,
3649 "All arguments passed to copyWith(...) must be descendant nodes.");
3652 AllArgsDecayedAreUnique<Args...>::value,
3653 "Found duplicate types among the arguments passed to copyWith(...). "
3654 "Types should be listed at most once.");
3657 copy.
set(std::forward<Args>(args)...);
3683 return m_maxNeighborDistance;
3689 return m_maxNeighborDistance;
3695 m_maxNeighborDistance = value;
3720 typename std::enable_if<
3721 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
3730 typename std::enable_if<
3731 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
3736 return m_maxNeighborDistance;
3741 typename std::enable_if<
3742 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
3749 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3755 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3758 return m_maxNeighborDistance;
3761 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3768 template<
typename F>
3772 f(m_maxNeighborDistance);
3777 template<
typename F>
3781 f(m_maxNeighborDistance);
3801 void setFromString(
const std::string &value);
3803 void setFromString(
const std::string &fullPath,
const std::string &value);
3805 std::string getString(
const std::string &fullPath)
const;
3808 MaxNeighborDistance m_maxNeighborDistance;
3811 friend struct DataModel::Detail::Befriend<
Removal>;
3840 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3841 typename std::enable_if<
3842 Zivid::Detail::TypeTraits::
3843 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
3846 template<typename... Args>
3850 using namespace Zivid::Detail::TypeTraits;
3853 AllArgsDecayedAreUnique<Args...>::value,
3854 "Found duplicate types among the arguments passed to Cluster(...). "
3855 "Types should be listed at most once.");
3857 set(std::forward<Args>(args)...);
3874 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3876 template<typename... Args>
3880 using namespace Zivid::Detail::TypeTraits;
3882 using AllArgsAreDescendantNodes =
3883 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3885 AllArgsAreDescendantNodes::value,
3886 "All arguments passed to set(...) must be descendant nodes.");
3889 AllArgsDecayedAreUnique<Args...>::value,
3890 "Found duplicate types among the arguments passed to set(...). "
3891 "Types should be listed at most once.");
3893 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3911 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3913 template<typename... Args>
3917 using namespace Zivid::Detail::TypeTraits;
3919 using AllArgsAreDescendantNodes =
3920 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3922 AllArgsAreDescendantNodes::value,
3923 "All arguments passed to copyWith(...) must be descendant nodes.");
3926 AllArgsDecayedAreUnique<Args...>::value,
3927 "Found duplicate types among the arguments passed to copyWith(...). "
3928 "Types should be listed at most once.");
3931 copy.
set(std::forward<Args>(args)...);
3957 m_removal.
set(value);
3964 m_removal.
set(value);
3971 m_removal.
set(value);
3977 typename std::enable_if<
3978 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
3987 typename std::enable_if<
3988 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
3997 typename std::enable_if<
3998 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
4008 typename std::enable_if<
4009 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
4016 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4023 template<
typename F>
4030 template<
typename F>
4052 void setFromString(
const std::string &value);
4054 void setFromString(
const std::string &fullPath,
const std::string &value);
4056 std::string getString(
const std::string &fullPath)
const;
4060 friend struct DataModel::Detail::Befriend<
Cluster>;
4073 static constexpr const char *path{
"Processing/Filters/Experimental" };
4076 static constexpr const char *name{
"Experimental" };
4079 static constexpr const char *description{
4080 R
"description(Experimental filters. These may be renamed, moved or deleted in the future.)description"
4097 static constexpr const char *path{
"Processing/Filters/Experimental/ContrastDistortion" };
4100 static constexpr const char *name{
"ContrastDistortion" };
4103 static constexpr const char *description{
4104 R
"description(Corrects artifacts that appear when imaging scenes with large texture gradients
4105or high contrast. These artifacts are caused by blurring in the lens. The filter
4106works best when aperture values are chosen such that the camera has quite good focus.
4107The filter also supports removing the points that experience a large correction.
4121 static constexpr const char *path{
4122 "Processing/Filters/Experimental/ContrastDistortion/Correction"
4126 static constexpr const char *name{
"Correction" };
4129 static constexpr const char *description{ R
"description(Correction)description" };
4141 static constexpr const char *path{
4142 "Processing/Filters/Experimental/ContrastDistortion/Correction/Enabled"
4146 static constexpr const char *name{
"Enabled" };
4149 static constexpr const char *description{ R
"description(Enabled)description" };
4159 return {
false,
true };
4188 return m_opt == other.m_opt;
4194 return m_opt != other.m_opt;
4204 void setFromString(
const std::string &value);
4206 Zivid::DataModel::Detail::Optional<bool> m_opt;
4208 friend struct DataModel::Detail::Befriend<
Enabled>;
4221 static constexpr const char *path{
4222 "Processing/Filters/Experimental/ContrastDistortion/Correction/Strength"
4226 static constexpr const char *name{
"Strength" };
4229 static constexpr const char *description{
4230 R
"description(Higher values gives more correction.)description"
4239 return { 0.0, 1.0 };
4247 : m_opt{ verifyValue(value) }
4268 return m_opt == other.m_opt;
4274 return m_opt != other.m_opt;
4280 return m_opt < other.m_opt;
4286 return m_opt > other.m_opt;
4292 return m_opt <= other.m_opt;
4298 return m_opt >= other.m_opt;
4308 void setFromString(
const std::string &value);
4310 constexpr ValueType
static verifyValue(
const ValueType &value)
4314 :
throw std::out_of_range{
"Strength{ " + std::to_string(value)
4315 +
" } is not in range ["
4317 + std::to_string(
validRange().max()) +
"]" };
4320 Zivid::DataModel::Detail::Optional<double> m_opt;
4322 friend struct DataModel::Detail::Befriend<
Strength>;
4347 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4348 typename std::enable_if<
4349 Zivid::Detail::TypeTraits::
4350 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
4353 template<typename... Args>
4357 using namespace Zivid::Detail::TypeTraits;
4360 AllArgsDecayedAreUnique<Args...>::value,
4361 "Found duplicate types among the arguments passed to Correction(...). "
4362 "Types should be listed at most once.");
4364 set(std::forward<Args>(args)...);
4379 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4381 template<typename... Args>
4385 using namespace Zivid::Detail::TypeTraits;
4387 using AllArgsAreDescendantNodes =
4388 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4390 AllArgsAreDescendantNodes::value,
4391 "All arguments passed to set(...) must be descendant nodes.");
4394 AllArgsDecayedAreUnique<Args...>::value,
4395 "Found duplicate types among the arguments passed to set(...). "
4396 "Types should be listed at most once.");
4398 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4414 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4416 template<typename... Args>
4420 using namespace Zivid::Detail::TypeTraits;
4422 using AllArgsAreDescendantNodes =
4423 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4425 AllArgsAreDescendantNodes::value,
4426 "All arguments passed to copyWith(...) must be descendant nodes.");
4429 AllArgsDecayedAreUnique<Args...>::value,
4430 "Found duplicate types among the arguments passed to copyWith(...). "
4431 "Types should be listed at most once.");
4434 copy.
set(std::forward<Args>(args)...);
4478 typename std::enable_if<
4481 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4492 typename std::enable_if<
4495 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4505 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4512 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4521 template<
typename F>
4529 template<
typename F>
4552 void setFromString(
const std::string &value);
4554 void setFromString(
const std::string &fullPath,
const std::string &value);
4556 std::string getString(
const std::string &fullPath)
const;
4561 friend struct DataModel::Detail::Befriend<
Correction>;
4574 static constexpr const char *path{
4575 "Processing/Filters/Experimental/ContrastDistortion/Removal"
4579 static constexpr const char *name{
"Removal" };
4582 static constexpr const char *description{ R
"description(Removal)description" };
4594 static constexpr const char *path{
4595 "Processing/Filters/Experimental/ContrastDistortion/Removal/Enabled"
4599 static constexpr const char *name{
"Enabled" };
4602 static constexpr const char *description{ R
"description(Enabled)description" };
4612 return {
false,
true };
4641 return m_opt == other.m_opt;
4647 return m_opt != other.m_opt;
4657 void setFromString(
const std::string &value);
4659 Zivid::DataModel::Detail::Optional<bool> m_opt;
4661 friend struct DataModel::Detail::Befriend<
Enabled>;
4674 static constexpr const char *path{
4675 "Processing/Filters/Experimental/ContrastDistortion/Removal/Threshold"
4679 static constexpr const char *name{
"Threshold" };
4682 static constexpr const char *description{
4683 R
"description(Higher values remove more points.)description"
4692 return { 0.0, 1.0 };
4700 : m_opt{ verifyValue(value) }
4721 return m_opt == other.m_opt;
4727 return m_opt != other.m_opt;
4733 return m_opt < other.m_opt;
4739 return m_opt > other.m_opt;
4745 return m_opt <= other.m_opt;
4751 return m_opt >= other.m_opt;
4761 void setFromString(
const std::string &value);
4763 constexpr ValueType
static verifyValue(
const ValueType &value)
4767 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
4768 +
" } is not in range ["
4770 + std::to_string(
validRange().max()) +
"]" };
4773 Zivid::DataModel::Detail::Optional<double> m_opt;
4775 friend struct DataModel::Detail::Befriend<
Threshold>;
4800 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4801 typename std::enable_if<
4802 Zivid::Detail::TypeTraits::
4803 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
4806 template<typename... Args>
4810 using namespace Zivid::Detail::TypeTraits;
4813 AllArgsDecayedAreUnique<Args...>::value,
4814 "Found duplicate types among the arguments passed to Removal(...). "
4815 "Types should be listed at most once.");
4817 set(std::forward<Args>(args)...);
4832 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4834 template<typename... Args>
4838 using namespace Zivid::Detail::TypeTraits;
4840 using AllArgsAreDescendantNodes =
4841 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4843 AllArgsAreDescendantNodes::value,
4844 "All arguments passed to set(...) must be descendant nodes.");
4847 AllArgsDecayedAreUnique<Args...>::value,
4848 "Found duplicate types among the arguments passed to set(...). "
4849 "Types should be listed at most once.");
4851 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4867 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4869 template<typename... Args>
4873 using namespace Zivid::Detail::TypeTraits;
4875 using AllArgsAreDescendantNodes =
4876 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4878 AllArgsAreDescendantNodes::value,
4879 "All arguments passed to copyWith(...) must be descendant nodes.");
4882 AllArgsDecayedAreUnique<Args...>::value,
4883 "Found duplicate types among the arguments passed to copyWith(...). "
4884 "Types should be listed at most once.");
4887 copy.
set(std::forward<Args>(args)...);
4925 m_threshold = value;
4931 typename std::enable_if<
4934 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4945 typename std::enable_if<
4948 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4957 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4964 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4972 template<
typename F>
4980 template<
typename F>
5003 void setFromString(
const std::string &value);
5005 void setFromString(
const std::string &fullPath,
const std::string &value);
5007 std::string getString(
const std::string &fullPath)
const;
5012 friend struct DataModel::Detail::Befriend<
Removal>;
5045 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5046 typename std::enable_if<
5047 Zivid::Detail::TypeTraits::
5048 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
5051 template<typename... Args>
5055 using namespace Zivid::Detail::TypeTraits;
5058 AllArgsDecayedAreUnique<Args...>::value,
5059 "Found duplicate types among the arguments passed to ContrastDistortion(...). "
5060 "Types should be listed at most once.");
5062 set(std::forward<Args>(args)...);
5081 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5083 template<typename... Args>
5087 using namespace Zivid::Detail::TypeTraits;
5089 using AllArgsAreDescendantNodes =
5090 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5092 AllArgsAreDescendantNodes::value,
5093 "All arguments passed to set(...) must be descendant nodes.");
5096 AllArgsDecayedAreUnique<Args...>::value,
5097 "Found duplicate types among the arguments passed to set(...). "
5098 "Types should be listed at most once.");
5100 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5120 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5122 template<typename... Args>
5126 using namespace Zivid::Detail::TypeTraits;
5128 using AllArgsAreDescendantNodes =
5129 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5131 AllArgsAreDescendantNodes::value,
5132 "All arguments passed to copyWith(...) must be descendant nodes.");
5135 AllArgsDecayedAreUnique<Args...>::value,
5136 "Found duplicate types among the arguments passed to copyWith(...). "
5137 "Types should be listed at most once.");
5140 copy.
set(std::forward<Args>(args)...);
5147 return m_correction;
5153 return m_correction;
5159 m_correction = value;
5166 m_correction.
set(value);
5173 m_correction.
set(value);
5199 m_removal.
set(value);
5206 m_removal.
set(value);
5212 typename std::enable_if<
5219 return m_correction;
5224 typename std::enable_if<
5227 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5233 return m_correction.get<
5239 typename std::enable_if<
5242 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5248 return m_correction.get<Settings::Processing::Filters::Experimental::ContrastDistortion::
5249 Correction::Strength>();
5254 typename std::enable_if<
5266 typename std::enable_if<
5275 return m_removal.get<
5281 typename std::enable_if<
5284 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
5290 return m_removal.get<
5294 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5297 return m_correction;
5300 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
5307 template<
typename F>
5315 template<
typename F>
5338 void setFromString(
const std::string &value);
5340 void setFromString(
const std::string &fullPath,
const std::string &value);
5342 std::string getString(
const std::string &fullPath)
const;
5344 Correction m_correction;
5361 static constexpr const char *path{
"Processing/Filters/Experimental/HoleFilling" };
5364 static constexpr const char *name{
"HoleFilling" };
5367 static constexpr const char *description{
5368 R
"description(Fills missing points considering a circular neighborhood.
5382 static constexpr const char *path{
"Processing/Filters/Experimental/HoleFilling/Enabled" };
5385 static constexpr const char *name{
"Enabled" };
5388 static constexpr const char *description{ R
"description(Enabled)description" };
5398 return {
false,
true };
5427 return m_opt == other.m_opt;
5433 return m_opt != other.m_opt;
5443 void setFromString(
const std::string &value);
5445 Zivid::DataModel::Detail::Optional<bool> m_opt;
5447 friend struct DataModel::Detail::Befriend<
Enabled>;
5463 static constexpr const char *path{
"Processing/Filters/Experimental/HoleFilling/HoleSize" };
5466 static constexpr const char *name{
"HoleSize" };
5469 static constexpr const char *description{
5470 R
"description(Relative diameter of holes to fill. Increasing this will fill more points, but require more
5471computation time. The maximum allowed hole size scales with distance, so that we allow
5472filling larger holes at greater distances, measured in mm.
5482 return { 0.0, 1.0 };
5490 : m_opt{ verifyValue(value) }
5511 return m_opt == other.m_opt;
5517 return m_opt != other.m_opt;
5523 return m_opt < other.m_opt;
5529 return m_opt > other.m_opt;
5535 return m_opt <= other.m_opt;
5541 return m_opt >= other.m_opt;
5551 void setFromString(
const std::string &value);
5553 constexpr ValueType
static verifyValue(
const ValueType &value)
5557 :
throw std::out_of_range{
"HoleSize{ " + std::to_string(value)
5558 +
" } is not in range ["
5560 + std::to_string(
validRange().max()) +
"]" };
5563 Zivid::DataModel::Detail::Optional<double> m_opt;
5565 friend struct DataModel::Detail::Befriend<
HoleSize>;
5582 static constexpr const char *path{
5583 "Processing/Filters/Experimental/HoleFilling/Strictness"
5587 static constexpr const char *name{
"Strictness" };
5590 static constexpr const char *description{
5591 R
"description(Level of strictness when considering if a point should be filled. A higher level of
5592strictness requires a missing point to be surrounded by valid points on more sides in
5593order to be filled. Increasing this will fill fewer points, but it will be less likely to
5594fill gaps that are not circular, for example between two edges.
5612 : m_opt{ verifyValue(value) }
5633 return m_opt == other.m_opt;
5639 return m_opt != other.m_opt;
5645 return m_opt < other.m_opt;
5651 return m_opt > other.m_opt;
5657 return m_opt <= other.m_opt;
5663 return m_opt >= other.m_opt;
5673 void setFromString(
const std::string &value);
5675 constexpr ValueType
static verifyValue(
const ValueType &value)
5679 :
throw std::out_of_range{
"Strictness{ " + std::to_string(value)
5680 +
" } is not in range ["
5682 + std::to_string(
validRange().max()) +
"]" };
5685 Zivid::DataModel::Detail::Optional<int32_t> m_opt;
5687 friend struct DataModel::Detail::Befriend<
Strictness>;
5714 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5715 typename std::enable_if<
5716 Zivid::Detail::TypeTraits::
5717 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
5720 template<typename... Args>
5724 using namespace Zivid::Detail::TypeTraits;
5727 AllArgsDecayedAreUnique<Args...>::value,
5728 "Found duplicate types among the arguments passed to HoleFilling(...). "
5729 "Types should be listed at most once.");
5731 set(std::forward<Args>(args)...);
5747 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5749 template<typename... Args>
5753 using namespace Zivid::Detail::TypeTraits;
5755 using AllArgsAreDescendantNodes =
5756 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5758 AllArgsAreDescendantNodes::value,
5759 "All arguments passed to set(...) must be descendant nodes.");
5762 AllArgsDecayedAreUnique<Args...>::value,
5763 "Found duplicate types among the arguments passed to set(...). "
5764 "Types should be listed at most once.");
5766 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5783 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5785 template<typename... Args>
5789 using namespace Zivid::Detail::TypeTraits;
5791 using AllArgsAreDescendantNodes =
5792 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5794 AllArgsAreDescendantNodes::value,
5795 "All arguments passed to copyWith(...) must be descendant nodes.");
5798 AllArgsDecayedAreUnique<Args...>::value,
5799 "Found duplicate types among the arguments passed to copyWith(...). "
5800 "Types should be listed at most once.");
5803 copy.
set(std::forward<Args>(args)...);
5848 return m_strictness;
5854 return m_strictness;
5860 m_strictness = value;
5866 typename std::enable_if<
5867 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::
5877 typename std::enable_if<
5878 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::
5888 typename std::enable_if<
5889 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::
5894 return m_strictness;
5897 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5903 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
5909 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
5912 return m_strictness;
5916 template<
typename F>
5925 template<
typename F>
5949 void setFromString(
const std::string &value);
5951 void setFromString(
const std::string &fullPath,
const std::string &value);
5953 std::string getString(
const std::string &fullPath)
const;
5956 HoleSize m_holeSize;
5959 friend struct DataModel::Detail::Befriend<
HoleFilling>;
6002 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6003 typename std::enable_if<
6004 Zivid::Detail::TypeTraits::
6005 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
6008 template<typename... Args>
6012 using namespace Zivid::Detail::TypeTraits;
6015 AllArgsDecayedAreUnique<Args...>::value,
6016 "Found duplicate types among the arguments passed to Experimental(...). "
6017 "Types should be listed at most once.");
6019 set(std::forward<Args>(args)...);
6043 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6045 template<typename... Args>
6049 using namespace Zivid::Detail::TypeTraits;
6051 using AllArgsAreDescendantNodes =
6052 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6054 AllArgsAreDescendantNodes::value,
6055 "All arguments passed to set(...) must be descendant nodes.");
6058 AllArgsDecayedAreUnique<Args...>::value,
6059 "Found duplicate types among the arguments passed to set(...). "
6060 "Types should be listed at most once.");
6062 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6087 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6089 template<typename... Args>
6093 using namespace Zivid::Detail::TypeTraits;
6095 using AllArgsAreDescendantNodes =
6096 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6098 AllArgsAreDescendantNodes::value,
6099 "All arguments passed to copyWith(...) must be descendant nodes.");
6102 AllArgsDecayedAreUnique<Args...>::value,
6103 "Found duplicate types among the arguments passed to copyWith(...). "
6104 "Types should be listed at most once.");
6107 copy.
set(std::forward<Args>(args)...);
6114 return m_contrastDistortion;
6120 return m_contrastDistortion;
6126 m_contrastDistortion = value;
6133 m_contrastDistortion.
set(value);
6140 m_contrastDistortion.
set(value);
6147 m_contrastDistortion.
set(value);
6154 m_contrastDistortion.
set(value);
6161 m_contrastDistortion.
set(value);
6168 m_contrastDistortion.
set(value);
6175 return m_holeFilling;
6181 return m_holeFilling;
6187 m_holeFilling = value;
6194 m_holeFilling.
set(value);
6201 m_holeFilling.
set(value);
6208 m_holeFilling.
set(value);
6214 typename std::enable_if<
6215 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
6219 return m_contrastDistortion;
6224 typename std::enable_if<
6231 return m_contrastDistortion
6237 typename std::enable_if<
6246 return m_contrastDistortion.get<
6252 typename std::enable_if<
6261 return m_contrastDistortion.get<
6267 typename std::enable_if<
6268 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
6273 return m_contrastDistortion
6279 typename std::enable_if<
6287 return m_contrastDistortion
6293 typename std::enable_if<
6302 return m_contrastDistortion
6308 typename std::enable_if<
6309 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling>::value,
6313 return m_holeFilling;
6318 typename std::enable_if<
6319 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::value,
6328 typename std::enable_if<
6329 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::value,
6338 typename std::enable_if<
6339 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::
6344 return m_holeFilling
6348 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6351 return m_contrastDistortion;
6354 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6357 return m_holeFilling;
6361 template<
typename F>
6364 f(m_contrastDistortion);
6369 template<
typename F>
6372 f(m_contrastDistortion);
6392 void setFromString(
const std::string &value);
6394 void setFromString(
const std::string &fullPath,
const std::string &value);
6396 std::string getString(
const std::string &fullPath)
const;
6398 ContrastDistortion m_contrastDistortion;
6401 friend struct DataModel::Detail::Befriend<
Experimental>;
6414 static constexpr const char *path{
"Processing/Filters/Noise" };
6417 static constexpr const char *name{
"Noise" };
6420 static constexpr const char *description{
6421 R
"description(Contains a filter that removes points with low signal-to-noise ratio (SNR))description"
6434 static constexpr const char *path{
"Processing/Filters/Noise/Removal" };
6437 static constexpr const char *name{
"Removal" };
6440 static constexpr const char *description{
6441 R
"description(Discard points with signal-to-noise ratio (SNR) values below a threshold)description"
6454 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Enabled" };
6457 static constexpr const char *name{
"Enabled" };
6460 static constexpr const char *description{
6461 R
"description(Enable or disable the SNR filter)description"
6472 return {
false,
true };
6501 return m_opt == other.m_opt;
6507 return m_opt != other.m_opt;
6517 void setFromString(
const std::string &value);
6519 Zivid::DataModel::Detail::Optional<bool> m_opt;
6521 friend struct DataModel::Detail::Befriend<
Enabled>;
6534 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Threshold" };
6537 static constexpr const char *name{
"Threshold" };
6540 static constexpr const char *description{
6541 R
"description(Discard points with signal-to-noise ratio (SNR) below the given value)description"
6550 return { 0.0, 100.0 };
6558 : m_opt{ verifyValue(value) }
6579 return m_opt == other.m_opt;
6585 return m_opt != other.m_opt;
6591 return m_opt < other.m_opt;
6597 return m_opt > other.m_opt;
6603 return m_opt <= other.m_opt;
6609 return m_opt >= other.m_opt;
6619 void setFromString(
const std::string &value);
6621 constexpr ValueType
static verifyValue(
const ValueType &value)
6625 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
6626 +
" } is not in range ["
6628 + std::to_string(
validRange().max()) +
"]" };
6631 Zivid::DataModel::Detail::Optional<double> m_opt;
6633 friend struct DataModel::Detail::Befriend<
Threshold>;
6658 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6659 typename std::enable_if<
6660 Zivid::Detail::TypeTraits::
6661 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
6664 template<typename... Args>
6668 using namespace Zivid::Detail::TypeTraits;
6671 AllArgsDecayedAreUnique<Args...>::value,
6672 "Found duplicate types among the arguments passed to Removal(...). "
6673 "Types should be listed at most once.");
6675 set(std::forward<Args>(args)...);
6690 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6692 template<typename... Args>
6696 using namespace Zivid::Detail::TypeTraits;
6698 using AllArgsAreDescendantNodes =
6699 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6701 AllArgsAreDescendantNodes::value,
6702 "All arguments passed to set(...) must be descendant nodes.");
6705 AllArgsDecayedAreUnique<Args...>::value,
6706 "Found duplicate types among the arguments passed to set(...). "
6707 "Types should be listed at most once.");
6709 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6725 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6727 template<typename... Args>
6731 using namespace Zivid::Detail::TypeTraits;
6733 using AllArgsAreDescendantNodes =
6734 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6736 AllArgsAreDescendantNodes::value,
6737 "All arguments passed to copyWith(...) must be descendant nodes.");
6740 AllArgsDecayedAreUnique<Args...>::value,
6741 "Found duplicate types among the arguments passed to copyWith(...). "
6742 "Types should be listed at most once.");
6745 copy.
set(std::forward<Args>(args)...);
6783 m_threshold = value;
6789 typename std::enable_if<
6790 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
6799 typename std::enable_if<
6800 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
6807 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6813 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6820 template<
typename F>
6828 template<
typename F>
6851 void setFromString(
const std::string &value);
6853 void setFromString(
const std::string &fullPath,
const std::string &value);
6855 std::string getString(
const std::string &fullPath)
const;
6860 friend struct DataModel::Detail::Befriend<
Removal>;
6887 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6888 typename std::enable_if<
6889 Zivid::Detail::TypeTraits::
6890 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
6893 template<typename... Args>
6897 using namespace Zivid::Detail::TypeTraits;
6900 AllArgsDecayedAreUnique<Args...>::value,
6901 "Found duplicate types among the arguments passed to Noise(...). "
6902 "Types should be listed at most once.");
6904 set(std::forward<Args>(args)...);
6920 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6922 template<typename... Args>
6926 using namespace Zivid::Detail::TypeTraits;
6928 using AllArgsAreDescendantNodes =
6929 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6931 AllArgsAreDescendantNodes::value,
6932 "All arguments passed to set(...) must be descendant nodes.");
6935 AllArgsDecayedAreUnique<Args...>::value,
6936 "Found duplicate types among the arguments passed to set(...). "
6937 "Types should be listed at most once.");
6939 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6956 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6958 template<typename... Args>
6962 using namespace Zivid::Detail::TypeTraits;
6964 using AllArgsAreDescendantNodes =
6965 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6967 AllArgsAreDescendantNodes::value,
6968 "All arguments passed to copyWith(...) must be descendant nodes.");
6971 AllArgsDecayedAreUnique<Args...>::value,
6972 "Found duplicate types among the arguments passed to copyWith(...). "
6973 "Types should be listed at most once.");
6976 copy.
set(std::forward<Args>(args)...);
7002 m_removal.
set(value);
7009 m_removal.
set(value);
7015 typename std::enable_if<
7016 std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
7025 typename std::enable_if<
7026 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
7035 typename std::enable_if<
7036 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
7043 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7050 template<
typename F>
7057 template<
typename F>
7079 void setFromString(
const std::string &value);
7081 void setFromString(
const std::string &fullPath,
const std::string &value);
7083 std::string getString(
const std::string &fullPath)
const;
7087 friend struct DataModel::Detail::Befriend<
Noise>;
7100 static constexpr const char *path{
"Processing/Filters/Outlier" };
7103 static constexpr const char *name{
"Outlier" };
7106 static constexpr const char *description{
7107 R
"description(Contains a filter that removes points with large Euclidean distance to neighboring points)description"
7120 static constexpr const char *path{
"Processing/Filters/Outlier/Removal" };
7123 static constexpr const char *name{
"Removal" };
7126 static constexpr const char *description{
7127 R
"description(Discard point if Euclidean distance to neighboring points is above a threshold)description"
7140 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Enabled" };
7143 static constexpr const char *name{
"Enabled" };
7146 static constexpr const char *description{
7147 R
"description(Enable or disable the outlier filter)description"
7158 return {
false,
true };
7187 return m_opt == other.m_opt;
7193 return m_opt != other.m_opt;
7203 void setFromString(
const std::string &value);
7205 Zivid::DataModel::Detail::Optional<bool> m_opt;
7207 friend struct DataModel::Detail::Befriend<
Enabled>;
7220 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Threshold" };
7223 static constexpr const char *name{
"Threshold" };
7226 static constexpr const char *description{
7227 R
"description(Discard point if Euclidean distance to neighboring points is above the given value)description"
7236 return { 0.0, 100.0 };
7244 : m_opt{ verifyValue(value) }
7265 return m_opt == other.m_opt;
7271 return m_opt != other.m_opt;
7277 return m_opt < other.m_opt;
7283 return m_opt > other.m_opt;
7289 return m_opt <= other.m_opt;
7295 return m_opt >= other.m_opt;
7305 void setFromString(
const std::string &value);
7307 constexpr ValueType
static verifyValue(
const ValueType &value)
7311 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
7312 +
" } is not in range ["
7314 + std::to_string(
validRange().max()) +
"]" };
7317 Zivid::DataModel::Detail::Optional<double> m_opt;
7319 friend struct DataModel::Detail::Befriend<
Threshold>;
7344 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7345 typename std::enable_if<
7346 Zivid::Detail::TypeTraits::
7347 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
7350 template<typename... Args>
7354 using namespace Zivid::Detail::TypeTraits;
7357 AllArgsDecayedAreUnique<Args...>::value,
7358 "Found duplicate types among the arguments passed to Removal(...). "
7359 "Types should be listed at most once.");
7361 set(std::forward<Args>(args)...);
7376 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7378 template<typename... Args>
7382 using namespace Zivid::Detail::TypeTraits;
7384 using AllArgsAreDescendantNodes =
7385 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7387 AllArgsAreDescendantNodes::value,
7388 "All arguments passed to set(...) must be descendant nodes.");
7391 AllArgsDecayedAreUnique<Args...>::value,
7392 "Found duplicate types among the arguments passed to set(...). "
7393 "Types should be listed at most once.");
7395 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7411 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7413 template<typename... Args>
7417 using namespace Zivid::Detail::TypeTraits;
7419 using AllArgsAreDescendantNodes =
7420 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7422 AllArgsAreDescendantNodes::value,
7423 "All arguments passed to copyWith(...) must be descendant nodes.");
7426 AllArgsDecayedAreUnique<Args...>::value,
7427 "Found duplicate types among the arguments passed to copyWith(...). "
7428 "Types should be listed at most once.");
7431 copy.
set(std::forward<Args>(args)...);
7469 m_threshold = value;
7475 typename std::enable_if<
7476 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
7485 typename std::enable_if<
7486 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
7493 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7499 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
7506 template<
typename F>
7514 template<
typename F>
7537 void setFromString(
const std::string &value);
7539 void setFromString(
const std::string &fullPath,
const std::string &value);
7541 std::string getString(
const std::string &fullPath)
const;
7546 friend struct DataModel::Detail::Befriend<
Removal>;
7573 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7574 typename std::enable_if<
7575 Zivid::Detail::TypeTraits::
7576 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
7579 template<typename... Args>
7583 using namespace Zivid::Detail::TypeTraits;
7586 AllArgsDecayedAreUnique<Args...>::value,
7587 "Found duplicate types among the arguments passed to Outlier(...). "
7588 "Types should be listed at most once.");
7590 set(std::forward<Args>(args)...);
7606 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7608 template<typename... Args>
7612 using namespace Zivid::Detail::TypeTraits;
7614 using AllArgsAreDescendantNodes =
7615 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7617 AllArgsAreDescendantNodes::value,
7618 "All arguments passed to set(...) must be descendant nodes.");
7621 AllArgsDecayedAreUnique<Args...>::value,
7622 "Found duplicate types among the arguments passed to set(...). "
7623 "Types should be listed at most once.");
7625 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7642 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7644 template<typename... Args>
7648 using namespace Zivid::Detail::TypeTraits;
7650 using AllArgsAreDescendantNodes =
7651 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7653 AllArgsAreDescendantNodes::value,
7654 "All arguments passed to copyWith(...) must be descendant nodes.");
7657 AllArgsDecayedAreUnique<Args...>::value,
7658 "Found duplicate types among the arguments passed to copyWith(...). "
7659 "Types should be listed at most once.");
7662 copy.
set(std::forward<Args>(args)...);
7688 m_removal.
set(value);
7695 m_removal.
set(value);
7701 typename std::enable_if<
7702 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
7711 typename std::enable_if<
7712 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
7721 typename std::enable_if<
7722 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
7729 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7736 template<
typename F>
7743 template<
typename F>
7765 void setFromString(
const std::string &value);
7767 void setFromString(
const std::string &fullPath,
const std::string &value);
7769 std::string getString(
const std::string &fullPath)
const;
7773 friend struct DataModel::Detail::Befriend<
Outlier>;
7786 static constexpr const char *path{
"Processing/Filters/Reflection" };
7789 static constexpr const char *name{
"Reflection" };
7792 static constexpr const char *description{
7793 R
"description(Contains a filter that removes points likely introduced by reflections (useful for shiny materials))description"
7806 static constexpr const char *path{
"Processing/Filters/Reflection/Removal" };
7809 static constexpr const char *name{
"Removal" };
7812 static constexpr const char *description{
7813 R
"description(Discard points likely introduced by reflections (useful for shiny materials))description"
7826 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Enabled" };
7829 static constexpr const char *name{
"Enabled" };
7832 static constexpr const char *description{
7833 R
"description(Enable or disable the reflection filter. Note that this filter is computationally intensive and may affect the frame rate)description"
7844 return {
false,
true };
7873 return m_opt == other.m_opt;
7879 return m_opt != other.m_opt;
7889 void setFromString(
const std::string &value);
7891 Zivid::DataModel::Detail::Optional<bool> m_opt;
7893 friend struct DataModel::Detail::Befriend<
Enabled>;
7906 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Experimental" };
7909 static constexpr const char *name{
"Experimental" };
7912 static constexpr const char *description{
7913 R
"description(Experimental reflection filter related settings)description"
7933 static constexpr const char *path{
7934 "Processing/Filters/Reflection/Removal/Experimental/Mode"
7938 static constexpr const char *name{
"Mode" };
7941 static constexpr const char *description{
7942 R
"description(The reflection filter has two modes: Local and Global. Local mode preserves more 3D data
7943on thinner objects, generally removes more reflection artifacts and processes faster than
7944the Global filter. The Global filter is generally better at removing outlier points in
7945the point cloud. It is advised to use the Outlier filter together with the Local
7948Global mode was introduced in SDK 1.0 and Local mode was introduced in SDK 2.7.
7964 return { ValueType::global, ValueType::local };
7972 : m_opt{ verifyValue(value) }
7999 return m_opt == other.m_opt;
8005 return m_opt != other.m_opt;
8015 void setFromString(
const std::string &value);
8017 constexpr ValueType
static verifyValue(
const ValueType &value)
8019 return value == ValueType::global || value == ValueType::local
8021 :
throw std::invalid_argument{
8022 "Invalid value: Mode{ "
8024 static_cast<std::underlying_type<ValueType>::type
>(value))
8029 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
8031 friend struct DataModel::Detail::Befriend<
Mode>;
8035 std::tuple<Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>;
8054 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8055 typename std::enable_if<
8056 Zivid::Detail::TypeTraits::
8057 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
8060 template<typename... Args>
8064 using namespace Zivid::Detail::TypeTraits;
8067 AllArgsDecayedAreUnique<Args...>::value,
8068 "Found duplicate types among the arguments passed to Experimental(...). "
8069 "Types should be listed at most once.");
8071 set(std::forward<Args>(args)...);
8085 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8087 template<typename... Args>
8091 using namespace Zivid::Detail::TypeTraits;
8093 using AllArgsAreDescendantNodes =
8094 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8096 AllArgsAreDescendantNodes::value,
8097 "All arguments passed to set(...) must be descendant nodes.");
8100 AllArgsDecayedAreUnique<Args...>::value,
8101 "Found duplicate types among the arguments passed to set(...). "
8102 "Types should be listed at most once.");
8104 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8119 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8121 template<typename... Args>
8125 using namespace Zivid::Detail::TypeTraits;
8127 using AllArgsAreDescendantNodes =
8128 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8130 AllArgsAreDescendantNodes::value,
8131 "All arguments passed to copyWith(...) must be descendant nodes.");
8134 AllArgsDecayedAreUnique<Args...>::value,
8135 "Found duplicate types among the arguments passed to copyWith(...). "
8136 "Types should be listed at most once.");
8139 copy.
set(std::forward<Args>(args)...);
8164 typename std::enable_if<
8174 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8181 template<
typename F>
8188 template<
typename F>
8210 void setFromString(
const std::string &value);
8212 void setFromString(
const std::string &fullPath,
const std::string &value);
8214 std::string getString(
const std::string &fullPath)
const;
8218 friend struct DataModel::Detail::Befriend<
Experimental>;
8245 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8246 typename std::enable_if<
8247 Zivid::Detail::TypeTraits::
8248 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
8251 template<typename... Args>
8255 using namespace Zivid::Detail::TypeTraits;
8258 AllArgsDecayedAreUnique<Args...>::value,
8259 "Found duplicate types among the arguments passed to Removal(...). "
8260 "Types should be listed at most once.");
8262 set(std::forward<Args>(args)...);
8278 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8280 template<typename... Args>
8284 using namespace Zivid::Detail::TypeTraits;
8286 using AllArgsAreDescendantNodes =
8287 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8289 AllArgsAreDescendantNodes::value,
8290 "All arguments passed to set(...) must be descendant nodes.");
8293 AllArgsDecayedAreUnique<Args...>::value,
8294 "Found duplicate types among the arguments passed to set(...). "
8295 "Types should be listed at most once.");
8297 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8314 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8316 template<typename... Args>
8320 using namespace Zivid::Detail::TypeTraits;
8322 using AllArgsAreDescendantNodes =
8323 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8325 AllArgsAreDescendantNodes::value,
8326 "All arguments passed to copyWith(...) must be descendant nodes.");
8329 AllArgsDecayedAreUnique<Args...>::value,
8330 "Found duplicate types among the arguments passed to copyWith(...). "
8331 "Types should be listed at most once.");
8334 copy.
set(std::forward<Args>(args)...);
8360 return m_experimental;
8366 return m_experimental;
8372 m_experimental = value;
8379 m_experimental.
set(value);
8385 typename std::enable_if<
8386 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
8395 typename std::enable_if<
8396 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::
8401 return m_experimental;
8406 typename std::enable_if<
8413 return m_experimental
8417 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8423 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
8426 return m_experimental;
8430 template<
typename F>
8438 template<
typename F>
8461 void setFromString(
const std::string &value);
8463 void setFromString(
const std::string &fullPath,
const std::string &value);
8465 std::string getString(
const std::string &fullPath)
const;
8470 friend struct DataModel::Detail::Befriend<
Removal>;
8499 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8500 typename std::enable_if<
8501 Zivid::Detail::TypeTraits::
8502 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
8505 template<typename... Args>
8509 using namespace Zivid::Detail::TypeTraits;
8512 AllArgsDecayedAreUnique<Args...>::value,
8513 "Found duplicate types among the arguments passed to Reflection(...). "
8514 "Types should be listed at most once.");
8516 set(std::forward<Args>(args)...);
8533 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8535 template<typename... Args>
8539 using namespace Zivid::Detail::TypeTraits;
8541 using AllArgsAreDescendantNodes =
8542 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8544 AllArgsAreDescendantNodes::value,
8545 "All arguments passed to set(...) must be descendant nodes.");
8548 AllArgsDecayedAreUnique<Args...>::value,
8549 "Found duplicate types among the arguments passed to set(...). "
8550 "Types should be listed at most once.");
8552 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8570 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8572 template<typename... Args>
8576 using namespace Zivid::Detail::TypeTraits;
8578 using AllArgsAreDescendantNodes =
8579 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8581 AllArgsAreDescendantNodes::value,
8582 "All arguments passed to copyWith(...) must be descendant nodes.");
8585 AllArgsDecayedAreUnique<Args...>::value,
8586 "Found duplicate types among the arguments passed to copyWith(...). "
8587 "Types should be listed at most once.");
8590 copy.
set(std::forward<Args>(args)...);
8616 m_removal.
set(value);
8623 m_removal.
set(value);
8630 m_removal.
set(value);
8636 typename std::enable_if<
8637 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
8646 typename std::enable_if<
8647 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
8656 typename std::enable_if<
8657 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
8666 typename std::enable_if<
8667 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::
8675 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8682 template<
typename F>
8689 template<
typename F>
8711 void setFromString(
const std::string &value);
8713 void setFromString(
const std::string &fullPath,
const std::string &value);
8715 std::string getString(
const std::string &fullPath)
const;
8719 friend struct DataModel::Detail::Befriend<
Reflection>;
8732 static constexpr const char *path{
"Processing/Filters/Smoothing" };
8735 static constexpr const char *name{
"Smoothing" };
8738 static constexpr const char *description{ R
"description(Smoothing filters)description" };
8750 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian" };
8753 static constexpr const char *name{
"Gaussian" };
8756 static constexpr const char *description{
8757 R
"description(Gaussian smoothing of the point cloud)description"
8770 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Enabled" };
8773 static constexpr const char *name{
"Enabled" };
8776 static constexpr const char *description{
8777 R
"description(Enable or disable the smoothing filter)description"
8788 return {
false,
true };
8817 return m_opt == other.m_opt;
8823 return m_opt != other.m_opt;
8833 void setFromString(
const std::string &value);
8835 Zivid::DataModel::Detail::Optional<bool> m_opt;
8837 friend struct DataModel::Detail::Befriend<
Enabled>;
8850 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Sigma" };
8853 static constexpr const char *name{
"Sigma" };
8856 static constexpr const char *description{
8857 R
"description(Higher values result in smoother point clouds (Standard deviation of the filter coefficients))description"
8874 : m_opt{ verifyValue(value) }
8895 return m_opt == other.m_opt;
8901 return m_opt != other.m_opt;
8907 return m_opt < other.m_opt;
8913 return m_opt > other.m_opt;
8919 return m_opt <= other.m_opt;
8925 return m_opt >= other.m_opt;
8935 void setFromString(
const std::string &value);
8937 constexpr ValueType
static verifyValue(
const ValueType &value)
8941 :
throw std::out_of_range{
"Sigma{ " + std::to_string(value)
8942 +
" } is not in range ["
8944 + std::to_string(
validRange().max()) +
"]" };
8947 Zivid::DataModel::Detail::Optional<double> m_opt;
8949 friend struct DataModel::Detail::Befriend<
Sigma>;
8974 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8975 typename std::enable_if<
8976 Zivid::Detail::TypeTraits::
8977 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
8980 template<typename... Args>
8984 using namespace Zivid::Detail::TypeTraits;
8987 AllArgsDecayedAreUnique<Args...>::value,
8988 "Found duplicate types among the arguments passed to Gaussian(...). "
8989 "Types should be listed at most once.");
8991 set(std::forward<Args>(args)...);
9006 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9008 template<typename... Args>
9012 using namespace Zivid::Detail::TypeTraits;
9014 using AllArgsAreDescendantNodes =
9015 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9017 AllArgsAreDescendantNodes::value,
9018 "All arguments passed to set(...) must be descendant nodes.");
9021 AllArgsDecayedAreUnique<Args...>::value,
9022 "Found duplicate types among the arguments passed to set(...). "
9023 "Types should be listed at most once.");
9025 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9041 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9043 template<typename... Args>
9047 using namespace Zivid::Detail::TypeTraits;
9049 using AllArgsAreDescendantNodes =
9050 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9052 AllArgsAreDescendantNodes::value,
9053 "All arguments passed to copyWith(...) must be descendant nodes.");
9056 AllArgsDecayedAreUnique<Args...>::value,
9057 "Found duplicate types among the arguments passed to copyWith(...). "
9058 "Types should be listed at most once.");
9061 copy.
set(std::forward<Args>(args)...);
9105 typename std::enable_if<
9106 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9115 typename std::enable_if<
9116 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9123 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9129 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9136 template<
typename F>
9144 template<
typename F>
9167 void setFromString(
const std::string &value);
9169 void setFromString(
const std::string &fullPath,
const std::string &value);
9171 std::string getString(
const std::string &fullPath)
const;
9176 friend struct DataModel::Detail::Befriend<
Gaussian>;
9203 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9204 typename std::enable_if<
9205 Zivid::Detail::TypeTraits::
9206 AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
9209 template<typename... Args>
9213 using namespace Zivid::Detail::TypeTraits;
9216 AllArgsDecayedAreUnique<Args...>::value,
9217 "Found duplicate types among the arguments passed to Smoothing(...). "
9218 "Types should be listed at most once.");
9220 set(std::forward<Args>(args)...);
9236 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9238 template<typename... Args>
9242 using namespace Zivid::Detail::TypeTraits;
9244 using AllArgsAreDescendantNodes =
9245 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9247 AllArgsAreDescendantNodes::value,
9248 "All arguments passed to set(...) must be descendant nodes.");
9251 AllArgsDecayedAreUnique<Args...>::value,
9252 "Found duplicate types among the arguments passed to set(...). "
9253 "Types should be listed at most once.");
9255 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9272 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9274 template<typename... Args>
9278 using namespace Zivid::Detail::TypeTraits;
9280 using AllArgsAreDescendantNodes =
9281 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9283 AllArgsAreDescendantNodes::value,
9284 "All arguments passed to copyWith(...) must be descendant nodes.");
9287 AllArgsDecayedAreUnique<Args...>::value,
9288 "Found duplicate types among the arguments passed to copyWith(...). "
9289 "Types should be listed at most once.");
9292 copy.
set(std::forward<Args>(args)...);
9318 m_gaussian.
set(value);
9325 m_gaussian.
set(value);
9331 typename std::enable_if<
9332 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
9341 typename std::enable_if<
9342 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9351 typename std::enable_if<
9352 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9359 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9366 template<
typename F>
9373 template<
typename F>
9395 void setFromString(
const std::string &value);
9397 void setFromString(
const std::string &fullPath,
const std::string &value);
9399 std::string getString(
const std::string &fullPath)
const;
9403 friend struct DataModel::Detail::Befriend<
Smoothing>;
9492 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9493 typename std::enable_if<
9494 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
9498 template<typename... Args>
9502 using namespace Zivid::Detail::TypeTraits;
9505 AllArgsDecayedAreUnique<Args...>::value,
9506 "Found duplicate types among the arguments passed to Filters(...). "
9507 "Types should be listed at most once.");
9509 set(std::forward<Args>(args)...);
9556 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9558 template<typename... Args>
9562 using namespace Zivid::Detail::TypeTraits;
9564 using AllArgsAreDescendantNodes =
9565 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9567 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
9570 AllArgsDecayedAreUnique<Args...>::value,
9571 "Found duplicate types among the arguments passed to set(...). "
9572 "Types should be listed at most once.");
9574 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9622 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9624 template<typename... Args>
9628 using namespace Zivid::Detail::TypeTraits;
9630 using AllArgsAreDescendantNodes =
9631 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9633 AllArgsAreDescendantNodes::value,
9634 "All arguments passed to copyWith(...) must be descendant nodes.");
9637 AllArgsDecayedAreUnique<Args...>::value,
9638 "Found duplicate types among the arguments passed to copyWith(...). "
9639 "Types should be listed at most once.");
9642 copy.
set(std::forward<Args>(args)...);
9668 m_cluster.
set(value);
9675 m_cluster.
set(value);
9682 m_cluster.
set(value);
9689 m_cluster.
set(value);
9696 return m_experimental;
9702 return m_experimental;
9708 m_experimental = value;
9715 m_experimental.
set(value);
9722 m_experimental.
set(value);
9729 m_experimental.
set(value);
9736 m_experimental.
set(value);
9743 m_experimental.
set(value);
9750 m_experimental.
set(value);
9757 m_experimental.
set(value);
9764 m_experimental.
set(value);
9771 m_experimental.
set(value);
9778 m_experimental.
set(value);
9785 m_experimental.
set(value);
9851 m_outlier.
set(value);
9858 m_outlier.
set(value);
9865 m_outlier.
set(value);
9872 return m_reflection;
9878 return m_reflection;
9884 m_reflection = value;
9891 m_reflection.
set(value);
9898 m_reflection.
set(value);
9905 m_reflection.
set(value);
9912 m_reflection.
set(value);
9931 m_smoothing = value;
9938 m_smoothing.
set(value);
9945 m_smoothing.
set(value);
9952 m_smoothing.
set(value);
9958 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type =
9967 typename std::enable_if<
9968 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
9977 typename std::enable_if<
9978 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
9987 typename std::enable_if<
9988 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
9997 typename std::enable_if<
9998 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
10007 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
10011 return m_experimental;
10016 typename std::enable_if<
10017 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
10026 typename std::enable_if<
10027 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::
10032 return m_experimental
10038 typename std::enable_if<
10046 return m_experimental
10052 typename std::enable_if<
10060 return m_experimental
10066 typename std::enable_if<
10067 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
10072 return m_experimental
10078 typename std::enable_if<
10085 return m_experimental
10091 typename std::enable_if<
10098 return m_experimental
10104 typename std::enable_if<
10105 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling>::value,
10114 typename std::enable_if<
10115 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::value,
10124 typename std::enable_if<
10125 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::value,
10134 typename std::enable_if<
10135 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::value,
10144 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type =
10154 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type = 0>
10162 typename std::enable_if<
10163 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
10172 typename std::enable_if<
10173 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
10182 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type =
10191 typename std::enable_if<
10192 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
10201 typename std::enable_if<
10202 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
10211 typename std::enable_if<
10212 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
10221 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::
10225 return m_reflection;
10230 typename std::enable_if<
10231 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
10240 typename std::enable_if<
10241 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
10250 typename std::enable_if<
10251 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
10260 typename std::enable_if<
10261 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::value,
10270 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::
10274 return m_smoothing;
10279 typename std::enable_if<
10280 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
10289 typename std::enable_if<
10290 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
10299 typename std::enable_if<
10300 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
10307 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
10313 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
10316 return m_experimental;
10319 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
10325 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
10331 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
10334 return m_reflection;
10337 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
10340 return m_smoothing;
10344 template<
typename F>
10356 template<
typename F>
10379 return stream << value.
toString();
10383 void setFromString(
const std::string &value);
10385 void setFromString(
const std::string &fullPath,
const std::string &value);
10387 std::string getString(
const std::string &fullPath)
const;
10393 Reflection m_reflection;
10396 friend struct DataModel::Detail::Befriend<
Filters>;
10503 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
10504 typename std::enable_if<
10505 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
10509 template<typename... Args>
10513 using namespace Zivid::Detail::TypeTraits;
10516 AllArgsDecayedAreUnique<Args...>::value,
10517 "Found duplicate types among the arguments passed to Processing(...). "
10518 "Types should be listed at most once.");
10520 set(std::forward<Args>(args)...);
10576 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
10578 template<typename... Args>
10582 using namespace Zivid::Detail::TypeTraits;
10584 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10586 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
10589 AllArgsDecayedAreUnique<Args...>::value,
10590 "Found duplicate types among the arguments passed to set(...). "
10591 "Types should be listed at most once.");
10593 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
10650 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
10652 template<typename... Args>
10656 using namespace Zivid::Detail::TypeTraits;
10658 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10660 AllArgsAreDescendantNodes::value,
10661 "All arguments passed to copyWith(...) must be descendant nodes.");
10664 AllArgsDecayedAreUnique<Args...>::value,
10665 "Found duplicate types among the arguments passed to copyWith(...). "
10666 "Types should be listed at most once.");
10668 auto copy{ *
this };
10669 copy.
set(std::forward<Args>(args)...);
10695 m_color.
set(value);
10702 m_color.
set(value);
10709 m_color.
set(value);
10716 m_color.
set(value);
10723 m_color.
set(value);
10730 m_color.
set(value);
10737 m_color.
set(value);
10763 m_filters.
set(value);
10770 m_filters.
set(value);
10777 m_filters.
set(value);
10784 m_filters.
set(value);
10791 m_filters.
set(value);
10798 m_filters.
set(value);
10805 m_filters.
set(value);
10812 m_filters.
set(value);
10819 m_filters.
set(value);
10826 m_filters.
set(value);
10833 m_filters.
set(value);
10840 m_filters.
set(value);
10847 m_filters.
set(value);
10854 m_filters.
set(value);
10861 m_filters.
set(value);
10868 m_filters.
set(value);
10875 m_filters.
set(value);
10882 m_filters.
set(value);
10889 m_filters.
set(value);
10896 m_filters.
set(value);
10903 m_filters.
set(value);
10910 m_filters.
set(value);
10917 m_filters.
set(value);
10924 m_filters.
set(value);
10931 m_filters.
set(value);
10938 m_filters.
set(value);
10945 m_filters.
set(value);
10952 m_filters.
set(value);
10959 m_filters.
set(value);
10966 m_filters.
set(value);
10973 m_filters.
set(value);
10980 m_filters.
set(value);
10987 m_filters.
set(value);
10994 m_filters.
set(value);
11000 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
11008 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
11016 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type =
11025 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
11034 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type =
11043 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type =
11052 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
11061 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
11069 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
11077 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
11085 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
11094 typename std::enable_if<
11095 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
11104 typename std::enable_if<
11105 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
11114 typename std::enable_if<
11115 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
11124 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
11133 typename std::enable_if<
11134 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
11143 typename std::enable_if<
11144 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
11153 typename std::enable_if<
11166 typename std::enable_if<
11179 typename std::enable_if<
11180 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
11189 typename std::enable_if<
11190 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
11201 typename std::enable_if<
11214 typename std::enable_if<
11215 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling>::value,
11224 typename std::enable_if<
11225 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::value,
11234 typename std::enable_if<
11235 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::value,
11244 typename std::enable_if<
11245 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::value,
11254 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
11262 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::
11271 typename std::enable_if<
11272 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
11281 typename std::enable_if<
11282 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
11291 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
11299 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
11308 typename std::enable_if<
11309 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
11318 typename std::enable_if<
11319 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
11328 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type =
11337 typename std::enable_if<
11338 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
11347 typename std::enable_if<
11348 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
11357 typename std::enable_if<
11358 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
11367 typename std::enable_if<
11368 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::value,
11377 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type =
11386 typename std::enable_if<
11387 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
11396 typename std::enable_if<
11397 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
11406 typename std::enable_if<
11407 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
11414 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
11420 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
11427 template<
typename F>
11435 template<
typename F>
11454 return stream << value.
toString();
11458 void setFromString(
const std::string &value);
11460 void setFromString(
const std::string &fullPath,
const std::string &value);
11462 std::string getString(
const std::string &fullPath)
const;
11467 friend struct DataModel::Detail::Befriend<
Processing>;
11481 static constexpr const char *path{
"RegionOfInterest" };
11484 static constexpr const char *name{
"RegionOfInterest" };
11487 static constexpr const char *description{ R
"description(Removes points outside the region of interest.
11510 static constexpr const char *path{
"RegionOfInterest/Box" };
11513 static constexpr const char *name{
"Box" };
11516 static constexpr const char *description{ R
"description(Removes the points outside the box.
11518The box is defined by three points: O, A and B. These points define two vectors,
11519OA that goes from PointO to PointA, and OB that goes from PointO to PointB.
11520This gives 4 points O, A, B and (O + OA + OB), that together form a
11521parallelogram in 3D.
11523Two extents can be provided, to extrude the parallelogram along the surface
11524normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped).
11525The surface normal vector is defined by the cross product OA x OB.
11538 static constexpr const char *path{
"RegionOfInterest/Box/Enabled" };
11541 static constexpr const char *name{
"Enabled" };
11544 static constexpr const char *description{ R
"description(Enabled)description" };
11554 return {
false,
true };
11583 return m_opt == other.m_opt;
11589 return m_opt != other.m_opt;
11595 return stream << value.
toString();
11599 void setFromString(
const std::string &value);
11601 Zivid::DataModel::Detail::Optional<bool> m_opt;
11603 friend struct DataModel::Detail::Befriend<
Enabled>;
11616 static constexpr const char *path{
"RegionOfInterest/Box/Extents" };
11619 static constexpr const char *name{
"Extents" };
11622 static constexpr const char *description{
11623 R
"description(Two points on the normal describing the direction and distance from the plane from which the normal is derived.)description"
11653 explicit constexpr Extents(
double minValue,
double maxValue)
11660 return m_opt == other.m_opt;
11666 return m_opt != other.m_opt;
11672 return stream << value.
toString();
11676 void setFromString(
const std::string &value);
11678 Zivid::DataModel::Detail::Optional<Zivid::Range<double>> m_opt;
11680 friend struct DataModel::Detail::Befriend<
Extents>;
11693 static constexpr const char *path{
"RegionOfInterest/Box/PointA" };
11696 static constexpr const char *name{
"PointA" };
11699 static constexpr const char *description{
11700 R
"description(A point such that the vector from PointO to PointA describes the first edge of the parallelogram)description"
11730 explicit constexpr PointA(
float x,
float y,
float z)
11737 return m_opt == other.m_opt;
11743 return m_opt != other.m_opt;
11749 return stream << value.
toString();
11753 void setFromString(
const std::string &value);
11755 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
11757 friend struct DataModel::Detail::Befriend<
PointA>;
11770 static constexpr const char *path{
"RegionOfInterest/Box/PointB" };
11773 static constexpr const char *name{
"PointB" };
11776 static constexpr const char *description{
11777 R
"description(A point such that the vector from PointO to PointB describes the second edge of the parallelogram)description"
11807 explicit constexpr PointB(
float x,
float y,
float z)
11814 return m_opt == other.m_opt;
11820 return m_opt != other.m_opt;
11826 return stream << value.
toString();
11830 void setFromString(
const std::string &value);
11832 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
11834 friend struct DataModel::Detail::Befriend<
PointB>;
11847 static constexpr const char *path{
"RegionOfInterest/Box/PointO" };
11850 static constexpr const char *name{
"PointO" };
11853 static constexpr const char *description{
11854 R
"description(The point at the intersection of two adjacent edges defining a parallelogram)description"
11884 explicit constexpr PointO(
float x,
float y,
float z)
11891 return m_opt == other.m_opt;
11897 return m_opt != other.m_opt;
11903 return stream << value.
toString();
11907 void setFromString(
const std::string &value);
11909 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
11911 friend struct DataModel::Detail::Befriend<
PointO>;
11942 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11943 typename std::enable_if<
11944 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11948 template<typename... Args>
11952 using namespace Zivid::Detail::TypeTraits;
11955 AllArgsDecayedAreUnique<Args...>::value,
11956 "Found duplicate types among the arguments passed to Box(...). "
11957 "Types should be listed at most once.");
11959 set(std::forward<Args>(args)...);
11977 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11979 template<typename... Args>
11983 using namespace Zivid::Detail::TypeTraits;
11985 using AllArgsAreDescendantNodes =
11986 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11988 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11991 AllArgsDecayedAreUnique<Args...>::value,
11992 "Found duplicate types among the arguments passed to set(...). "
11993 "Types should be listed at most once.");
11995 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
12014 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
12016 template<typename... Args>
12020 using namespace Zivid::Detail::TypeTraits;
12022 using AllArgsAreDescendantNodes =
12023 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
12025 AllArgsAreDescendantNodes::value,
12026 "All arguments passed to copyWith(...) must be descendant nodes.");
12029 AllArgsDecayedAreUnique<Args...>::value,
12030 "Found duplicate types among the arguments passed to copyWith(...). "
12031 "Types should be listed at most once.");
12033 auto copy{ *
this };
12034 copy.
set(std::forward<Args>(args)...);
12135 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::
12144 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::
12153 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::
12162 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::
12171 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::
12178 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
12184 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
12190 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
12196 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
12202 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
12209 template<
typename F>
12220 template<
typename F>
12242 return stream << value.
toString();
12246 void setFromString(
const std::string &value);
12248 void setFromString(
const std::string &fullPath,
const std::string &value);
12250 std::string getString(
const std::string &fullPath)
const;
12258 friend struct DataModel::Detail::Befriend<
Box>;
12273 static constexpr const char *path{
"RegionOfInterest/Depth" };
12276 static constexpr const char *name{
"Depth" };
12279 static constexpr const char *description{
12280 R
"description(Removes points that reside outside of a depth range, meaning that their Z coordinate
12281falls above a given maximum or below a given minimum.
12295 static constexpr const char *path{
"RegionOfInterest/Depth/Enabled" };
12298 static constexpr const char *name{
"Enabled" };
12301 static constexpr const char *description{ R
"description(Enabled)description" };
12311 return {
false,
true };
12340 return m_opt == other.m_opt;
12346 return m_opt != other.m_opt;
12352 return stream << value.
toString();
12356 void setFromString(
const std::string &value);
12358 Zivid::DataModel::Detail::Optional<bool> m_opt;
12360 friend struct DataModel::Detail::Befriend<
Enabled>;
12373 static constexpr const char *path{
"RegionOfInterest/Depth/Range" };
12376 static constexpr const char *name{
"Range" };
12379 static constexpr const char *description{
12380 R
"description(Specify the minimum and maximum Z value that will be included.)description"
12410 explicit constexpr Range(
double minValue,
double maxValue)
12417 return m_opt == other.m_opt;
12423 return m_opt != other.m_opt;
12429 return stream << value.
toString();
12433 void setFromString(
const std::string &value);
12435 Zivid::DataModel::Detail::Optional<Zivid::Range<double>> m_opt;
12437 friend struct DataModel::Detail::Befriend<
Range>;
12441 std::tuple<Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range>;
12461 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
12462 typename std::enable_if<
12463 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
12467 template<typename... Args>
12471 using namespace Zivid::Detail::TypeTraits;
12474 AllArgsDecayedAreUnique<Args...>::value,
12475 "Found duplicate types among the arguments passed to Depth(...). "
12476 "Types should be listed at most once.");
12478 set(std::forward<Args>(args)...);
12493 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
12495 template<typename... Args>
12499 using namespace Zivid::Detail::TypeTraits;
12501 using AllArgsAreDescendantNodes =
12502 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
12504 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
12507 AllArgsDecayedAreUnique<Args...>::value,
12508 "Found duplicate types among the arguments passed to set(...). "
12509 "Types should be listed at most once.");
12511 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
12527 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
12529 template<typename... Args>
12533 using namespace Zivid::Detail::TypeTraits;
12535 using AllArgsAreDescendantNodes =
12536 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
12538 AllArgsAreDescendantNodes::value,
12539 "All arguments passed to copyWith(...) must be descendant nodes.");
12542 AllArgsDecayedAreUnique<Args...>::value,
12543 "Found duplicate types among the arguments passed to copyWith(...). "
12544 "Types should be listed at most once.");
12546 auto copy{ *
this };
12547 copy.
set(std::forward<Args>(args)...);
12591 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::
12600 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::
12607 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
12613 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
12620 template<
typename F>
12628 template<
typename F>
12647 return stream << value.
toString();
12651 void setFromString(
const std::string &value);
12653 void setFromString(
const std::string &fullPath,
const std::string &value);
12655 std::string getString(
const std::string &fullPath)
const;
12660 friend struct DataModel::Detail::Befriend<
Depth>;
12699 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
12700 typename std::enable_if<
12701 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
12705 template<typename... Args>
12709 using namespace Zivid::Detail::TypeTraits;
12712 AllArgsDecayedAreUnique<Args...>::value,
12713 "Found duplicate types among the arguments passed to RegionOfInterest(...). "
12714 "Types should be listed at most once.");
12716 set(std::forward<Args>(args)...);
12738 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
12740 template<typename... Args>
12744 using namespace Zivid::Detail::TypeTraits;
12746 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
12748 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
12751 AllArgsDecayedAreUnique<Args...>::value,
12752 "Found duplicate types among the arguments passed to set(...). "
12753 "Types should be listed at most once.");
12755 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
12778 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
12780 template<typename... Args>
12784 using namespace Zivid::Detail::TypeTraits;
12786 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
12788 AllArgsAreDescendantNodes::value,
12789 "All arguments passed to copyWith(...) must be descendant nodes.");
12792 AllArgsDecayedAreUnique<Args...>::value,
12793 "Found duplicate types among the arguments passed to copyWith(...). "
12794 "Types should be listed at most once.");
12796 auto copy{ *
this };
12797 copy.
set(std::forward<Args>(args)...);
12877 m_depth.
set(value);
12884 m_depth.
set(value);
12890 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
12898 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type =
12907 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type =
12916 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
12924 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
12932 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
12940 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
12948 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type =
12957 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type =
12964 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
12970 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
12977 template<
typename F>
12985 template<
typename F>
13004 return stream << value.
toString();
13008 void setFromString(
const std::string &value);
13010 void setFromString(
const std::string &fullPath,
const std::string &value);
13012 std::string getString(
const std::string &fullPath)
const;
13159 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13160 typename std::enable_if<
13161 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
13164 template<typename... Args>
13168 using namespace Zivid::Detail::TypeTraits;
13171 AllArgsDecayedAreUnique<Args...>::value,
13172 "Found duplicate types among the arguments passed to Settings(...). "
13173 "Types should be listed at most once.");
13175 set(std::forward<Args>(args)...);
13247 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13249 template<typename... Args>
13253 using namespace Zivid::Detail::TypeTraits;
13255 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13257 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13260 AllArgsDecayedAreUnique<Args...>::value,
13261 "Found duplicate types among the arguments passed to set(...). "
13262 "Types should be listed at most once.");
13264 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13337 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13339 template<typename... Args>
13343 using namespace Zivid::Detail::TypeTraits;
13345 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13347 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
13350 AllArgsDecayedAreUnique<Args...>::value,
13351 "Found duplicate types among the arguments passed to copyWith(...). "
13352 "Types should be listed at most once.");
13354 auto copy{ *
this };
13355 copy.
set(std::forward<Args>(args)...);
13362 return m_acquisitions;
13368 return m_acquisitions;
13374 m_acquisitions = value;
13381 return m_diagnostics;
13387 return m_diagnostics;
13393 m_diagnostics = value;
13400 m_diagnostics.
set(value);
13407 return m_experimental;
13413 return m_experimental;
13419 m_experimental = value;
13426 m_experimental.
set(value);
13433 return m_processing;
13439 return m_processing;
13445 m_processing = value;
13452 m_processing.
set(value);
13459 m_processing.
set(value);
13466 m_processing.
set(value);
13473 m_processing.
set(value);
13480 m_processing.
set(value);
13487 m_processing.
set(value);
13494 m_processing.
set(value);
13501 m_processing.
set(value);
13508 m_processing.
set(value);
13515 m_processing.
set(value);
13522 m_processing.
set(value);
13529 m_processing.
set(value);
13536 m_processing.
set(value);
13543 m_processing.
set(value);
13550 m_processing.
set(value);
13557 m_processing.
set(value);
13564 m_processing.
set(value);
13571 m_processing.
set(value);
13578 m_processing.
set(value);
13585 m_processing.
set(value);
13592 m_processing.
set(value);
13599 m_processing.
set(value);
13606 m_processing.
set(value);
13613 m_processing.
set(value);
13620 m_processing.
set(value);
13627 m_processing.
set(value);
13634 m_processing.
set(value);
13641 m_processing.
set(value);
13648 m_processing.
set(value);
13655 m_processing.
set(value);
13662 m_processing.
set(value);
13669 m_processing.
set(value);
13676 m_processing.
set(value);
13683 m_processing.
set(value);
13690 m_processing.
set(value);
13697 m_processing.
set(value);
13704 m_processing.
set(value);
13711 m_processing.
set(value);
13718 m_processing.
set(value);
13725 m_processing.
set(value);
13732 m_processing.
set(value);
13739 m_processing.
set(value);
13746 m_processing.
set(value);
13753 return m_regionOfInterest;
13759 return m_regionOfInterest;
13765 m_regionOfInterest = value;
13772 m_regionOfInterest.
set(value);
13779 m_regionOfInterest.
set(value);
13786 m_regionOfInterest.
set(value);
13793 m_regionOfInterest.
set(value);
13800 m_regionOfInterest.
set(value);
13807 m_regionOfInterest.
set(value);
13814 m_regionOfInterest.
set(value);
13821 m_regionOfInterest.
set(value);
13828 m_regionOfInterest.
set(value);
13832 template<typename T, typename std::enable_if<std::is_same<T, Settings::Acquisitions>::value,
int>::type = 0>
13835 return m_acquisitions;
13838 template<typename T, typename std::enable_if<std::is_same<T, Settings::Diagnostics>::value,
int>::type = 0>
13841 return m_diagnostics;
13846 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
13852 template<typename T, typename std::enable_if<std::is_same<T, Settings::Experimental>::value,
int>::type = 0>
13855 return m_experimental;
13860 typename std::enable_if<std::is_same<T, Settings::Experimental::Engine>::value,
int>::type = 0>
13866 template<typename T, typename std::enable_if<std::is_same<T, Settings::Processing>::value,
int>::type = 0>
13869 return m_processing;
13874 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
13882 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
13890 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type = 0>
13898 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::type = 0>
13906 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
13914 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type = 0>
13922 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
13931 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
13939 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
13947 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
13955 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
13964 typename std::enable_if<
13965 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
13974 typename std::enable_if<
13975 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
13984 typename std::enable_if<
13985 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
13994 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::type = 0>
14002 typename std::enable_if<
14003 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
14012 typename std::enable_if<
14013 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
14022 typename std::enable_if<
14023 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled>::
14028 return m_processing
14034 typename std::enable_if<
14035 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength>::
14040 return m_processing
14046 typename std::enable_if<
14047 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
14056 typename std::enable_if<
14057 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
14062 return m_processing
14068 typename std::enable_if<
14069 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold>::
14074 return m_processing
14080 typename std::enable_if<
14081 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling>::value,
14090 typename std::enable_if<
14091 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Enabled>::value,
14100 typename std::enable_if<
14101 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::HoleSize>::value,
14110 typename std::enable_if<
14111 std::is_same<T, Settings::Processing::Filters::Experimental::HoleFilling::Strictness>::value,
14120 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
14128 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type =
14137 typename std::enable_if<
14138 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
14147 typename std::enable_if<
14148 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
14157 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
14165 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
14174 typename std::enable_if<
14175 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
14184 typename std::enable_if<
14185 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
14194 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type = 0>
14202 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
int>::
14211 typename std::enable_if<
14212 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
14221 typename std::enable_if<
14222 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
14231 typename std::enable_if<
14232 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Experimental::Mode>::value,
14241 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type = 0>
14249 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
int>::
14258 typename std::enable_if<
14259 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
14268 typename std::enable_if<
14269 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
14276 template<typename T, typename std::enable_if<std::is_same<T, Settings::RegionOfInterest>::value,
int>::type = 0>
14279 return m_regionOfInterest;
14284 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
14292 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type = 0>
14300 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type = 0>
14308 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
14316 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
14324 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
14332 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
14340 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type = 0>
14348 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type = 0>
14354 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
14357 return m_acquisitions;
14360 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
14363 return m_diagnostics;
14366 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
14369 return m_experimental;
14372 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
14375 return m_processing;
14378 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
14381 return m_regionOfInterest;
14385 template<
typename F>
14392 f(m_regionOfInterest);
14396 template<
typename F>
14403 f(m_regionOfInterest);
14418 return stream << value.
toString();
14422 void save(
const std::string &fileName)
const;
14425 void load(
const std::string &fileName);
14428 void setFromString(
const std::string &value);
14430 void setFromString(
const std::string &fullPath,
const std::string &value);
14432 std::string getString(
const std::string &fullPath)
const;
14440 friend struct DataModel::Detail::Befriend<
Settings>;
14454 struct Settings::Version<17>
14456 using Type = Settings;
14463# pragma warning(pop)
14467# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
14472 struct tuple_size<
Zivid::Settings::Diagnostics> : integral_constant<size_t, 1>
14476 struct tuple_element<i,
Zivid::Settings::Diagnostics>
14478 static_assert(i < tuple_size<Zivid::Settings::Diagnostics>::value,
"Index must be less than 1");
14481 =
decltype(declval<Zivid::Settings::Diagnostics>().get<i>());
14485 struct tuple_size<
Zivid::Settings::Experimental> : integral_constant<size_t, 1>
14489 struct tuple_element<i,
Zivid::Settings::Experimental>
14491 static_assert(i < tuple_size<Zivid::Settings::Experimental>::value,
"Index must be less than 1");
14494 =
decltype(declval<Zivid::Settings::Experimental>().get<i>());
14498 struct tuple_size<
Zivid::Settings::Processing> : integral_constant<size_t, 2>
14502 struct tuple_element<i,
Zivid::Settings::Processing>
14504 static_assert(i < tuple_size<Zivid::Settings::Processing>::value,
"Index must be less than 2");
14507 =
decltype(declval<Zivid::Settings::Processing>().get<i>());
14511 struct tuple_size<
Zivid::Settings::Processing::Color> : integral_constant<size_t, 3>
14515 struct tuple_element<i,
Zivid::Settings::Processing::Color>
14517 static_assert(i < tuple_size<Zivid::Settings::Processing::Color>::value,
"Index must be less than 3");
14520 =
decltype(declval<Zivid::Settings::Processing::Color>().get<i>());
14524 struct tuple_size<
Zivid::Settings::Processing::Color::Balance> : integral_constant<size_t, 3>
14528 struct tuple_element<i,
Zivid::Settings::Processing::Color::Balance>
14530 static_assert(i < tuple_size<Zivid::Settings::Processing::Color::Balance>::value,
"Index must be less than 3");
14533 =
decltype(declval<Zivid::Settings::Processing::Color::Balance>().get<i>());
14537 struct tuple_size<
Zivid::Settings::Processing::Color::Experimental> : integral_constant<size_t, 1>
14541 struct tuple_element<i,
Zivid::Settings::Processing::Color::Experimental>
14544 i < tuple_size<Zivid::Settings::Processing::Color::Experimental>::value,
14545 "Index must be less than 1");
14548 =
decltype(declval<Zivid::Settings::Processing::Color::Experimental>().get<i>());
14552 struct tuple_size<
Zivid::Settings::Processing::Filters> : integral_constant<size_t, 6>
14556 struct tuple_element<i,
Zivid::Settings::Processing::Filters>
14558 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters>::value,
"Index must be less than 6");
14561 =
decltype(declval<Zivid::Settings::Processing::Filters>().get<i>());
14565 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster> : integral_constant<size_t, 1>
14569 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster>
14572 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster>::value,
14573 "Index must be less than 1");
14576 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster>().get<i>());
14580 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster::Removal> : integral_constant<size_t, 3>
14584 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster::Removal>
14587 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster::Removal>::value,
14588 "Index must be less than 3");
14591 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster::Removal>().get<i>());
14595 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental> : integral_constant<size_t, 2>
14599 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental>
14602 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental>::value,
14603 "Index must be less than 2");
14606 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental>().get<i>());
14610 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
14611 : integral_constant<size_t, 2>
14615 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
14618 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
14619 "Index must be less than 2");
14622 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>().get<i>());
14626 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
14627 : integral_constant<size_t, 2>
14631 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
14634 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
14635 "Index must be less than 2");
14638 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>()
14643 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
14644 : integral_constant<size_t, 2>
14648 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
14651 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
14652 "Index must be less than 2");
14655 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>()
14660 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::HoleFilling> : integral_constant<size_t, 3>
14664 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::HoleFilling>
14667 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::HoleFilling>::value,
14668 "Index must be less than 3");
14671 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::HoleFilling>().get<i>());
14675 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise> : integral_constant<size_t, 1>
14679 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise>
14681 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Noise>::value,
"Index must be less than 1");
14684 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise>().get<i>());
14688 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Removal> : integral_constant<size_t, 2>
14692 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Removal>
14695 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Removal>::value,
14696 "Index must be less than 2");
14699 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Removal>().get<i>());
14703 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier> : integral_constant<size_t, 1>
14707 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier>
14710 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier>::value,
14711 "Index must be less than 1");
14714 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier>().get<i>());
14718 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier::Removal> : integral_constant<size_t, 2>
14722 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier::Removal>
14725 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier::Removal>::value,
14726 "Index must be less than 2");
14729 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier::Removal>().get<i>());
14733 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection> : integral_constant<size_t, 1>
14737 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection>
14740 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection>::value,
14741 "Index must be less than 1");
14744 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection>().get<i>());
14748 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal> : integral_constant<size_t, 2>
14752 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal>
14755 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal>::value,
14756 "Index must be less than 2");
14759 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal>().get<i>());
14763 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>
14764 : integral_constant<size_t, 1>
14768 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>
14771 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>::value,
14772 "Index must be less than 1");
14775 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal::Experimental>().get<i>());
14779 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing> : integral_constant<size_t, 1>
14783 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing>
14786 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing>::value,
14787 "Index must be less than 1");
14790 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing>().get<i>());
14794 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing::Gaussian> : integral_constant<size_t, 2>
14798 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing::Gaussian>
14801 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>::value,
14802 "Index must be less than 2");
14805 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>().get<i>());
14809 struct tuple_size<
Zivid::Settings::RegionOfInterest> : integral_constant<size_t, 2>
14813 struct tuple_element<i,
Zivid::Settings::RegionOfInterest>
14815 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest>::value,
"Index must be less than 2");
14818 =
decltype(declval<Zivid::Settings::RegionOfInterest>().get<i>());
14822 struct tuple_size<
Zivid::Settings::RegionOfInterest::Box> : integral_constant<size_t, 5>
14826 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Box>
14828 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Box>::value,
"Index must be less than 5");
14831 =
decltype(declval<Zivid::Settings::RegionOfInterest::Box>().get<i>());
14835 struct tuple_size<
Zivid::Settings::RegionOfInterest::Depth> : integral_constant<size_t, 2>
14839 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Depth>
14841 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Depth>::value,
"Index must be less than 2");
14844 =
decltype(declval<Zivid::Settings::RegionOfInterest::Depth>().get<i>());
14848 struct tuple_size<
Zivid::Settings> : integral_constant<size_t, 5>
14852 struct tuple_element<i,
Zivid::Settings>
14854 static_assert(i < tuple_size<Zivid::Settings>::value,
"Index must be less than 5");
14857 =
decltype(declval<Zivid::Settings>().get<i>());
14866#if defined(__has_include) && !defined(NO_DOC)
14867# if __has_include("Zivid/SettingsInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
14868# 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:1421
ValueType value() const
Get the value
static const Engine phase
phase
Definition: Settings.h:1449
bool hasValue() const
Check if the value is set
ValueType
The type of the underlying value
Definition: Settings.h:1445
friend std::ostream & operator<<(std::ostream &stream, const Engine &value)
Operator to serialize the value to a stream
Definition: Settings.h:1500
static std::set< ValueType > validValues()
All valid values of Engine
Definition: Settings.h:1453
std::string toString() const
Get the value as string
bool operator==(const Engine &other) const
Comparison operator
Definition: Settings.h:1488
Engine()=default
Default constructor
bool operator!=(const Engine &other) const
Comparison operator
Definition: Settings.h:1494
constexpr Engine(ValueType value)
Constructor
Definition: Settings.h:1462
friend std::ostream & operator<<(std::ostream &stream, const Engine::ValueType &value)
Operator to serialize ValueType to a stream
Definition: Settings.h:1482
static const Engine stripe
stripe
Definition: Settings.h:1450
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:1635
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:1577
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:1609
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:1685
const Settings::Experimental::Engine & get() const
Definition: Settings.h:1650
std::tuple< Settings::Experimental::Engine > Descendants
Definition: Settings.h:1523
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:1663
bool operator==(const Experimental &other) const
Equality operator
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:1550
Experimental()
Default constructor
Experimental & set(const Engine &value)
Set Engine
Definition: Settings.h:1641
const Engine & engine() const
Get Engine
Definition: Settings.h:1629
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:1670
Digital gain applied to blue channel
Definition: Settings.h:1762
friend std::ostream & operator<<(std::ostream &stream, const Blue &value)
Operator to serialize the value to a stream
Definition: Settings.h:1847
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:1811
bool operator>=(const Blue &other) const
Comparison operator
Definition: Settings.h:1841
std::string toString() const
Get the value as string
bool operator<(const Blue &other) const
Comparison operator
Definition: Settings.h:1823
constexpr Blue(double value)
Constructor
Definition: Settings.h:1791
Blue()=default
Default constructor
bool operator<=(const Blue &other) const
Comparison operator
Definition: Settings.h:1835
bool operator!=(const Blue &other) const
Comparison operator
Definition: Settings.h:1817
bool hasValue() const
Check if the value is set
double ValueType
The type of the underlying value
Definition: Settings.h:1779
bool operator>(const Blue &other) const
Comparison operator
Definition: Settings.h:1829
static constexpr Range< double > validRange()
The range of valid values for Blue
Definition: Settings.h:1782
Digital gain applied to green channel
Definition: Settings.h:1874
void reset()
Reset the node to unset state
bool operator>(const Green &other) const
Comparison operator
Definition: Settings.h:1941
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:1959
double ValueType
The type of the underlying value
Definition: Settings.h:1891
bool operator>=(const Green &other) const
Comparison operator
Definition: Settings.h:1953
constexpr Green(double value)
Constructor
Definition: Settings.h:1903
bool operator==(const Green &other) const
Comparison operator
Definition: Settings.h:1923
bool operator!=(const Green &other) const
Comparison operator
Definition: Settings.h:1929
Green()=default
Default constructor
std::string toString() const
Get the value as string
bool operator<(const Green &other) const
Comparison operator
Definition: Settings.h:1935
static constexpr Range< double > validRange()
The range of valid values for Green
Definition: Settings.h:1894
bool operator<=(const Green &other) const
Comparison operator
Definition: Settings.h:1947
Digital gain applied to red channel
Definition: Settings.h:1986
bool operator!=(const Red &other) const
Comparison operator
Definition: Settings.h:2041
constexpr Red(double value)
Constructor
Definition: Settings.h:2015
friend std::ostream & operator<<(std::ostream &stream, const Red &value)
Operator to serialize the value to a stream
Definition: Settings.h:2071
bool operator>=(const Red &other) const
Comparison operator
Definition: Settings.h:2065
double ValueType
The type of the underlying value
Definition: Settings.h:2003
static constexpr Range< double > validRange()
The range of valid values for Red
Definition: Settings.h:2006
double value() const
Get the value
bool operator==(const Red &other) const
Comparison operator
Definition: Settings.h:2035
Red()=default
Default constructor
bool operator<(const Red &other) const
Comparison operator
Definition: Settings.h:2047
void reset()
Reset the node to unset state
bool operator>(const Red &other) const
Comparison operator
Definition: Settings.h:2053
bool hasValue() const
Check if the value is set
bool operator<=(const Red &other) const
Comparison operator
Definition: Settings.h:2059
std::string toString() const
Get the value as string
Color balance settings
Definition: Settings.h:1744
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:2155
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:2317
bool operator!=(const Balance &other) const
Inequality operator
Balance & set(const Red &value)
Set Red
Definition: Settings.h:2262
Green & green()
Get Green
Definition: Settings.h:2237
std::string toString() const
Get the value as string
Balance(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:2126
Red & red()
Get Red
Definition: Settings.h:2256
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:2191
Balance & set(const Blue &value)
Set Blue
Definition: Settings.h:2224
Blue & blue()
Get Blue
Definition: Settings.h:2218
const Red & red() const
Get Red
Definition: Settings.h:2250
std::tuple< Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red > Descendants
Definition: Settings.h:2097
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2326
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:2283
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:2292
Balance & set(const Green &value)
Set Green
Definition: Settings.h:2243
const Green & green() const
Get Green
Definition: Settings.h:2231
friend std::ostream & operator<<(std::ostream &stream, const Balance &value)
Operator to send the value as string to a stream
Definition: Settings.h:2343
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:2273
const Blue & blue() const
Get Blue
Definition: Settings.h:2212
Balance()
Default constructor
This setting controls how the color image is computed.
Definition: Settings.h:2407
static const Mode toneMapping
toneMapping
Definition: Settings.h:2453
ValueType value() const
Get the value
std::string toString() const
Get the value as string
static const Mode automatic
automatic
Definition: Settings.h:2451
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream
Definition: Settings.h:2503
void reset()
Reset the node to unset state
static const Mode useFirstAcquisition
useFirstAcquisition
Definition: Settings.h:2452
bool operator!=(const Mode &other) const
Comparison operator
Definition: Settings.h:2497
bool operator==(const Mode &other) const
Comparison operator
Definition: Settings.h:2491
ValueType
The type of the underlying value
Definition: Settings.h:2446
bool hasValue() const
Check if the value is set
constexpr Mode(ValueType value)
Constructor
Definition: Settings.h:2465
static std::set< ValueType > validValues()
All valid values of Mode
Definition: Settings.h:2456
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:2485
Experimental color settings. These may be renamed, moved or deleted in the future.
Definition: Settings.h:2366
std::tuple< Settings::Processing::Color::Experimental::Mode > Descendants
Definition: Settings.h:2528
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:2695
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:2680
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:2555
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:2582
std::string toString() const
Get the value as string
Experimental & set(const Mode &value)
Set Mode
Definition: Settings.h:2649
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:2673
bool operator==(const Experimental &other) const
Equality operator
Experimental()
Default constructor
Mode & mode()
Get Mode
Definition: Settings.h:2643
const Mode & mode() const
Get Mode
Definition: Settings.h:2637
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:2660
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:2616
Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma greater t...
Definition: Settings.h:2718
friend std::ostream & operator<<(std::ostream &stream, const Gamma &value)
Operator to serialize the value to a stream
Definition: Settings.h:2805
double value() const
Get the value
bool operator>(const Gamma &other) const
Comparison operator
Definition: Settings.h:2787
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Gamma
Definition: Settings.h:2740
Gamma()=default
Default constructor
double ValueType
The type of the underlying value
Definition: Settings.h:2737
bool hasValue() const
Check if the value is set
bool operator>=(const Gamma &other) const
Comparison operator
Definition: Settings.h:2799
constexpr Gamma(double value)
Constructor
Definition: Settings.h:2749
bool operator!=(const Gamma &other) const
Comparison operator
Definition: Settings.h:2775
bool operator<(const Gamma &other) const
Comparison operator
Definition: Settings.h:2781
std::string toString() const
Get the value as string
bool operator==(const Gamma &other) const
Comparison operator
Definition: Settings.h:2769
bool operator<=(const Gamma &other) const
Comparison operator
Definition: Settings.h:2793
Color settings
Definition: Settings.h:1726
Color & set(const Gamma &value)
Set Gamma
Definition: Settings.h:3038
const Settings::Processing::Color::Gamma & get() const
Definition: Settings.h:3102
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:3075
bool operator==(const Color &other) const
Equality operator
Color & set(const Experimental::Mode &value)
Set Experimental::Mode
Definition: Settings.h:3019
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:3066
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:2900
Color & set(const Experimental &value)
Set Experimental
Definition: Settings.h:3012
Color & set(const Balance &value)
Set Balance
Definition: Settings.h:2972
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to send the value as string to a stream
Definition: Settings.h:3153
const Balance & balance() const
Get Balance
Definition: Settings.h:2960
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:3000
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:3136
const Settings::Processing::Color::Experimental & get() const
Definition: Settings.h:3084
Color & set(const Balance::Green &value)
Set Balance::Green
Definition: Settings.h:2986
Experimental & experimental()
Get Experimental
Definition: Settings.h:3006
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:2834
Color & set(const Balance::Blue &value)
Set Balance::Blue
Definition: Settings.h:2979
Gamma & gamma()
Get Gamma
Definition: Settings.h:3032
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:2939
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:3094
Color & set(const Balance::Red &value)
Set Balance::Red
Definition: Settings.h:2993
const Gamma & gamma() const
Get Gamma
Definition: Settings.h:3026
Color(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:2867
const Settings::Processing::Color::Balance & get() const
Definition: Settings.h:3048
Balance & balance()
Get Balance
Definition: Settings.h:2966
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:3127
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:3057
Enabled
Definition: Settings.h:3234
bool hasValue() const
Check if the value is set
bool ValueType
The type of the underlying value
Definition: Settings.h:3249
static const Enabled no
Off/disabled.
Definition: Settings.h:3251
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:3263
void reset()
Reset the node to unset state
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:3254
Enabled()=default
Default constructor
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:3289
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:3295
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:3283
std::string toString() const
Get the value as string
bool value() const
Get the value
static const Enabled yes
On/enabled.
Definition: Settings.h:3250
Maximum normalized distance between neighboring points that are still classified as belonging to the ...
Definition: Settings.h:3315
constexpr MaxNeighborDistance(double value)
Constructor
Definition: Settings.h:3349
bool operator!=(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3375
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:3337
bool hasValue() const
Check if the value is set
MaxNeighborDistance()=default
Default constructor
bool operator>=(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3399
bool operator<(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3381
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for MaxNeighborDistance
Definition: Settings.h:3340
bool operator<=(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3393
friend std::ostream & operator<<(std::ostream &stream, const MaxNeighborDistance &value)
Operator to serialize the value to a stream
Definition: Settings.h:3405
bool operator==(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3369
bool operator>(const MaxNeighborDistance &other) const
Comparison operator
Definition: Settings.h:3387
Clusters with area below this threshold are removed by the filter. The area is given in mm^2.
Definition: Settings.h:3434
bool operator>=(const MinArea &other) const
Comparison operator
Definition: Settings.h:3515
double ValueType
The type of the underlying value
Definition: Settings.h:3453
friend std::ostream & operator<<(std::ostream &stream, const MinArea &value)
Operator to serialize the value to a stream
Definition: Settings.h:3521
bool operator<(const MinArea &other) const
Comparison operator
Definition: Settings.h:3497
bool operator!=(const MinArea &other) const
Comparison operator
Definition: Settings.h:3491
void reset()
Reset the node to unset state
bool operator<=(const MinArea &other) const
Comparison operator
Definition: Settings.h:3509
constexpr MinArea(double value)
Constructor
Definition: Settings.h:3465
std::string toString() const
Get the value as string
bool operator>(const MinArea &other) const
Comparison operator
Definition: Settings.h:3503
MinArea()=default
Default constructor
static constexpr Range< double > validRange()
The range of valid values for MinArea
Definition: Settings.h:3456
double value() const
Get the value
bool operator==(const MinArea &other) const
Comparison operator
Definition: Settings.h:3485
bool hasValue() const
Check if the value is set
Removal
Definition: Settings.h:3216
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:3576
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:3795
const MaxNeighborDistance & maxNeighborDistance() const
Get MaxNeighborDistance
Definition: Settings.h:3681
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:3662
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:3734
std::string toString() const
Get the value as string
MinArea & minArea()
Get MinArea
Definition: Settings.h:3706
const MinArea & minArea() const
Get MinArea
Definition: Settings.h:3700
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:3641
Removal & set(const MaxNeighborDistance &value)
Set MaxNeighborDistance
Definition: Settings.h:3693
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:3744
Removal & set(const MinArea &value)
Set MinArea
Definition: Settings.h:3712
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:3769
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:3723
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:3668
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:3605
bool operator==(const Removal &other) const
Equality operator
MaxNeighborDistance & maxNeighborDistance()
Get MaxNeighborDistance
Definition: Settings.h:3687
std::tuple< Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea > Descendants
Definition: Settings.h:3547
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:3778
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:3674
Removes floating points and small isolated clusters from the point cloud.
Definition: Settings.h:3195
const Removal & removal() const
Get Removal
Definition: Settings.h:3936
Cluster(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:3848
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:4011
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition: Settings.h:3980
Cluster & set(const Removal::MaxNeighborDistance &value)
Set Removal::MaxNeighborDistance
Definition: Settings.h:3962
bool operator!=(const Cluster &other) const
Inequality operator
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:4001
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:3915
Removal & removal()
Get Removal
Definition: Settings.h:3942
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:4031
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:4024
Cluster & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:3955
Cluster & set(const Removal &value)
Set Removal
Definition: Settings.h:3948
Cluster & set(const Removal::MinArea &value)
Set Removal::MinArea
Definition: Settings.h:3969
Cluster()
Default constructor
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:3990
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:3818
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:3878
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:4046
Enabled
Definition: Settings.h:4135
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:4153
bool ValueType
The type of the underlying value
Definition: Settings.h:4152
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:4157
static const Enabled no
Off/disabled.
Definition: Settings.h:4154
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:4166
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:4198
bool hasValue() const
Check if the value is set
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:4186
bool value() const
Get the value
Enabled()=default
Default constructor
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:4192
Higher values gives more correction.
Definition: Settings.h:4215
double ValueType
The type of the underlying value
Definition: Settings.h:4234
bool operator>(const Strength &other) const
Comparison operator
Definition: Settings.h:4284
bool operator!=(const Strength &other) const
Comparison operator
Definition: Settings.h:4272
bool hasValue() const
Check if the value is set
constexpr Strength(double value)
Constructor
Definition: Settings.h:4246
static constexpr Range< double > validRange()
The range of valid values for Strength
Definition: Settings.h:4237
double value() const
Get the value
bool operator<=(const Strength &other) const
Comparison operator
Definition: Settings.h:4290
bool operator>=(const Strength &other) const
Comparison operator
Definition: Settings.h:4296
friend std::ostream & operator<<(std::ostream &stream, const Strength &value)
Operator to serialize the value to a stream
Definition: Settings.h:4302
Strength()=default
Default constructor
bool operator<(const Strength &other) const
Comparison operator
Definition: Settings.h:4278
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:4266
Correction
Definition: Settings.h:4115
bool operator==(const Correction &other) const
Equality operator
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:4445
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:4522
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:4439
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:4500
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength > Descendants
Definition: Settings.h:4327
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:4418
Strength & strength()
Get Strength
Definition: Settings.h:4464
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:4485
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:4546
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:4383
Correction & set(const Enabled &value)
Set Enabled
Definition: Settings.h:4451
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:4530
std::string toString() const
Get the value as string
Correction & set(const Strength &value)
Set Strength
Definition: Settings.h:4470
const Strength & strength() const
Get Strength
Definition: Settings.h:4458
Correction(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:4355
Enabled
Definition: Settings.h:4588
std::string toString() const
Get the value as string
static const Enabled yes
On/enabled.
Definition: Settings.h:4606
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:4619
Enabled()=default
Default constructor
void reset()
Reset the node to unset state
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:4645
bool ValueType
The type of the underlying value
Definition: Settings.h:4605
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:4610
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:4651
bool hasValue() const
Check if the value is set
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:4639
bool value() const
Get the value
static const Enabled no
Off/disabled.
Definition: Settings.h:4607
Higher values remove more points.
Definition: Settings.h:4668
void reset()
Reset the node to unset state
bool operator<=(const Threshold &other) const
Comparison operator
Definition: Settings.h:4743
constexpr Threshold(double value)
Constructor
Definition: Settings.h:4699
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:4725
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:4731
static constexpr Range< double > validRange()
The range of valid values for Threshold
Definition: Settings.h:4690
Threshold()=default
Default constructor
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:4719
bool operator>=(const Threshold &other) const
Comparison operator
Definition: Settings.h:4749
std::string toString() const
Get the value as string
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:4737
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:4755
double value() const
Get the value
double ValueType
The type of the underlying value
Definition: Settings.h:4687
Removal
Definition: Settings.h:4568
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:4973
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:4836
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:4997
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:4911
Removal & set(const Threshold &value)
Set Threshold
Definition: Settings.h:4923
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:4808
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:4871
Threshold & threshold()
Get Threshold
Definition: Settings.h:4917
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:4904
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:4938
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold > Descendants
Definition: Settings.h:4780
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:4898
Removal()
Default constructor
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:4892
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:4952
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:4981
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:4091
ContrastDistortion & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:5197
ContrastDistortion & set(const Correction::Enabled &value)
Set Correction::Enabled
Definition: Settings.h:5164
ContrastDistortion & set(const Correction &value)
Set Correction
Definition: Settings.h:5157
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:5308
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:5332
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:5124
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:5021
ContrastDistortion & set(const Correction::Strength &value)
Set Correction::Strength
Definition: Settings.h:5171
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:5085
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5316
ContrastDistortion & set(const Removal &value)
Set Removal
Definition: Settings.h:5190
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:5287
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:5259
const Removal & removal() const
Get Removal
Definition: Settings.h:5178
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:5231
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:5217
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:5246
std::string toString() const
Get the value as string
Removal & removal()
Get Removal
Definition: Settings.h:5184
bool operator==(const ContrastDistortion &other) const
Equality operator
ContrastDistortion & set(const Removal::Threshold &value)
Set Removal::Threshold
Definition: Settings.h:5204
const Correction & correction() const
Get Correction
Definition: Settings.h:5145
ContrastDistortion(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:5053
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:5272
Correction & correction()
Get Correction
Definition: Settings.h:5151
Enabled
Definition: Settings.h:5376
std::string toString() const
Get the value as string
static const Enabled no
Off/disabled.
Definition: Settings.h:5393
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:5425
void reset()
Reset the node to unset state
Enabled()=default
Default constructor
static const Enabled yes
On/enabled.
Definition: Settings.h:5392
bool ValueType
The type of the underlying value
Definition: Settings.h:5391
bool hasValue() const
Check if the value is set
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:5396
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:5431
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:5437
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:5405
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:5457
bool operator>=(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5539
bool hasValue() const
Check if the value is set
HoleSize()=default
Default constructor
bool operator<=(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5533
double ValueType
The type of the underlying value
Definition: Settings.h:5477
friend std::ostream & operator<<(std::ostream &stream, const HoleSize &value)
Operator to serialize the value to a stream
Definition: Settings.h:5545
void reset()
Reset the node to unset state
bool operator!=(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5515
bool operator>(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5527
std::string toString() const
Get the value as string
constexpr HoleSize(double value)
Constructor
Definition: Settings.h:5489
static constexpr Range< double > validRange()
The range of valid values for HoleSize
Definition: Settings.h:5480
bool operator==(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5509
bool operator<(const HoleSize &other) const
Comparison operator
Definition: Settings.h:5521
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:5576
bool hasValue() const
Check if the value is set
bool operator==(const Strictness &other) const
Comparison operator
Definition: Settings.h:5631
bool operator<(const Strictness &other) const
Comparison operator
Definition: Settings.h:5643
void reset()
Reset the node to unset state
bool operator>(const Strictness &other) const
Comparison operator
Definition: Settings.h:5649
bool operator<=(const Strictness &other) const
Comparison operator
Definition: Settings.h:5655
constexpr Strictness(int32_t value)
Constructor
Definition: Settings.h:5611
bool operator!=(const Strictness &other) const
Comparison operator
Definition: Settings.h:5637
static constexpr Range< int32_t > validRange()
The range of valid values for Strictness
Definition: Settings.h:5602
Strictness()=default
Default constructor
int32_t ValueType
The type of the underlying value
Definition: Settings.h:5599
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:5667
std::string toString() const
Get the value as string
bool operator>=(const Strictness &other) const
Comparison operator
Definition: Settings.h:5661
Fills missing points considering a circular neighborhood.
Definition: Settings.h:5355
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:5917
const Strictness & strictness() const
Get Strictness
Definition: Settings.h:5846
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:5926
Strictness & strictness()
Get Strictness
Definition: Settings.h:5852
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:5787
HoleSize & holeSize()
Get HoleSize
Definition: Settings.h:5833
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:5693
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:5808
HoleFilling & set(const Strictness &value)
Set Strictness
Definition: Settings.h:5858
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:5892
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:5870
const HoleSize & holeSize() const
Get HoleSize
Definition: Settings.h:5827
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:5751
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:5881
HoleFilling & set(const Enabled &value)
Set Enabled
Definition: Settings.h:5820
bool operator!=(const HoleFilling &other) const
Inequality operator
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:5814
HoleFilling(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:5722
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:5943
HoleFilling()
Default constructor
HoleFilling & set(const HoleSize &value)
Set HoleSize
Definition: Settings.h:5839
Experimental filters. These may be renamed, moved or deleted in the future.
Definition: Settings.h:4067
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6370
ContrastDistortion & contrastDistortion()
Get ContrastDistortion
Definition: Settings.h:6118
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:6271
const HoleFilling & holeFilling() const
Get HoleFilling
Definition: Settings.h:6173
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:6091
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:6010
Experimental & set(const ContrastDistortion &value)
Set ContrastDistortion
Definition: Settings.h:6124
Experimental & set(const ContrastDistortion::Removal::Threshold &value)
Set ContrastDistortion::Removal::Threshold
Definition: Settings.h:6166
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:6047
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:6321
Experimental & set(const ContrastDistortion::Correction::Strength &value)
Set ContrastDistortion::Correction::Strength
Definition: Settings.h:6145
Experimental & set(const HoleFilling::HoleSize &value)
Set HoleFilling::HoleSize
Definition: Settings.h:6199
Experimental & set(const HoleFilling::Strictness &value)
Set HoleFilling::Strictness
Definition: Settings.h:6206
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream
Definition: Settings.h:6386
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:5973
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:6258
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:6362
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:6342
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:6331
Experimental & set(const ContrastDistortion::Removal &value)
Set ContrastDistortion::Removal
Definition: Settings.h:6152
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:6217
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:6229
bool operator!=(const Experimental &other) const
Inequality operator
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:6299
Experimental & set(const ContrastDistortion::Correction::Enabled &value)
Set ContrastDistortion::Correction::Enabled
Definition: Settings.h:6138
Experimental & set(const HoleFilling::Enabled &value)
Set HoleFilling::Enabled
Definition: Settings.h:6192
const ContrastDistortion & contrastDistortion() const
Get ContrastDistortion
Definition: Settings.h:6112
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:6185
const Settings::Processing::Filters::Experimental::HoleFilling & get() const
Definition: Settings.h:6311
Experimental & set(const ContrastDistortion::Correction &value)
Set ContrastDistortion::Correction
Definition: Settings.h:6131
Experimental & set(const ContrastDistortion::Removal::Enabled &value)
Set ContrastDistortion::Removal::Enabled
Definition: Settings.h:6159
HoleFilling & holeFilling()
Get HoleFilling
Definition: Settings.h:6179
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:6243
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:6285
Enable or disable the SNR filter
Definition: Settings.h:6448
static const Enabled yes
On/enabled.
Definition: Settings.h:6466
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:6505
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:6499
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:6470
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:6479
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:6511
Enabled()=default
Default constructor
static const Enabled no
Off/disabled.
Definition: Settings.h:6467
bool ValueType
The type of the underlying value
Definition: Settings.h:6465
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:6528
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:6607
constexpr Threshold(double value)
Constructor
Definition: Settings.h:6557
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:6577
bool operator<=(const Threshold &other) const
Comparison operator
Definition: Settings.h:6601
void reset()
Reset the node to unset state
static constexpr Range< double > validRange()
The range of valid values for Threshold
Definition: Settings.h:6548
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream
Definition: Settings.h:6613
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:6595
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:6589
std::string toString() const
Get the value as string
double ValueType
The type of the underlying value
Definition: Settings.h:6545
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:6583
Discard points with signal-to-noise ratio (SNR) values below a threshold
Definition: Settings.h:6428
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:6666
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:6845
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:6750
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:6769
std::tuple< Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold > Descendants
Definition: Settings.h:6638
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:6829
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:6762
Removal & set(const Threshold &value)
Set Threshold
Definition: Settings.h:6781
bool operator==(const Removal &other) const
Equality operator
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:6694
bool operator!=(const Removal &other) const
Inequality operator
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:6802
Threshold & threshold()
Get Threshold
Definition: Settings.h:6775
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:6821
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:6729
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:6756
Removal()
Default constructor
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:6792
Contains a filter that removes points with low signal-to-noise ratio (SNR)
Definition: Settings.h:6408
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:7051
std::string toString() const
Get the value as string
Removal & removal()
Get Removal
Definition: Settings.h:6987
Noise()
Default constructor
Noise(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:6895
Noise & set(const Removal::Threshold &value)
Set Removal::Threshold
Definition: Settings.h:7007
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:6960
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:7058
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:7038
std::tuple< Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold > Descendants
Definition: Settings.h:6866
Noise & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:7000
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:6924
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:7073
const Removal & removal() const
Get Removal
Definition: Settings.h:6981
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:7028
bool operator==(const Noise &other) const
Equality operator
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:7018
Noise & set(const Removal &value)
Set Removal
Definition: Settings.h:6993
Enable or disable the outlier filter
Definition: Settings.h:7134
bool ValueType
The type of the underlying value
Definition: Settings.h:7151
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:7191
bool value() const
Get the value
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:7165
static const Enabled no
Off/disabled.
Definition: Settings.h:7153
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:7152
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:7197
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:7156
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:7185
Enabled()=default
Default constructor
Discard point if Euclidean distance to neighboring points is above the given value
Definition: Settings.h:7214
static constexpr Range< double > validRange()
The range of valid values for Threshold
Definition: Settings.h:7234
bool hasValue() const
Check if the value is set
double value() const
Get the value
constexpr Threshold(double value)
Constructor
Definition: Settings.h:7243
bool operator<(const Threshold &other) const
Comparison operator
Definition: Settings.h:7275
bool operator==(const Threshold &other) const
Comparison operator
Definition: Settings.h:7263
bool operator>=(const Threshold &other) const
Comparison operator
Definition: Settings.h:7293
bool operator!=(const Threshold &other) const
Comparison operator
Definition: Settings.h:7269
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream
Definition: Settings.h:7299
void reset()
Reset the node to unset state
bool operator<=(const Threshold &other) const
Comparison operator
Definition: Settings.h:7287
bool operator>(const Threshold &other) const
Comparison operator
Definition: Settings.h:7281
std::string toString() const
Get the value as string
double ValueType
The type of the underlying value
Definition: Settings.h:7231
Threshold()=default
Default constructor
Discard point if Euclidean distance to neighboring points is above a threshold
Definition: Settings.h:7114
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:7531
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:7436
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:7415
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:7448
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:7442
Removal & set(const Threshold &value)
Set Threshold
Definition: Settings.h:7467
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:7478
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:7352
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:7488
std::tuple< Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition: Settings.h:7324
const Threshold & threshold() const
Get Threshold
Definition: Settings.h:7455
Threshold & threshold()
Get Threshold
Definition: Settings.h:7461
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:7507
Removal()
Default constructor
bool operator==(const Removal &other) const
Equality operator
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:7380
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:7515
Contains a filter that removes points with large Euclidean distance to neighboring points
Definition: Settings.h:7094
const Removal & removal() const
Get Removal
Definition: Settings.h:7667
Outlier(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:7581
Outlier & set(const Removal &value)
Set Removal
Definition: Settings.h:7679
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:7744
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:7737
bool operator!=(const Outlier &other) const
Inequality operator
Outlier & set(const Removal::Threshold &value)
Set Removal::Threshold
Definition: Settings.h:7693
Outlier & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:7686
Removal & removal()
Get Removal
Definition: Settings.h:7673
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:7646
friend std::ostream & operator<<(std::ostream &stream, const Outlier &value)
Operator to send the value as string to a stream
Definition: Settings.h:7759
bool operator==(const Outlier &other) const
Equality operator
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:7724
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:7704
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:7714
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:7610
std::tuple< Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition: Settings.h:7552
Enable or disable the reflection filter. Note that this filter is computationally intensive and may a...
Definition: Settings.h:7820
bool ValueType
The type of the underlying value
Definition: Settings.h:7837
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:7838
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:7877
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:7851
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:7883
bool value() const
Get the value
static const Enabled no
Off/disabled.
Definition: Settings.h:7839
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:7871
Enabled()=default
Default constructor
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:7842
The reflection filter has two modes: Local and Global. Local mode preserves more 3D data on thinner o...
Definition: Settings.h:7927
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:8009
static const Mode global
global
Definition: Settings.h:7958
constexpr Mode(ValueType value)
Constructor
Definition: Settings.h:7971
void reset()
Reset the node to unset state
bool operator==(const Mode &other) const
Comparison operator
Definition: Settings.h:7997
ValueType value() const
Get the value
bool operator!=(const Mode &other) const
Comparison operator
Definition: Settings.h:8003
ValueType
The type of the underlying value
Definition: Settings.h:7954
static const Mode local
local
Definition: Settings.h:7959
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:7962
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream
Definition: Settings.h:7991
Experimental reflection filter related settings
Definition: Settings.h:7900
Experimental(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:8062
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:8189
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:8182
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:8123
std::tuple< Settings::Processing::Filters::Reflection::Removal::Experimental::Mode > Descendants
Definition: Settings.h:8035
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream
Definition: Settings.h:8204
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:8169
bool operator==(const Experimental &other) const
Equality operator
Mode & mode()
Get Mode
Definition: Settings.h:8150
const Mode & mode() const
Get Mode
Definition: Settings.h:8144
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:8089
Experimental()
Default constructor
Experimental & set(const Mode &value)
Set Mode
Definition: Settings.h:8156
std::string toString() const
Get the value as string
Discard points likely introduced by reflections (useful for shiny materials)
Definition: Settings.h:7800
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:8358
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:8345
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream
Definition: Settings.h:8455
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:8388
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:8282
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:8224
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:8431
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:8411
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:8318
Removal(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:8253
Removal & set(const Enabled &value)
Set Enabled
Definition: Settings.h:8351
Removal & set(const Experimental &value)
Set Experimental
Definition: Settings.h:8370
Experimental & experimental()
Get Experimental
Definition: Settings.h:8364
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:8439
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:8339
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:8399
bool operator!=(const Removal &other) const
Inequality operator
Removal & set(const Experimental::Mode &value)
Set Experimental::Mode
Definition: Settings.h:8377
Contains a filter that removes points likely introduced by reflections (useful for shiny materials)
Definition: Settings.h:7780
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:8670
Reflection & set(const Removal::Experimental &value)
Set Removal::Experimental
Definition: Settings.h:8621
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:8477
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:8659
Removal & removal()
Get Removal
Definition: Settings.h:8601
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:8537
friend std::ostream & operator<<(std::ostream &stream, const Reflection &value)
Operator to send the value as string to a stream
Definition: Settings.h:8705
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:8690
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:8683
Reflection & set(const Removal::Enabled &value)
Set Removal::Enabled
Definition: Settings.h:8614
Reflection()
Default constructor
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:8649
Reflection(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:8507
std::string toString() const
Get the value as string
Reflection & set(const Removal::Experimental::Mode &value)
Set Removal::Experimental::Mode
Definition: Settings.h:8628
const Removal & removal() const
Get Removal
Definition: Settings.h:8595
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:8639
Reflection & set(const Removal &value)
Set Removal
Definition: Settings.h:8607
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:8574
Enable or disable the smoothing filter
Definition: Settings.h:8764
bool ValueType
The type of the underlying value
Definition: Settings.h:8781
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:8786
bool value() const
Get the value
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:8821
static const Enabled yes
On/enabled.
Definition: Settings.h:8782
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:8815
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:8827
static const Enabled no
Off/disabled.
Definition: Settings.h:8783
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:8795
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:8844
Sigma()=default
Default constructor
double ValueType
The type of the underlying value
Definition: Settings.h:8861
bool operator!=(const Sigma &other) const
Comparison operator
Definition: Settings.h:8899
bool operator>(const Sigma &other) const
Comparison operator
Definition: Settings.h:8911
double value() const
Get the value
bool hasValue() const
Check if the value is set
constexpr Sigma(double value)
Constructor
Definition: Settings.h:8873
static constexpr Range< double > validRange()
The range of valid values for Sigma
Definition: Settings.h:8864
friend std::ostream & operator<<(std::ostream &stream, const Sigma &value)
Operator to serialize the value to a stream
Definition: Settings.h:8929
void reset()
Reset the node to unset state
bool operator>=(const Sigma &other) const
Comparison operator
Definition: Settings.h:8923
bool operator==(const Sigma &other) const
Comparison operator
Definition: Settings.h:8893
bool operator<=(const Sigma &other) const
Comparison operator
Definition: Settings.h:8917
std::string toString() const
Get the value as string
bool operator<(const Sigma &other) const
Comparison operator
Definition: Settings.h:8905
Gaussian smoothing of the point cloud
Definition: Settings.h:8744
Gaussian(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:8982
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:9072
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:9137
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:9118
Gaussian & set(const Enabled &value)
Set Enabled
Definition: Settings.h:9078
friend std::ostream & operator<<(std::ostream &stream, const Gaussian &value)
Operator to send the value as string to a stream
Definition: Settings.h:9161
const Sigma & sigma() const
Get Sigma
Definition: Settings.h:9085
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition: Settings.h:8954
bool operator==(const Gaussian &other) const
Equality operator
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:9066
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:9108
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:9045
Gaussian & set(const Sigma &value)
Set Sigma
Definition: Settings.h:9097
Sigma & sigma()
Get Sigma
Definition: Settings.h:9091
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:9010
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:9145
Smoothing filters
Definition: Settings.h:8726
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:9276
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:9240
Smoothing & set(const Gaussian &value)
Set Gaussian
Definition: Settings.h:9309
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:9182
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:9344
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:9374
Smoothing & set(const Gaussian::Sigma &value)
Set Gaussian::Sigma
Definition: Settings.h:9323
Smoothing & set(const Gaussian::Enabled &value)
Set Gaussian::Enabled
Definition: Settings.h:9316
bool operator!=(const Smoothing &other) const
Inequality operator
const Gaussian & gaussian() const
Get Gaussian
Definition: Settings.h:9297
Smoothing(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:9211
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:9334
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:9367
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:9354
friend std::ostream & operator<<(std::ostream &stream, const Smoothing &value)
Operator to send the value as string to a stream
Definition: Settings.h:9389
Gaussian & gaussian()
Get Gaussian
Definition: Settings.h:9303
Filters
Definition: Settings.h:3176
bool operator!=(const Filters &other) const
Inequality operator
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:10194
Filters & set(const Reflection::Removal::Enabled &value)
Set Reflection::Removal::Enabled
Definition: Settings.h:9896
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:10357
Filters & set(const Cluster &value)
Set Cluster
Definition: Settings.h:9659
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:10204
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:9626
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:10096
std::string toString() const
Get the value as string
Filters & set(const Reflection::Removal::Experimental &value)
Set Reflection::Removal::Experimental
Definition: Settings.h:9903
Filters & set(const Cluster::Removal::MaxNeighborDistance &value)
Set Cluster::Removal::MaxNeighborDistance
Definition: Settings.h:9680
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:10165
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:10253
const Settings::Processing::Filters::Smoothing & get() const
Definition: Settings.h:10272
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition: Settings.h:9970
Cluster & cluster()
Get Cluster
Definition: Settings.h:9653
Filters & set(const Reflection::Removal::Experimental::Mode &value)
Set Reflection::Removal::Experimental::Mode
Definition: Settings.h:9910
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:10233
const Settings::Processing::Filters::Reflection & get() const
Definition: Settings.h:10223
Filters & set(const Outlier::Removal::Threshold &value)
Set Outlier::Removal::Threshold
Definition: Settings.h:9863
Filters & set(const Experimental::ContrastDistortion::Correction::Strength &value)
Set Experimental::ContrastDistortion::Correction::Strength
Definition: Settings.h:9734
Filters & set(const Experimental &value)
Set Experimental
Definition: Settings.h:9706
Outlier & outlier()
Get Outlier
Definition: Settings.h:9836
Filters & set(const Outlier::Removal &value)
Set Outlier::Removal
Definition: Settings.h:9849
const Cluster & cluster() const
Get Cluster
Definition: Settings.h:9647
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:9694
Filters & set(const Experimental::ContrastDistortion &value)
Set Experimental::ContrastDistortion
Definition: Settings.h:9713
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:10377
Filters & set(const Cluster::Removal::Enabled &value)
Set Cluster::Removal::Enabled
Definition: Settings.h:9673
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:10243
const Settings::Processing::Filters::Experimental::HoleFilling & get() const
Definition: Settings.h:10107
const Settings::Processing::Filters::Outlier & get() const
Definition: Settings.h:10184
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:10019
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:10302
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:9560
const Reflection & reflection() const
Get Reflection
Definition: Settings.h:9870
const Settings::Processing::Filters::Experimental & get() const
Definition: Settings.h:10009
Filters & set(const Experimental::HoleFilling::Enabled &value)
Set Experimental::HoleFilling::Enabled
Definition: Settings.h:9769
Filters & set(const Noise::Removal::Threshold &value)
Set Noise::Removal::Threshold
Definition: Settings.h:9823
Filters & set(const Experimental::HoleFilling &value)
Set Experimental::HoleFilling
Definition: Settings.h:9762
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:10292
Filters & set(const Reflection &value)
Set Reflection
Definition: Settings.h:9882
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:10058
Filters & set(const Experimental::ContrastDistortion::Removal &value)
Set Experimental::ContrastDistortion::Removal
Definition: Settings.h:9741
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:10345
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:9980
Filters & set(const Outlier &value)
Set Outlier
Definition: Settings.h:9842
const Noise & noise() const
Get Noise
Definition: Settings.h:9790
Filters & set(const Experimental::ContrastDistortion::Correction &value)
Set Experimental::ContrastDistortion::Correction
Definition: Settings.h:9720
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:10044
Filters & set(const Reflection::Removal &value)
Set Reflection::Removal
Definition: Settings.h:9889
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:10155
Filters & set(const Noise::Removal::Enabled &value)
Set Noise::Removal::Enabled
Definition: Settings.h:9816
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::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:9440
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:10137
Filters & set(const Smoothing::Gaussian::Enabled &value)
Set Smoothing::Gaussian::Enabled
Definition: Settings.h:9943
const Settings::Processing::Filters::Noise & get() const
Definition: Settings.h:10146
Filters & set(const Experimental::ContrastDistortion::Removal::Threshold &value)
Set Experimental::ContrastDistortion::Removal::Threshold
Definition: Settings.h:9755
Filters & set(const Smoothing::Gaussian &value)
Set Smoothing::Gaussian
Definition: Settings.h:9936
bool operator==(const Filters &other) const
Equality operator
Filters & set(const Outlier::Removal::Enabled &value)
Set Outlier::Removal::Enabled
Definition: Settings.h:9856
Filters & set(const Experimental::HoleFilling::HoleSize &value)
Set Experimental::HoleFilling::HoleSize
Definition: Settings.h:9776
Filters & set(const Cluster::Removal &value)
Set Cluster::Removal
Definition: Settings.h:9666
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:10083
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:10263
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:10127
Filters & set(const Cluster::Removal::MinArea &value)
Set Cluster::Removal::MinArea
Definition: Settings.h:9687
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:10070
Filters(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:9500
Noise & noise()
Get Noise
Definition: Settings.h:9796
Filters & set(const Smoothing &value)
Set Smoothing
Definition: Settings.h:9929
Filters & set(const Experimental::ContrastDistortion::Correction::Enabled &value)
Set Experimental::ContrastDistortion::Correction::Enabled
Definition: Settings.h:9727
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:9990
Filters & set(const Noise::Removal &value)
Set Noise::Removal
Definition: Settings.h:9809
const Settings::Processing::Filters::Cluster & get() const
Definition: Settings.h:9960
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:10214
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:10175
Smoothing & smoothing()
Get Smoothing
Definition: Settings.h:9923
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:10000
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:10282
Filters & set(const Experimental::ContrastDistortion::Removal::Enabled &value)
Set Experimental::ContrastDistortion::Removal::Enabled
Definition: Settings.h:9748
Filters & set(const Experimental::HoleFilling::Strictness &value)
Set Experimental::HoleFilling::Strictness
Definition: Settings.h:9783
const Outlier & outlier() const
Get Outlier
Definition: Settings.h:9830
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:10117
Reflection & reflection()
Get Reflection
Definition: Settings.h:9876
Filters & set(const Noise &value)
Set Noise
Definition: Settings.h:9802
Filters & set(const Smoothing::Gaussian::Sigma &value)
Set Smoothing::Gaussian::Sigma
Definition: Settings.h:9950
const Smoothing & smoothing() const
Get Smoothing
Definition: Settings.h:9917
Experimental & experimental()
Get Experimental
Definition: Settings.h:9700
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:10030
Settings related to processing of a capture, including filters and color balance
Definition: Settings.h:1706
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:11247
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:11054
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:11182
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:11389
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:11350
Processing & set(const Color::Experimental &value)
Set Color::Experimental
Definition: Settings.h:10721
Processing & set(const Color &value)
Set Color
Definition: Settings.h:10686
Processing & set(const Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Filters::Cluster::Removal::MaxNeighborDistance
Definition: Settings.h:10782
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:11036
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::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:10442
Processing & set(const Color::Balance &value)
Set Color::Balance
Definition: Settings.h:10693
Processing & set(const Filters::Smoothing::Gaussian &value)
Set Filters::Smoothing::Gaussian
Definition: Settings.h:10978
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:10654
Filters & filters()
Get Filters
Definition: Settings.h:10748
Processing & set(const Filters::Smoothing::Gaussian::Enabled &value)
Set Filters::Smoothing::Gaussian::Enabled
Definition: Settings.h:10985
const Settings::Processing::Color::Gamma & get() const
Definition: Settings.h:11062
Processing & set(const Filters::Experimental::ContrastDistortion::Removal &value)
Set Filters::Experimental::ContrastDistortion::Removal
Definition: Settings.h:10831
Processing & set(const Filters::Experimental::HoleFilling::HoleSize &value)
Set Filters::Experimental::HoleFilling::HoleSize
Definition: Settings.h:10866
Processing()
Default constructor
const Settings::Processing::Filters::Smoothing & get() const
Definition: Settings.h:11379
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Filters::Experimental::ContrastDistortion::Removal::Threshold
Definition: Settings.h:10845
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:11027
Processing & set(const Filters::Outlier::Removal &value)
Set Filters::Outlier::Removal
Definition: Settings.h:10915
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Removal::Enabled
Definition: Settings.h:10838
Processing & set(const Filters::Cluster::Removal::Enabled &value)
Set Filters::Cluster::Removal::Enabled
Definition: Settings.h:10775
friend std::ostream & operator<<(std::ostream &stream, const Processing &value)
Operator to send the value as string to a stream
Definition: Settings.h:11452
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:11193
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:11340
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:11284
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:11409
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:11274
Processing & set(const Color::Balance::Blue &value)
Set Color::Balance::Blue
Definition: Settings.h:10700
Color & color()
Get Color
Definition: Settings.h:10680
Processing & set(const Filters::Experimental::HoleFilling::Strictness &value)
Set Filters::Experimental::HoleFilling::Strictness
Definition: Settings.h:10873
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:11360
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:11399
Processing & set(const Filters::Reflection &value)
Set Filters::Reflection
Definition: Settings.h:10936
Processing & set(const Filters::Noise &value)
Set Filters::Noise
Definition: Settings.h:10880
Processing & set(const Filters::Cluster &value)
Set Filters::Cluster
Definition: Settings.h:10761
const Settings::Processing::Filters::Outlier & get() const
Definition: Settings.h:11292
const Settings::Processing::Filters & get() const
Definition: Settings.h:11070
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Filters::Experimental::ContrastDistortion::Correction::Strength
Definition: Settings.h:10824
Processing & set(const Filters::Noise::Removal::Enabled &value)
Set Filters::Noise::Removal::Enabled
Definition: Settings.h:10894
Processing & set(const Filters::Smoothing &value)
Set Filters::Smoothing
Definition: Settings.h:10971
const Settings::Processing::Color::Balance & get() const
Definition: Settings.h:11009
const Filters & filters() const
Get Filters
Definition: Settings.h:10742
Processing & set(const Filters::Cluster::Removal &value)
Set Filters::Cluster::Removal
Definition: Settings.h:10768
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:11436
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:11117
Processing & set(const Filters::Smoothing::Gaussian::Sigma &value)
Set Filters::Smoothing::Gaussian::Sigma
Definition: Settings.h:10992
Processing & set(const Filters::Noise::Removal &value)
Set Filters::Noise::Removal
Definition: Settings.h:10887
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:11227
Processing & set(const Filters::Reflection::Removal::Experimental &value)
Set Filters::Reflection::Removal::Experimental
Definition: Settings.h:10957
Processing & set(const Filters::Outlier::Removal::Enabled &value)
Set Filters::Outlier::Removal::Enabled
Definition: Settings.h:10922
Processing & set(const Filters::Noise::Removal::Threshold &value)
Set Filters::Noise::Removal::Threshold
Definition: Settings.h:10901
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:11018
Processing & set(const Filters::Cluster::Removal::MinArea &value)
Set Filters::Cluster::Removal::MinArea
Definition: Settings.h:10789
Processing & set(const Filters::Experimental &value)
Set Filters::Experimental
Definition: Settings.h:10796
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:11264
Processing & set(const Filters::Outlier::Removal::Threshold &value)
Set Filters::Outlier::Removal::Threshold
Definition: Settings.h:10929
Processing & set(const Filters::Experimental::HoleFilling &value)
Set Filters::Experimental::HoleFilling
Definition: Settings.h:10852
Processing & set(const Color::Balance::Green &value)
Set Color::Balance::Green
Definition: Settings.h:10707
Processing & set(const Filters::Experimental::HoleFilling::Enabled &value)
Set Filters::Experimental::HoleFilling::Enabled
Definition: Settings.h:10859
const Settings::Processing::Color::Experimental & get() const
Definition: Settings.h:11045
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:11171
Processing & set(const Filters::Outlier &value)
Set Filters::Outlier
Definition: Settings.h:10908
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:11158
Processing & set(const Color::Experimental::Mode &value)
Set Color::Experimental::Mode
Definition: Settings.h:10728
Processing & set(const Filters::Reflection::Removal::Enabled &value)
Set Filters::Reflection::Removal::Enabled
Definition: Settings.h:10950
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Correction::Enabled
Definition: Settings.h:10817
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:11097
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:11321
Processing & set(const Filters::Reflection::Removal::Experimental::Mode &value)
Set Filters::Reflection::Removal::Experimental::Mode
Definition: Settings.h:10964
Processing & set(const Filters::Reflection::Removal &value)
Set Filters::Reflection::Removal
Definition: Settings.h:10943
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:11370
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:11107
Processing(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:10511
Processing & set(const Filters::Experimental::ContrastDistortion::Correction &value)
Set Filters::Experimental::ContrastDistortion::Correction
Definition: Settings.h:10810
const Settings::Processing::Color & get() const
Definition: Settings.h:11001
bool operator==(const Processing &other) const
Equality operator
const Color & color() const
Get Color
Definition: Settings.h:10674
Processing & set(const Filters::Experimental::ContrastDistortion &value)
Set Filters::Experimental::ContrastDistortion
Definition: Settings.h:10803
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition: Settings.h:11087
const Settings::Processing::Filters::Reflection & get() const
Definition: Settings.h:11330
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:11311
Processing & set(const Filters &value)
Set Filters
Definition: Settings.h:10754
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:11237
Processing & set(const Color::Balance::Red &value)
Set Color::Balance::Red
Definition: Settings.h:10714
const Settings::Processing::Filters::Noise & get() const
Definition: Settings.h:11255
bool operator!=(const Processing &other) const
Inequality operator
const Settings::Processing::Filters::Experimental & get() const
Definition: Settings.h:11126
Processing & set(const Color::Gamma &value)
Set Color::Gamma
Definition: Settings.h:10735
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:10580
const Settings::Processing::Filters::Experimental::HoleFilling & get() const
Definition: Settings.h:11217
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:11206
const Settings::Processing::Filters::Cluster & get() const
Definition: Settings.h:11078
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:11146
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:11136
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:11428
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:11301
Enabled
Definition: Settings.h:11532
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:11561
bool ValueType
The type of the underlying value
Definition: Settings.h:11547
bool operator==(const Enabled &other) const
Comparison operator
Definition: Settings.h:11581
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:11552
static const Enabled yes
On/enabled.
Definition: Settings.h:11548
static const Enabled no
Off/disabled.
Definition: Settings.h:11549
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:11593
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:11587
Two points on the normal describing the direction and distance from the plane from which the normal i...
Definition: Settings.h:11610
std::string toString() const
Get the value as string
bool operator==(const Extents &other) const
Comparison operator
Definition: Settings.h:11658
Extents()=default
Default constructor
void reset()
Reset the node to unset state
constexpr Extents(Zivid::Range< double > value)
Constructor
Definition: Settings.h:11633
constexpr Extents(double minValue, double maxValue)
Constructor
Definition: Settings.h:11653
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:11670
const Zivid::Range< double > & value() const
Get the value
bool operator!=(const Extents &other) const
Comparison operator
Definition: Settings.h:11664
A point such that the vector from PointO to PointA describes the first edge of the parallelogram
Definition: Settings.h:11687
void reset()
Reset the node to unset state
constexpr PointA(float x, float y, float z)
Constructor
Definition: Settings.h:11730
bool operator!=(const PointA &other) const
Comparison operator
Definition: Settings.h:11741
PointA()=default
Default constructor
bool operator==(const PointA &other) const
Comparison operator
Definition: Settings.h:11735
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:11747
constexpr PointA(Zivid::PointXYZ value)
Constructor
Definition: Settings.h:11710
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:11764
PointB()=default
Default constructor
bool operator==(const PointB &other) const
Comparison operator
Definition: Settings.h:11812
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:11824
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:11807
constexpr PointB(Zivid::PointXYZ value)
Constructor
Definition: Settings.h:11787
Zivid::PointXYZ value() const
Get the value
bool operator!=(const PointB &other) const
Comparison operator
Definition: Settings.h:11818
The point at the intersection of two adjacent edges defining a parallelogram
Definition: Settings.h:11841
constexpr PointO(float x, float y, float z)
Constructor
Definition: Settings.h:11884
void reset()
Reset the node to unset state
bool operator!=(const PointO &other) const
Comparison operator
Definition: Settings.h:11895
PointO()=default
Default constructor
constexpr PointO(Zivid::PointXYZ value)
Constructor
Definition: Settings.h:11864
bool operator==(const PointO &other) const
Comparison operator
Definition: Settings.h:11889
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:11901
Removes the points outside the box.
Definition: Settings.h:11504
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:11919
std::string toString() const
Get the value as string
Box & set(const PointA &value)
Set PointA
Definition: Settings.h:12089
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:12018
const PointO & pointO() const
Get PointO
Definition: Settings.h:12115
Box & set(const PointO &value)
Set PointO
Definition: Settings.h:12127
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:12045
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:12039
Box & set(const Extents &value)
Set Extents
Definition: Settings.h:12070
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition: Settings.h:12137
PointA & pointA()
Get PointA
Definition: Settings.h:12083
PointB & pointB()
Get PointB
Definition: Settings.h:12102
Box & set(const PointB &value)
Set PointB
Definition: Settings.h:12108
const Settings::RegionOfInterest::Box::PointO & get() const
Definition: Settings.h:12173
const Settings::RegionOfInterest::Box::PointA & get() const
Definition: Settings.h:12155
const Extents & extents() const
Get Extents
Definition: Settings.h:12058
Box(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:11950
const PointA & pointA() const
Get PointA
Definition: Settings.h:12077
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:11981
PointO & pointO()
Get PointO
Definition: Settings.h:12121
Extents & extents()
Get Extents
Definition: Settings.h:12064
const PointB & pointB() const
Get PointB
Definition: Settings.h:12096
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:12210
friend std::ostream & operator<<(std::ostream &stream, const Box &value)
Operator to send the value as string to a stream
Definition: Settings.h:12240
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:12164
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:12221
const Settings::RegionOfInterest::Box::Extents & get() const
Definition: Settings.h:12146
Box & set(const Enabled &value)
Set Enabled
Definition: Settings.h:12051
Enabled
Definition: Settings.h:12289
Enabled()=default
Default constructor
static const Enabled yes
On/enabled.
Definition: Settings.h:12305
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:12338
bool operator!=(const Enabled &other) const
Comparison operator
Definition: Settings.h:12344
bool ValueType
The type of the underlying value
Definition: Settings.h:12304
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream
Definition: Settings.h:12350
bool value() const
Get the value
static std::set< bool > validValues()
All valid values of Enabled
Definition: Settings.h:12309
std::string toString() const
Get the value as string
static const Enabled no
Off/disabled.
Definition: Settings.h:12306
constexpr Enabled(bool value)
Constructor
Definition: Settings.h:12318
Specify the minimum and maximum Z value that will be included.
Definition: Settings.h:12367
constexpr Range(double minValue, double maxValue)
Constructor
Definition: Settings.h:12410
constexpr Range(Zivid::Range< double > value)
Constructor
Definition: Settings.h:12390
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:12427
Range()=default
Default constructor
bool operator==(const Range &other) const
Comparison operator
Definition: Settings.h:12415
bool operator!=(const Range &other) const
Comparison operator
Definition: Settings.h:12421
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:12267
Depth()
Default constructor
Depth & set(const Enabled &value)
Set Enabled
Definition: Settings.h:12564
std::string toString() const
Get the value as string
const Range & range() const
Get Range
Definition: Settings.h:12571
Depth & set(const Range &value)
Set Range
Definition: Settings.h:12583
std::tuple< Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range > Descendants
Definition: Settings.h:12441
const Enabled & isEnabled() const
Get Enabled
Definition: Settings.h:12552
bool operator==(const Depth &other) const
Equality operator
Depth(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:12469
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:12629
bool operator!=(const Depth &other) const
Inequality operator
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition: Settings.h:12593
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:12621
Range & range()
Get Range
Definition: Settings.h:12577
friend std::ostream & operator<<(std::ostream &stream, const Depth &value)
Operator to send the value as string to a stream
Definition: Settings.h:12645
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:12497
Enabled & isEnabled()
Get Enabled
Definition: Settings.h:12558
const Settings::RegionOfInterest::Depth::Range & get() const
Definition: Settings.h:12602
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:12531
Removes points outside the region of interest.
Definition: Settings.h:11475
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition: Settings.h:12950
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:12672
Depth & depth()
Get Depth
Definition: Settings.h:12862
RegionOfInterest & set(const Depth::Enabled &value)
Set Depth::Enabled
Definition: Settings.h:12875
const Box & box() const
Get Box
Definition: Settings.h:12802
RegionOfInterest & set(const Box &value)
Set Box
Definition: Settings.h:12814
friend std::ostream & operator<<(std::ostream &stream, const RegionOfInterest &value)
Operator to send the value as string to a stream
Definition: Settings.h:13002
RegionOfInterest & set(const Box::PointO &value)
Set Box::PointO
Definition: Settings.h:12849
const Settings::RegionOfInterest::Box::PointO & get() const
Definition: Settings.h:12933
std::string toString() const
Get the value as string
const Settings::RegionOfInterest::Box::PointA & get() const
Definition: Settings.h:12917
const Settings::RegionOfInterest::Depth & get() const
Definition: Settings.h:12941
const Settings::RegionOfInterest::Box::Extents & get() const
Definition: Settings.h:12909
const Settings::RegionOfInterest::Depth::Range & get() const
Definition: Settings.h:12959
const Settings::RegionOfInterest::Box::PointB & get() const
Definition: Settings.h:12925
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:12742
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:12782
Box & box()
Get Box
Definition: Settings.h:12808
const Settings::RegionOfInterest::Box & get() const
Definition: Settings.h:12891
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:12978
RegionOfInterest & set(const Box::PointA &value)
Set Box::PointA
Definition: Settings.h:12835
const Depth & depth() const
Get Depth
Definition: Settings.h:12856
RegionOfInterest & set(const Box::Extents &value)
Set Box::Extents
Definition: Settings.h:12828
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:12986
RegionOfInterest & set(const Box::Enabled &value)
Set Box::Enabled
Definition: Settings.h:12821
RegionOfInterest & set(const Depth::Range &value)
Set Depth::Range
Definition: Settings.h:12882
bool operator!=(const RegionOfInterest &other) const
Inequality operator
RegionOfInterest & set(const Depth &value)
Set Depth
Definition: Settings.h:12868
RegionOfInterest & set(const Box::PointB &value)
Set Box::PointB
Definition: Settings.h:12842
bool operator==(const RegionOfInterest &other) const
Equality operator
RegionOfInterest(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:12707
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition: Settings.h:12900
RegionOfInterest()
Default constructor
Settings used when capturing with a Zivid camera
Definition: Settings.h:124
const Settings::RegionOfInterest::Depth & get() const
Definition: Settings.h:14333
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition: Settings.h:14177
Settings(Args &&...args)
Constructor taking variadic number of arguments
Definition: Settings.h:13166
Settings & set(const Processing::Filters::Cluster::Removal::MinArea &value)
Set Processing::Filters::Cluster::Removal::MinArea
Definition: Settings.h:13541
const Settings::Processing::Filters::Outlier & get() const
Definition: Settings.h:14158
Settings & set(const RegionOfInterest::Box::PointB &value)
Set RegionOfInterest::Box::PointB
Definition: Settings.h:13798
const Settings::Processing::Color::Balance & get() const
Definition: Settings.h:13883
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled
Definition: Settings.h:13590
const Experimental & experimental() const
Get Experimental
Definition: Settings.h:13405
const Settings::Processing::Color::Balance::Red & get() const
Definition: Settings.h:13907
Settings & set(const Processing::Color::Experimental::Mode &value)
Set Processing::Color::Experimental::Mode
Definition: Settings.h:13492
Settings & set(const Processing::Filters::Smoothing &value)
Set Processing::Filters::Smoothing
Definition: Settings.h:13723
const Settings::Processing::Filters::Experimental::HoleFilling::Enabled & get() const
Definition: Settings.h:14093
const Settings::RegionOfInterest & get() const
Definition: Settings.h:14277
const Settings::Processing::Filters::Noise::Removal & get() const
Definition: Settings.h:14130
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:13341
const Processing & processing() const
Get Processing
Definition: Settings.h:13431
const Settings::Processing::Filters::Experimental::HoleFilling::HoleSize & get() const
Definition: Settings.h:14103
const Settings::Experimental & get() const
Definition: Settings.h:13853
const Settings::Processing::Color::Gamma & get() const
Definition: Settings.h:13932
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition: Settings.h:14049
Settings & set(const Processing &value)
Set Processing
Definition: Settings.h:13443
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition: Settings.h:14072
Settings & set(const Processing::Filters::Outlier::Removal::Enabled &value)
Set Processing::Filters::Outlier::Removal::Enabled
Definition: Settings.h:13674
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition: Settings.h:13977
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold
Definition: Settings.h:13597
Settings & set(const Experimental::Engine &value)
Set Experimental::Engine
Definition: Settings.h:13424
Settings & set(const Processing::Filters::Smoothing::Gaussian &value)
Set Processing::Filters::Smoothing::Gaussian
Definition: Settings.h:13730
Settings & set(const Diagnostics &value)
Set Diagnostics
Definition: Settings.h:13391
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition: Settings.h:14060
Settings & set(const RegionOfInterest::Depth::Enabled &value)
Set RegionOfInterest::Depth::Enabled
Definition: Settings.h:13819
Settings & set(const Processing::Filters::Noise &value)
Set Processing::Filters::Noise
Definition: Settings.h:13632
void load(const std::string &fileName)
Load from the given file
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition: Settings.h:13987
const Settings::Acquisitions & get() const
Definition: Settings.h:13833
const Settings::Processing::Filters::Experimental::HoleFilling & get() const
Definition: Settings.h:14083
const Settings::Processing::Filters::Experimental & get() const
Definition: Settings.h:13995
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition: Settings.h:14167
Settings & set(const Processing::Filters::Cluster &value)
Set Processing::Filters::Cluster
Definition: Settings.h:13513
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition: Settings.h:14271
Settings & set(const Processing::Filters::Reflection::Removal::Experimental &value)
Set Processing::Filters::Reflection::Removal::Experimental
Definition: Settings.h:13709
const Settings::Diagnostics & get() const
Definition: Settings.h:13839
RegionOfInterest & regionOfInterest()
Get RegionOfInterest
Definition: Settings.h:13757
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition: Settings.h:14261
const Settings::RegionOfInterest::Box & get() const
Definition: Settings.h:14285
Settings & set(const Processing::Color::Balance &value)
Set Processing::Color::Balance
Definition: Settings.h:13457
const Settings::RegionOfInterest::Box::PointO & get() const
Definition: Settings.h:14325
Settings & set(const RegionOfInterest::Depth &value)
Set RegionOfInterest::Depth
Definition: Settings.h:13812
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition: Settings.h:14140
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition: Settings.h:14341
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition: Settings.h:14015
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:14386
const Settings::Processing::Color::Balance::Green & get() const
Definition: Settings.h:13899
const Settings::RegionOfInterest::Box::Extents & get() const
Definition: Settings.h:14301
Settings & set(const Processing::Filters::Smoothing::Gaussian::Enabled &value)
Set Processing::Filters::Smoothing::Gaussian::Enabled
Definition: Settings.h:13737
const Settings::Processing & get() const
Definition: Settings.h:13867
Settings & set(const Processing::Filters::Reflection &value)
Set Processing::Filters::Reflection
Definition: Settings.h:13688
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::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 > Descendants
Definition: Settings.h:13079
const Settings::Experimental::Engine & get() const
Definition: Settings.h:13861
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter
Definition: Settings.h:14397
Settings()
Default constructor
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition: Settings.h:14005
Settings & set(const Processing::Filters::Outlier::Removal::Threshold &value)
Set Processing::Filters::Outlier::Removal::Threshold
Definition: Settings.h:13681
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition: Settings.h:14293
const Settings::Processing::Color::Experimental::Mode & get() const
Definition: Settings.h:13924
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Strength
Definition: Settings.h:13576
Settings & set(const RegionOfInterest::Box::Enabled &value)
Set RegionOfInterest::Box::Enabled
Definition: Settings.h:13777
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition: Settings.h:14038
Settings & set(const RegionOfInterest::Box::Extents &value)
Set RegionOfInterest::Box::Extents
Definition: Settings.h:13784
const Settings::Processing::Color::Balance::Blue & get() const
Definition: Settings.h:13891
const Acquisitions & acquisitions() const
Get Acquisitions
Definition: Settings.h:13360
void set(Args &&...args)
Set multiple arguments
Definition: Settings.h:13251
const Settings::Processing::Filters::Reflection & get() const
Definition: Settings.h:14195
Settings & set(const Processing::Filters::Experimental &value)
Set Processing::Filters::Experimental
Definition: Settings.h:13548
const Settings::Processing::Filters::Smoothing & get() const
Definition: Settings.h:14242
const Settings::Processing::Filters & get() const
Definition: Settings.h:13940
Settings & set(const Processing::Color::Experimental &value)
Set Processing::Color::Experimental
Definition: Settings.h:13485
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:13826
const Settings::Processing::Filters::Experimental::HoleFilling::Strictness & get() const
Definition: Settings.h:14113
const Settings::Processing::Color::Experimental & get() const
Definition: Settings.h:13915
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal
Definition: Settings.h:13583
const Settings::RegionOfInterest::Box::PointA & get() const
Definition: Settings.h:14309
Settings & set(const Processing::Color &value)
Set Processing::Color
Definition: Settings.h:13450
Experimental & experimental()
Get Experimental
Definition: Settings.h:13411
Settings & set(const Processing::Filters::Outlier &value)
Set Processing::Filters::Outlier
Definition: Settings.h:13660
bool operator==(const Settings &other) const
Equality operator
Acquisitions & acquisitions()
Get Acquisitions
Definition: Settings.h:13366
Settings & set(const Processing::Filters::Reflection::Removal &value)
Set Processing::Filters::Reflection::Removal
Definition: Settings.h:13695
const Settings::Processing::Filters::Cluster & get() const
Definition: Settings.h:13948
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:13478
Settings & set(const RegionOfInterest::Box::PointO &value)
Set RegionOfInterest::Box::PointO
Definition: Settings.h:13805
Settings & set(const Processing::Filters::Cluster::Removal &value)
Set Processing::Filters::Cluster::Removal
Definition: Settings.h:13520
Settings & set(const RegionOfInterest::Box &value)
Set RegionOfInterest::Box
Definition: Settings.h:13770
Diagnostics & diagnostics()
Get Diagnostics
Definition: Settings.h:13385
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition: Settings.h:14150
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition: Settings.h:13967
const Settings::Processing::Filters::Reflection::Removal::Experimental & get() const
Definition: Settings.h:14224
Settings & set(const Processing::Filters::Reflection::Removal::Enabled &value)
Set Processing::Filters::Reflection::Removal::Enabled
Definition: Settings.h:13702
Processing & processing()
Get Processing
Definition: Settings.h:13437
Settings & set(const RegionOfInterest::Box::PointA &value)
Set RegionOfInterest::Box::PointA
Definition: Settings.h:13791
Settings & set(const Processing::Filters::Experimental::HoleFilling::Enabled &value)
Set Processing::Filters::Experimental::HoleFilling::Enabled
Definition: Settings.h:13611
Settings & set(const Processing::Filters::Experimental::HoleFilling &value)
Set Processing::Filters::Experimental::HoleFilling
Definition: Settings.h:13604
Settings & set(const Diagnostics::Enabled &value)
Set Diagnostics::Enabled
Definition: Settings.h:13398
const Settings::Processing::Filters::Noise & get() const
Definition: Settings.h:14121
const Settings::Diagnostics::Enabled & get() const
Definition: Settings.h:13847
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition: Settings.h:13957
Settings & set(const Processing::Filters::Experimental::HoleFilling::Strictness &value)
Set Processing::Filters::Experimental::HoleFilling::Strictness
Definition: Settings.h:13625
std::string toString() const
Get the value as string
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition: Settings.h:14026
const Settings::RegionOfInterest::Box::PointB & get() const
Definition: Settings.h:14317
Settings & set(const Processing::Filters::Experimental::ContrastDistortion &value)
Set Processing::Filters::Experimental::ContrastDistortion
Definition: Settings.h:13555
Settings & set(const Processing::Color::Gamma &value)
Set Processing::Color::Gamma
Definition: Settings.h:13499
Settings & set(const Processing::Filters::Cluster::Removal::Enabled &value)
Set Processing::Filters::Cluster::Removal::Enabled
Definition: Settings.h:13527
const Settings::RegionOfInterest::Depth::Range & get() const
Definition: Settings.h:14349
Settings & set(const Processing::Filters::Noise::Removal::Threshold &value)
Set Processing::Filters::Noise::Removal::Threshold
Definition: Settings.h:13653
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled
Definition: Settings.h:13569
Settings & set(const Processing::Filters::Reflection::Removal::Experimental::Mode &value)
Set Processing::Filters::Reflection::Removal::Experimental::Mode
Definition: Settings.h:13716
Settings & set(const Processing::Filters::Experimental::HoleFilling::HoleSize &value)
Set Processing::Filters::Experimental::HoleFilling::HoleSize
Definition: Settings.h:13618
Settings & set(const Acquisitions &value)
Set Acquisitions
Definition: Settings.h:13372
Settings & set(const Processing::Filters::Smoothing::Gaussian::Sigma &value)
Set Processing::Filters::Smoothing::Gaussian::Sigma
Definition: Settings.h:13744
const Diagnostics & diagnostics() const
Get Diagnostics
Definition: Settings.h:13379
bool operator!=(const Settings &other) const
Inequality operator
Settings & set(const Processing::Filters::Noise::Removal &value)
Set Processing::Filters::Noise::Removal
Definition: Settings.h:13639
Settings & set(const Processing::Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Processing::Filters::Cluster::Removal::MaxNeighborDistance
Definition: Settings.h:13534
Settings & set(const Processing::Filters::Outlier::Removal &value)
Set Processing::Filters::Outlier::Removal
Definition: Settings.h:13667
Settings & set(const RegionOfInterest &value)
Set RegionOfInterest
Definition: Settings.h:13763
Settings & set(const Processing::Filters::Noise::Removal::Enabled &value)
Set Processing::Filters::Noise::Removal::Enabled
Definition: Settings.h:13646
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction
Definition: Settings.h:13562
const Settings::Processing::Color & get() const
Definition: Settings.h:13875
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition: Settings.h:14214
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition: Settings.h:14204
Settings & set(const Processing::Color::Balance::Green &value)
Set Processing::Color::Balance::Green
Definition: Settings.h:13471
Settings & set(const Processing::Filters &value)
Set Processing::Filters
Definition: Settings.h:13506
const RegionOfInterest & regionOfInterest() const
Get RegionOfInterest
Definition: Settings.h:13751
Settings & set(const Experimental &value)
Set Experimental
Definition: Settings.h:13417
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition: Settings.h:14187
Settings & set(const Processing::Color::Balance::Blue &value)
Set Processing::Color::Balance::Blue
Definition: Settings.h:13464
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition: Settings.h:14251
friend std::ostream & operator<<(std::ostream &stream, const Settings &value)
Operator to send the value as string to a stream
Definition: Settings.h:14416
const Settings::Processing::Filters::Reflection::Removal::Experimental::Mode & get() const
Definition: Settings.h:14234
NodeType
Definition: NodeType.h:100
Ret validRange(const CameraInfo &cameraInfo)
Definition: SettingsInfo.h:225
The main Zivid namespace. All Zivid code is found here
Definition: Application.h:99
Point with three coordinates as float
Definition: Point.h:105