70# pragma warning(disable : 4251)
86 static constexpr const char *path{
"" };
89 static constexpr const char *name{
"Settings" };
92 static constexpr const char *description{
93 R
"description(Settings used when capturing with a Zivid camera.)description"
96 static constexpr size_t version{ 25 };
106 static constexpr std::array<uint8_t, 3> binaryId{
's',
'e',
't' };
120 static constexpr const char *path{
"Acquisition" };
123 static constexpr const char *name{
"Acquisition" };
126 static constexpr const char *description{ R
"description(Settings for a single acquisition.)description" };
140 static constexpr const char *path{
"Acquisition/Aperture" };
143 static constexpr const char *name{
"Aperture" };
146 static constexpr const char *description{
147 R
"description(Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to
148the effective aperture diameter).
158 return { 1.4, 32.0 };
166 : m_opt{ verifyValue(value) }
187 return m_opt == other.m_opt;
193 return m_opt != other.m_opt;
199 return m_opt < other.m_opt;
205 return m_opt > other.m_opt;
211 return m_opt <= other.m_opt;
217 return m_opt >= other.m_opt;
227 void setFromString(
const std::string &value);
229 constexpr ValueType
static verifyValue(
const ValueType &value)
231 return validRange().isInRange(value)
233 :
throw std::out_of_range{
"Aperture{ " + std::to_string(value) +
" } is not in range ["
234 + std::to_string(validRange().min()) +
", "
235 + std::to_string(validRange().max()) +
"]" };
238 Zivid::DataModel::Detail::Optional<double> m_opt;
240 friend struct DataModel::Detail::Befriend<
Aperture>;
263 static constexpr const char *path{
"Acquisition/Brightness" };
266 static constexpr const char *name{
"Brightness" };
269 static constexpr const char *description{
270 R
"description(Brightness controls the light output from the projector.
272Brightness above 1.0 may be needed when the distance between the camera and the scene is large,
273or in case of high levels of ambient lighting.
275When brightness is above 1.0 the duty cycle of the camera (the percentage of time the camera
276can capture) will be reduced. The duty cycle in boost mode is 50%. The duty cycle is calculated
277over a 10 second period. This limitation is enforced automatically by the camera. Calling capture
278when the duty cycle limit has been reached will cause the camera to first wait (sleep) for a
279duration of time to cool down, before capture will start.
297 : m_opt{ verifyValue(value) }
318 return m_opt == other.m_opt;
324 return m_opt != other.m_opt;
330 return m_opt < other.m_opt;
336 return m_opt > other.m_opt;
342 return m_opt <= other.m_opt;
348 return m_opt >= other.m_opt;
358 void setFromString(
const std::string &value);
360 constexpr ValueType
static verifyValue(
const ValueType &value)
362 return validRange().isInRange(value)
364 :
throw std::out_of_range{
"Brightness{ " + std::to_string(value)
365 +
" } is not in range [" + std::to_string(validRange().min())
366 +
", " + std::to_string(validRange().max()) +
"]" };
369 Zivid::DataModel::Detail::Optional<double> m_opt;
371 friend struct DataModel::Detail::Befriend<
Brightness>;
384 static constexpr const char *path{
"Acquisition/ExposureTime" };
387 static constexpr const char *name{
"ExposureTime" };
390 static constexpr const char *description{
391 R
"description(Exposure time for each single image in the measurement. Affects frame rate.)description"
400 return { std::chrono::microseconds{ 1677 }, std::chrono::microseconds{ 100000 } };
408 : m_opt{ verifyValue(value) }
415 std::chrono::microseconds
value()
const;
429 return m_opt == other.m_opt;
435 return m_opt != other.m_opt;
441 return m_opt < other.m_opt;
447 return m_opt > other.m_opt;
453 return m_opt <= other.m_opt;
459 return m_opt >= other.m_opt;
469 void setFromString(
const std::string &value);
471 constexpr ValueType
static verifyValue(
const ValueType &value)
473 return validRange().isInRange(value)
475 :
throw std::out_of_range{
"ExposureTime{ " + std::to_string(value.count())
476 +
" } is not in range ["
477 + std::to_string(validRange().min().count()) +
", "
478 + std::to_string(validRange().max().count()) +
"]" };
481 Zivid::DataModel::Detail::Optional<std::chrono::microseconds> m_opt;
483 friend struct DataModel::Detail::Befriend<
ExposureTime>;
496 static constexpr const char *path{
"Acquisition/Gain" };
499 static constexpr const char *name{
"Gain" };
502 static constexpr const char *description{ R
"description(Analog gain in the camera.)description" };
517 explicit constexpr Gain(
double value)
518 : m_opt{ verifyValue(value) }
539 return m_opt == other.m_opt;
545 return m_opt != other.m_opt;
551 return m_opt < other.m_opt;
557 return m_opt > other.m_opt;
563 return m_opt <= other.m_opt;
569 return m_opt >= other.m_opt;
579 void setFromString(
const std::string &value);
581 constexpr ValueType
static verifyValue(
const ValueType &value)
583 return validRange().isInRange(value)
585 :
throw std::out_of_range{
"Gain{ " + std::to_string(value) +
" } is not in range ["
586 + std::to_string(validRange().min()) +
", "
587 + std::to_string(validRange().max()) +
"]" };
590 Zivid::DataModel::Detail::Optional<double> m_opt;
592 friend struct DataModel::Detail::Befriend<
Gain>;
621 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
622 typename std::enable_if<
623 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
627 template<typename... Args>
631 using namespace Zivid::Detail::TypeTraits;
634 AllArgsDecayedAreUnique<Args...>::value,
635 "Found duplicate types among the arguments passed to Acquisition(...). "
636 "Types should be listed at most once.");
638 set(std::forward<Args>(args)...);
655 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
657 template<typename... Args>
661 using namespace Zivid::Detail::TypeTraits;
663 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
665 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
668 AllArgsDecayedAreUnique<Args...>::value,
669 "Found duplicate types among the arguments passed to set(...). "
670 "Types should be listed at most once.");
672 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
690 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
692 template<typename... Args>
696 using namespace Zivid::Detail::TypeTraits;
698 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
700 AllArgsAreDescendantNodes::value,
701 "All arguments passed to copyWith(...) must be descendant nodes.");
704 AllArgsDecayedAreUnique<Args...>::value,
705 "Found duplicate types among the arguments passed to copyWith(...). "
706 "Types should be listed at most once.");
709 copy.
set(std::forward<Args>(args)...);
747 m_brightness = value;
754 return m_exposureTime;
760 return m_exposureTime;
766 m_exposureTime = value;
791 typename std::enable_if<std::is_same<T, Settings::Acquisition::Aperture>::value,
int>::type = 0>
799 typename std::enable_if<std::is_same<T, Settings::Acquisition::Brightness>::value,
int>::type = 0>
807 typename std::enable_if<std::is_same<T, Settings::Acquisition::ExposureTime>::value,
int>::type = 0>
810 return m_exposureTime;
815 typename std::enable_if<std::is_same<T, Settings::Acquisition::Gain>::value,
int>::type = 0>
821 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
827 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
833 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
836 return m_exposureTime;
839 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
881 void setFromString(
const std::string &value);
883 void setFromString(
const std::string &fullPath,
const std::string &value);
885 std::string getString(
const std::string &fullPath)
const;
888 Brightness m_brightness;
889 ExposureTime m_exposureTime;
892 friend struct DataModel::Detail::Befriend<
Acquisition>;
905 static constexpr const char *path{
"Acquisitions" };
908 static constexpr const char *name{
"Acquisitions" };
911 static constexpr const char *description{ R
"description(List of Acquisition objects.)description" };
919 return { 0, std::numeric_limits<ValueType::size_type>::max() };
927 : m_value{ std::move(value) }
931 explicit Acquisitions(std::initializer_list<Settings::Acquisition> value)
936 const std::vector<Settings::Acquisition> &
value()
const;
942 std::size_t
size() const noexcept;
945 bool isEmpty() const noexcept;
952 template<typename... Args>
953 void emplaceBack(Args &&...args)
955 m_value.emplace_back(std::forward<Args>(args)...);
990 for(
auto &child : m_value)
1000 for(
const auto &child : m_value)
1007 using Iterator = std::vector<Settings::Acquisition>::iterator;
1033 return m_value == other.m_value;
1039 return m_value != other.m_value;
1049 void setFromString(
const std::string &value);
1051 std::vector<Settings::Acquisition> m_value{};
1053 friend struct DataModel::Detail::Befriend<
Acquisitions>;
1072 static constexpr const char *path{
"Diagnostics" };
1075 static constexpr const char *name{
"Diagnostics" };
1078 static constexpr const char *description{
1079 R
"description(When Diagnostics is enabled, additional diagnostic data is recorded during capture and included when saving
1080the frame to a .zdf file. This enables Zivid's Customer Success team to provide better assistance and more
1081thorough troubleshooting.
1083Enabling Diagnostics increases the capture time and the RAM usage. It will also increase the size of the
1084.zdf file. It is recommended to enable Diagnostics only when reporting issues to Zivid's support team.
1098 static constexpr const char *path{
"Diagnostics/Enabled" };
1101 static constexpr const char *name{
"Enabled" };
1104 static constexpr const char *description{ R
"description(Enable or disable diagnostics.)description" };
1114 return {
false,
true };
1143 return m_opt == other.m_opt;
1149 return m_opt != other.m_opt;
1159 void setFromString(
const std::string &value);
1161 Zivid::DataModel::Detail::Optional<bool> m_opt;
1163 friend struct DataModel::Detail::Befriend<
Enabled>;
1185 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1186 typename std::enable_if<
1187 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
1191 template<typename... Args>
1195 using namespace Zivid::Detail::TypeTraits;
1198 AllArgsDecayedAreUnique<Args...>::value,
1199 "Found duplicate types among the arguments passed to Diagnostics(...). "
1200 "Types should be listed at most once.");
1202 set(std::forward<Args>(args)...);
1216 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1218 template<typename... Args>
1222 using namespace Zivid::Detail::TypeTraits;
1224 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1226 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
1229 AllArgsDecayedAreUnique<Args...>::value,
1230 "Found duplicate types among the arguments passed to set(...). "
1231 "Types should be listed at most once.");
1233 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1248 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1250 template<typename... Args>
1254 using namespace Zivid::Detail::TypeTraits;
1256 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1258 AllArgsAreDescendantNodes::value,
1259 "All arguments passed to copyWith(...) must be descendant nodes.");
1262 AllArgsDecayedAreUnique<Args...>::value,
1263 "Found duplicate types among the arguments passed to copyWith(...). "
1264 "Types should be listed at most once.");
1267 copy.
set(std::forward<Args>(args)...);
1292 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
1298 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
1305 template<
typename F>
1312 template<
typename F>
1334 void setFromString(
const std::string &value);
1336 void setFromString(
const std::string &fullPath,
const std::string &value);
1338 std::string getString(
const std::string &fullPath)
const;
1342 friend struct DataModel::Detail::Befriend<
Diagnostics>;
1371 static constexpr const char *path{
"Engine" };
1374 static constexpr const char *name{
"Engine" };
1377 static constexpr const char *description{ R
"description(Set the Zivid Vision Engine to use.
1379The Phase Engine is the fastest choice in terms of both acquisition time and total capture
1380time, and is a good compromise between quality and speed. The Phase Engine is recommended for
1381objects that are diffuse, opaque, and slightly specular, and is suitable for applications in
1382logistics such as parcel induction.
1384The Stripe Engine is built for exceptional point cloud quality in scenes with highly specular
1385reflective objects. This makes the engine suitable for applications such as factory automation,
1386manufacturing, and bin picking. Additional acquisition and processing time are required for
1389The Omni Engine is built for exceptional point cloud quality on all scenes, including scenes
1390with extremely specular reflective objects, as well as transparent objects. This makes the Omni
1391Engine suitable for applications such as piece picking. Same as for the Stripe Engine, it trades
1392off speed for quality. The Omni Engine is only available for Zivid 2+.
1409 return { ValueType::phase, ValueType::stripe, ValueType::omni };
1417 : m_opt{ verifyValue(value) }
1444 return m_opt == other.m_opt;
1450 return m_opt != other.m_opt;
1460 void setFromString(
const std::string &value);
1462 constexpr ValueType
static verifyValue(
const ValueType &value)
1464 return value == ValueType::phase || value == ValueType::stripe || value == ValueType::omni
1466 :
throw std::invalid_argument{
1467 "Invalid value: Engine{ "
1468 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
1472 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
1474 friend struct DataModel::Detail::Befriend<
Engine>;
1487 static constexpr const char *path{
"Processing" };
1490 static constexpr const char *name{
"Processing" };
1493 static constexpr const char *description{
1494 R
"description(Settings related to processing of a capture, including filters and color balance.)description"
1507 static constexpr const char *path{
"Processing/Color" };
1510 static constexpr const char *name{
"Color" };
1513 static constexpr const char *description{ R
"description(Color settings.)description" };
1525 static constexpr const char *path{
"Processing/Color/Balance" };
1528 static constexpr const char *name{
"Balance" };
1531 static constexpr const char *description{ R
"description(Color balance settings.)description" };
1543 static constexpr const char *path{
"Processing/Color/Balance/Blue" };
1546 static constexpr const char *name{
"Blue" };
1549 static constexpr const char *description{
1550 R
"description(Digital gain applied to blue channel.)description"
1559 return { 1.0, 8.0 };
1566 explicit constexpr Blue(
double value)
1567 : m_opt{ verifyValue(value) }
1588 return m_opt == other.m_opt;
1594 return m_opt != other.m_opt;
1600 return m_opt < other.m_opt;
1606 return m_opt > other.m_opt;
1612 return m_opt <= other.m_opt;
1618 return m_opt >= other.m_opt;
1628 void setFromString(
const std::string &value);
1630 constexpr ValueType
static verifyValue(
const ValueType &value)
1632 return validRange().isInRange(value)
1634 :
throw std::out_of_range{
"Blue{ " + std::to_string(value)
1635 +
" } is not in range ["
1636 + std::to_string(validRange().min()) +
", "
1637 + std::to_string(validRange().max()) +
"]" };
1640 Zivid::DataModel::Detail::Optional<double> m_opt;
1642 friend struct DataModel::Detail::Befriend<
Blue>;
1655 static constexpr const char *path{
"Processing/Color/Balance/Green" };
1658 static constexpr const char *name{
"Green" };
1661 static constexpr const char *description{
1662 R
"description(Digital gain applied to green channel.)description"
1671 return { 1.0, 8.0 };
1679 : m_opt{ verifyValue(value) }
1700 return m_opt == other.m_opt;
1706 return m_opt != other.m_opt;
1712 return m_opt < other.m_opt;
1718 return m_opt > other.m_opt;
1724 return m_opt <= other.m_opt;
1730 return m_opt >= other.m_opt;
1740 void setFromString(
const std::string &value);
1742 constexpr ValueType
static verifyValue(
const ValueType &value)
1744 return validRange().isInRange(value)
1746 :
throw std::out_of_range{
"Green{ " + std::to_string(value)
1747 +
" } is not in range ["
1748 + std::to_string(validRange().min()) +
", "
1749 + std::to_string(validRange().max()) +
"]" };
1752 Zivid::DataModel::Detail::Optional<double> m_opt;
1754 friend struct DataModel::Detail::Befriend<
Green>;
1767 static constexpr const char *path{
"Processing/Color/Balance/Red" };
1770 static constexpr const char *name{
"Red" };
1773 static constexpr const char *description{
1774 R
"description(Digital gain applied to red channel.)description"
1783 return { 1.0, 8.0 };
1790 explicit constexpr Red(
double value)
1791 : m_opt{ verifyValue(value) }
1812 return m_opt == other.m_opt;
1818 return m_opt != other.m_opt;
1824 return m_opt < other.m_opt;
1830 return m_opt > other.m_opt;
1836 return m_opt <= other.m_opt;
1842 return m_opt >= other.m_opt;
1852 void setFromString(
const std::string &value);
1854 constexpr ValueType
static verifyValue(
const ValueType &value)
1856 return validRange().isInRange(value)
1858 :
throw std::out_of_range{
"Red{ " + std::to_string(value)
1859 +
" } is not in range ["
1860 + std::to_string(validRange().min()) +
", "
1861 + std::to_string(validRange().max()) +
"]" };
1864 Zivid::DataModel::Detail::Optional<double> m_opt;
1866 friend struct DataModel::Detail::Befriend<
Red>;
1893 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
1894 typename std::enable_if<
1895 Zivid::Detail::TypeTraits::
1896 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
1899 template<typename... Args>
1903 using namespace Zivid::Detail::TypeTraits;
1906 AllArgsDecayedAreUnique<Args...>::value,
1907 "Found duplicate types among the arguments passed to Balance(...). "
1908 "Types should be listed at most once.");
1910 set(std::forward<Args>(args)...);
1926 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
1928 template<typename... Args>
1932 using namespace Zivid::Detail::TypeTraits;
1934 using AllArgsAreDescendantNodes =
1935 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1937 AllArgsAreDescendantNodes::value,
1938 "All arguments passed to set(...) must be descendant nodes.");
1941 AllArgsDecayedAreUnique<Args...>::value,
1942 "Found duplicate types among the arguments passed to set(...). "
1943 "Types should be listed at most once.");
1945 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
1962 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
1964 template<typename... Args>
1968 using namespace Zivid::Detail::TypeTraits;
1970 using AllArgsAreDescendantNodes =
1971 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
1973 AllArgsAreDescendantNodes::value,
1974 "All arguments passed to copyWith(...) must be descendant nodes.");
1977 AllArgsDecayedAreUnique<Args...>::value,
1978 "Found duplicate types among the arguments passed to copyWith(...). "
1979 "Types should be listed at most once.");
1982 copy.
set(std::forward<Args>(args)...);
2045 typename std::enable_if<
2046 std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
2055 typename std::enable_if<
2056 std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
2066 enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
2072 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2078 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2084 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2091 template<
typename F>
2100 template<
typename F>
2124 void setFromString(
const std::string &value);
2126 void setFromString(
const std::string &fullPath,
const std::string &value);
2128 std::string getString(
const std::string &fullPath)
const;
2134 friend struct DataModel::Detail::Befriend<
Balance>;
2147 static constexpr const char *path{
"Processing/Color/Experimental" };
2150 static constexpr const char *name{
"Experimental" };
2153 static constexpr const char *description{
2154 R
"description(Experimental color settings. These may be renamed, moved or deleted in the future.)description"
2188 static constexpr const char *path{
"Processing/Color/Experimental/Mode" };
2191 static constexpr const char *name{
"Mode" };
2194 static constexpr const char *description{
2195 R
"description(This setting controls how the color image is computed.
2197`automatic` is the default option. `automatic` is identical to `useFirstAcquisition` for
2198single-acquisition captures and multi-acquisition captures when all the acquisitions have
2199identical (duplicated) acquisition settings. `automatic` is identical to `toneMapping` for
2200multi-acquisition HDR captures with differing acquisition settings.
2202`useFirstAcquisition` uses the color data acquired from the first acquisition provided. If
2203the capture consists of more than one acquisition, then the remaining acquisitions are not used
2204for the color image. No tone mapping is performed. This option provides the most control of
2205the color image, and the color values will be consistent over repeated captures with the same
2208`toneMapping` uses all the acquisitions to create one merged and normalized color image. For
2209HDR captures the dynamic range of the captured images is usually higher than the 8-bit color
2210image range. `toneMapping` will map the HDR color data to the 8-bit color output range by
2211applying a scaling factor. `toneMapping` can also be used for single-acquisition captures to
2212normalize the captured color image to the full 8-bit output. Note that when using `toneMapping`
2213mode the color values can be inconsistent over repeated captures if you move, add or remove
2214objects in the scene. For the most control over the colors, select the `useFirstAcquisition`
2223 useFirstAcquisition,
2233 return { ValueType::automatic, ValueType::useFirstAcquisition, ValueType::toneMapping };
2241 : m_opt{ verifyValue(value) }
2268 return m_opt == other.m_opt;
2274 return m_opt != other.m_opt;
2284 void setFromString(
const std::string &value);
2286 constexpr ValueType
static verifyValue(
const ValueType &value)
2288 return value == ValueType::automatic || value == ValueType::useFirstAcquisition
2289 || value == ValueType::toneMapping
2291 :
throw std::invalid_argument{
2292 "Invalid value: Mode{ "
2293 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
2298 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
2300 friend struct DataModel::Detail::Befriend<
Mode>;
2303 using Descendants = std::tuple<Settings::Processing::Color::Experimental::Mode>;
2322 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2323 typename std::enable_if<
2324 Zivid::Detail::TypeTraits::
2325 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
2328 template<typename... Args>
2332 using namespace Zivid::Detail::TypeTraits;
2335 AllArgsDecayedAreUnique<Args...>::value,
2336 "Found duplicate types among the arguments passed to Experimental(...). "
2337 "Types should be listed at most once.");
2339 set(std::forward<Args>(args)...);
2353 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2355 template<typename... Args>
2359 using namespace Zivid::Detail::TypeTraits;
2361 using AllArgsAreDescendantNodes =
2362 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2364 AllArgsAreDescendantNodes::value,
2365 "All arguments passed to set(...) must be descendant nodes.");
2368 AllArgsDecayedAreUnique<Args...>::value,
2369 "Found duplicate types among the arguments passed to set(...). "
2370 "Types should be listed at most once.");
2372 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2387 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2389 template<typename... Args>
2393 using namespace Zivid::Detail::TypeTraits;
2395 using AllArgsAreDescendantNodes =
2396 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2398 AllArgsAreDescendantNodes::value,
2399 "All arguments passed to copyWith(...) must be descendant nodes.");
2402 AllArgsDecayedAreUnique<Args...>::value,
2403 "Found duplicate types among the arguments passed to copyWith(...). "
2404 "Types should be listed at most once.");
2407 copy.
set(std::forward<Args>(args)...);
2432 typename std::enable_if<
2433 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
2440 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2447 template<
typename F>
2454 template<
typename F>
2476 void setFromString(
const std::string &value);
2478 void setFromString(
const std::string &fullPath,
const std::string &value);
2480 std::string getString(
const std::string &fullPath)
const;
2484 friend struct DataModel::Detail::Befriend<
Experimental>;
2499 static constexpr const char *path{
"Processing/Color/Gamma" };
2502 static constexpr const char *name{
"Gamma" };
2505 static constexpr const char *description{
2506 R
"description(Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma
2507greater than 1 makes the colors darker.
2517 return { 0.25, 1.5 };
2525 : m_opt{ verifyValue(value) }
2546 return m_opt == other.m_opt;
2552 return m_opt != other.m_opt;
2558 return m_opt < other.m_opt;
2564 return m_opt > other.m_opt;
2570 return m_opt <= other.m_opt;
2576 return m_opt >= other.m_opt;
2586 void setFromString(
const std::string &value);
2588 constexpr ValueType
static verifyValue(
const ValueType &value)
2590 return validRange().isInRange(value)
2592 :
throw std::out_of_range{
"Gamma{ " + std::to_string(value) +
" } is not in range ["
2593 + std::to_string(validRange().min()) +
", "
2594 + std::to_string(validRange().max()) +
"]" };
2597 Zivid::DataModel::Detail::Optional<double> m_opt;
2599 friend struct DataModel::Detail::Befriend<
Gamma>;
2634 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
2635 typename std::enable_if<
2636 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
2640 template<typename... Args>
2644 using namespace Zivid::Detail::TypeTraits;
2647 AllArgsDecayedAreUnique<Args...>::value,
2648 "Found duplicate types among the arguments passed to Color(...). "
2649 "Types should be listed at most once.");
2651 set(std::forward<Args>(args)...);
2671 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
2673 template<typename... Args>
2677 using namespace Zivid::Detail::TypeTraits;
2679 using AllArgsAreDescendantNodes =
2680 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2682 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
2685 AllArgsDecayedAreUnique<Args...>::value,
2686 "Found duplicate types among the arguments passed to set(...). "
2687 "Types should be listed at most once.");
2689 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
2710 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
2712 template<typename... Args>
2716 using namespace Zivid::Detail::TypeTraits;
2718 using AllArgsAreDescendantNodes =
2719 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
2721 AllArgsAreDescendantNodes::value,
2722 "All arguments passed to copyWith(...) must be descendant nodes.");
2725 AllArgsDecayedAreUnique<Args...>::value,
2726 "Found duplicate types among the arguments passed to copyWith(...). "
2727 "Types should be listed at most once.");
2730 copy.
set(std::forward<Args>(args)...);
2756 m_balance.
set(value);
2763 m_balance.
set(value);
2770 m_balance.
set(value);
2777 return m_experimental;
2783 return m_experimental;
2789 m_experimental = value;
2796 m_experimental.
set(value);
2821 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type =
2830 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::
2839 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
2848 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::
2857 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::
2861 return m_experimental;
2866 typename std::enable_if<
2867 std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
2876 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
2882 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
2888 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
2891 return m_experimental;
2894 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
2901 template<
typename F>
2910 template<
typename F>
2934 void setFromString(
const std::string &value);
2936 void setFromString(
const std::string &fullPath,
const std::string &value);
2938 std::string getString(
const std::string &fullPath)
const;
2941 Experimental m_experimental;
2944 friend struct DataModel::Detail::Befriend<
Color>;
2957 static constexpr const char *path{
"Processing/Filters" };
2960 static constexpr const char *name{
"Filters" };
2963 static constexpr const char *description{ R
"description(Filter settings.)description" };
2976 static constexpr const char *path{
"Processing/Filters/Cluster" };
2979 static constexpr const char *name{
"Cluster" };
2982 static constexpr const char *description{
2983 R
"description(Removes floating points and isolated clusters from the point cloud.
2997 static constexpr const char *path{
"Processing/Filters/Cluster/Removal" };
3000 static constexpr const char *name{
"Removal" };
3003 static constexpr const char *description{ R
"description(Cluster removal filter.)description" };
3015 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/Enabled" };
3018 static constexpr const char *name{
"Enabled" };
3021 static constexpr const char *description{
3022 R
"description(Enable or disable cluster removal.)description"
3033 return {
false,
true };
3062 return m_opt == other.m_opt;
3068 return m_opt != other.m_opt;
3078 void setFromString(
const std::string &value);
3080 Zivid::DataModel::Detail::Optional<bool> m_opt;
3082 friend struct DataModel::Detail::Befriend<
Enabled>;
3098 static constexpr const char *path{
3099 "Processing/Filters/Cluster/Removal/MaxNeighborDistance"
3103 static constexpr const char *name{
"MaxNeighborDistance" };
3106 static constexpr const char *description{
3107 R
"description(Maximum normalized distance between neighboring points that are still classified as
3108belonging to the same cluster. The default value is optimal for most scenes. On messy
3109scenes turning this setting down helps removing more bad points.
3119 return { 2.0, 10.0 };
3127 : m_opt{ verifyValue(value) }
3148 return m_opt == other.m_opt;
3154 return m_opt != other.m_opt;
3160 return m_opt < other.m_opt;
3166 return m_opt > other.m_opt;
3172 return m_opt <= other.m_opt;
3178 return m_opt >= other.m_opt;
3188 void setFromString(
const std::string &value);
3190 constexpr ValueType
static verifyValue(
const ValueType &value)
3192 return validRange().isInRange(value)
3194 :
throw std::out_of_range{
"MaxNeighborDistance{ " + std::to_string(value)
3195 +
" } is not in range ["
3196 + std::to_string(validRange().min()) +
", "
3197 + std::to_string(validRange().max()) +
"]" };
3200 Zivid::DataModel::Detail::Optional<double> m_opt;
3217 static constexpr const char *path{
"Processing/Filters/Cluster/Removal/MinArea" };
3220 static constexpr const char *name{
"MinArea" };
3223 static constexpr const char *description{
3224 R
"description(Clusters with area below this threshold are removed by the filter.
3225The area is given in mm^2.
3235 return { 0.0, 1500.0 };
3243 : m_opt{ verifyValue(value) }
3264 return m_opt == other.m_opt;
3270 return m_opt != other.m_opt;
3276 return m_opt < other.m_opt;
3282 return m_opt > other.m_opt;
3288 return m_opt <= other.m_opt;
3294 return m_opt >= other.m_opt;
3304 void setFromString(
const std::string &value);
3306 constexpr ValueType
static verifyValue(
const ValueType &value)
3308 return validRange().isInRange(value)
3310 :
throw std::out_of_range{
"MinArea{ " + std::to_string(value)
3311 +
" } is not in range ["
3312 + std::to_string(validRange().min()) +
", "
3313 + std::to_string(validRange().max()) +
"]" };
3316 Zivid::DataModel::Detail::Optional<double> m_opt;
3318 friend struct DataModel::Detail::Befriend<
MinArea>;
3345 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3346 typename std::enable_if<
3347 Zivid::Detail::TypeTraits::
3348 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
3351 template<typename... Args>
3355 using namespace Zivid::Detail::TypeTraits;
3358 AllArgsDecayedAreUnique<Args...>::value,
3359 "Found duplicate types among the arguments passed to Removal(...). "
3360 "Types should be listed at most once.");
3362 set(std::forward<Args>(args)...);
3378 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3380 template<typename... Args>
3384 using namespace Zivid::Detail::TypeTraits;
3386 using AllArgsAreDescendantNodes =
3387 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3389 AllArgsAreDescendantNodes::value,
3390 "All arguments passed to set(...) must be descendant nodes.");
3393 AllArgsDecayedAreUnique<Args...>::value,
3394 "Found duplicate types among the arguments passed to set(...). "
3395 "Types should be listed at most once.");
3397 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3414 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3416 template<typename... Args>
3420 using namespace Zivid::Detail::TypeTraits;
3422 using AllArgsAreDescendantNodes =
3423 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3425 AllArgsAreDescendantNodes::value,
3426 "All arguments passed to copyWith(...) must be descendant nodes.");
3429 AllArgsDecayedAreUnique<Args...>::value,
3430 "Found duplicate types among the arguments passed to copyWith(...). "
3431 "Types should be listed at most once.");
3434 copy.
set(std::forward<Args>(args)...);
3460 return m_maxNeighborDistance;
3466 return m_maxNeighborDistance;
3472 m_maxNeighborDistance = value;
3497 typename std::enable_if<
3498 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
3507 typename std::enable_if<
3508 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
3513 return m_maxNeighborDistance;
3518 typename std::enable_if<
3519 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
3526 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3532 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
3535 return m_maxNeighborDistance;
3538 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
3545 template<
typename F>
3549 f(m_maxNeighborDistance);
3554 template<
typename F>
3558 f(m_maxNeighborDistance);
3578 void setFromString(
const std::string &value);
3580 void setFromString(
const std::string &fullPath,
const std::string &value);
3582 std::string getString(
const std::string &fullPath)
const;
3585 MaxNeighborDistance m_maxNeighborDistance;
3588 friend struct DataModel::Detail::Befriend<
Removal>;
3617 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
3618 typename std::enable_if<
3619 Zivid::Detail::TypeTraits::
3620 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
3623 template<typename... Args>
3627 using namespace Zivid::Detail::TypeTraits;
3630 AllArgsDecayedAreUnique<Args...>::value,
3631 "Found duplicate types among the arguments passed to Cluster(...). "
3632 "Types should be listed at most once.");
3634 set(std::forward<Args>(args)...);
3651 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
3653 template<typename... Args>
3657 using namespace Zivid::Detail::TypeTraits;
3659 using AllArgsAreDescendantNodes =
3660 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3662 AllArgsAreDescendantNodes::value,
3663 "All arguments passed to set(...) must be descendant nodes.");
3666 AllArgsDecayedAreUnique<Args...>::value,
3667 "Found duplicate types among the arguments passed to set(...). "
3668 "Types should be listed at most once.");
3670 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
3688 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
3690 template<typename... Args>
3694 using namespace Zivid::Detail::TypeTraits;
3696 using AllArgsAreDescendantNodes =
3697 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
3699 AllArgsAreDescendantNodes::value,
3700 "All arguments passed to copyWith(...) must be descendant nodes.");
3703 AllArgsDecayedAreUnique<Args...>::value,
3704 "Found duplicate types among the arguments passed to copyWith(...). "
3705 "Types should be listed at most once.");
3708 copy.
set(std::forward<Args>(args)...);
3734 m_removal.
set(value);
3741 m_removal.
set(value);
3748 m_removal.
set(value);
3754 typename std::enable_if<
3755 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
3764 typename std::enable_if<
3765 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
3774 typename std::enable_if<
3775 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::
3785 typename std::enable_if<
3786 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
3793 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
3800 template<
typename F>
3807 template<
typename F>
3829 void setFromString(
const std::string &value);
3831 void setFromString(
const std::string &fullPath,
const std::string &value);
3833 std::string getString(
const std::string &fullPath)
const;
3837 friend struct DataModel::Detail::Befriend<
Cluster>;
3850 static constexpr const char *path{
"Processing/Filters/Experimental" };
3853 static constexpr const char *name{
"Experimental" };
3856 static constexpr const char *description{
3857 R
"description(Experimental filters. These may be renamed, moved or deleted in the future.)description"
3874 static constexpr const char *path{
"Processing/Filters/Experimental/ContrastDistortion" };
3877 static constexpr const char *name{
"ContrastDistortion" };
3880 static constexpr const char *description{
3881 R
"description(Corrects artifacts that appear when imaging scenes with large texture gradients
3882or high contrast. These artifacts are caused by blurring in the lens. The filter
3883works best when aperture values are chosen such that the camera has quite good focus.
3884The filter also supports removing the points that experience a large correction.
3898 static constexpr const char *path{
3899 "Processing/Filters/Experimental/ContrastDistortion/Correction"
3903 static constexpr const char *name{
"Correction" };
3906 static constexpr const char *description{
3907 R
"description(Contrast distortion correction filter.)description"
3920 static constexpr const char *path{
3921 "Processing/Filters/Experimental/ContrastDistortion/Correction/Enabled"
3925 static constexpr const char *name{
"Enabled" };
3928 static constexpr const char *description{
3929 R
"description(Enable or disable contrast distortion correction.)description"
3940 return {
false,
true };
3969 return m_opt == other.m_opt;
3975 return m_opt != other.m_opt;
3985 void setFromString(
const std::string &value);
3987 Zivid::DataModel::Detail::Optional<bool> m_opt;
3989 friend struct DataModel::Detail::Befriend<
Enabled>;
4002 static constexpr const char *path{
4003 "Processing/Filters/Experimental/ContrastDistortion/Correction/Strength"
4007 static constexpr const char *name{
"Strength" };
4010 static constexpr const char *description{
4011 R
"description(Strength of correction. Higher values give more correction.)description"
4020 return { 0.0, 1.0 };
4028 : m_opt{ verifyValue(value) }
4049 return m_opt == other.m_opt;
4055 return m_opt != other.m_opt;
4061 return m_opt < other.m_opt;
4067 return m_opt > other.m_opt;
4073 return m_opt <= other.m_opt;
4079 return m_opt >= other.m_opt;
4089 void setFromString(
const std::string &value);
4091 constexpr ValueType
static verifyValue(
const ValueType &value)
4093 return validRange().isInRange(value)
4095 :
throw std::out_of_range{
"Strength{ " + std::to_string(value)
4096 +
" } is not in range ["
4097 + std::to_string(validRange().min()) +
", "
4098 + std::to_string(validRange().max()) +
"]" };
4101 Zivid::DataModel::Detail::Optional<double> m_opt;
4103 friend struct DataModel::Detail::Befriend<
Strength>;
4128 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4129 typename std::enable_if<
4130 Zivid::Detail::TypeTraits::
4131 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
4134 template<typename... Args>
4138 using namespace Zivid::Detail::TypeTraits;
4141 AllArgsDecayedAreUnique<Args...>::value,
4142 "Found duplicate types among the arguments passed to Correction(...). "
4143 "Types should be listed at most once.");
4145 set(std::forward<Args>(args)...);
4160 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4162 template<typename... Args>
4166 using namespace Zivid::Detail::TypeTraits;
4168 using AllArgsAreDescendantNodes =
4169 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4171 AllArgsAreDescendantNodes::value,
4172 "All arguments passed to set(...) must be descendant nodes.");
4175 AllArgsDecayedAreUnique<Args...>::value,
4176 "Found duplicate types among the arguments passed to set(...). "
4177 "Types should be listed at most once.");
4179 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4195 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4197 template<typename... Args>
4201 using namespace Zivid::Detail::TypeTraits;
4203 using AllArgsAreDescendantNodes =
4204 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4206 AllArgsAreDescendantNodes::value,
4207 "All arguments passed to copyWith(...) must be descendant nodes.");
4210 AllArgsDecayedAreUnique<Args...>::value,
4211 "Found duplicate types among the arguments passed to copyWith(...). "
4212 "Types should be listed at most once.");
4215 copy.
set(std::forward<Args>(args)...);
4259 typename std::enable_if<
4262 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4273 typename std::enable_if<
4276 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4279 const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4286 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4293 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4294 const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
4302 template<
typename F>
4310 template<
typename F>
4333 void setFromString(
const std::string &value);
4335 void setFromString(
const std::string &fullPath,
const std::string &value);
4337 std::string getString(
const std::string &fullPath)
const;
4342 friend struct DataModel::Detail::Befriend<
Correction>;
4355 static constexpr const char *path{
4356 "Processing/Filters/Experimental/ContrastDistortion/Removal"
4360 static constexpr const char *name{
"Removal" };
4363 static constexpr const char *description{
4364 R
"description(Contrast distortion removal filter.)description"
4377 static constexpr const char *path{
4378 "Processing/Filters/Experimental/ContrastDistortion/Removal/Enabled"
4382 static constexpr const char *name{
"Enabled" };
4385 static constexpr const char *description{
4386 R
"description(Enable or disable contrast distortion removal.)description"
4397 return {
false,
true };
4426 return m_opt == other.m_opt;
4432 return m_opt != other.m_opt;
4442 void setFromString(
const std::string &value);
4444 Zivid::DataModel::Detail::Optional<bool> m_opt;
4446 friend struct DataModel::Detail::Befriend<
Enabled>;
4459 static constexpr const char *path{
4460 "Processing/Filters/Experimental/ContrastDistortion/Removal/Threshold"
4464 static constexpr const char *name{
"Threshold" };
4467 static constexpr const char *description{
4468 R
"description(Threshold for removal. Higher values remove more points.)description"
4477 return { 0.0, 1.0 };
4485 : m_opt{ verifyValue(value) }
4506 return m_opt == other.m_opt;
4512 return m_opt != other.m_opt;
4518 return m_opt < other.m_opt;
4524 return m_opt > other.m_opt;
4530 return m_opt <= other.m_opt;
4536 return m_opt >= other.m_opt;
4546 void setFromString(
const std::string &value);
4548 constexpr ValueType
static verifyValue(
const ValueType &value)
4550 return validRange().isInRange(value)
4552 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
4553 +
" } is not in range ["
4554 + std::to_string(validRange().min()) +
", "
4555 + std::to_string(validRange().max()) +
"]" };
4558 Zivid::DataModel::Detail::Optional<double> m_opt;
4560 friend struct DataModel::Detail::Befriend<
Threshold>;
4585 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4586 typename std::enable_if<
4587 Zivid::Detail::TypeTraits::
4588 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
4591 template<typename... Args>
4595 using namespace Zivid::Detail::TypeTraits;
4598 AllArgsDecayedAreUnique<Args...>::value,
4599 "Found duplicate types among the arguments passed to Removal(...). "
4600 "Types should be listed at most once.");
4602 set(std::forward<Args>(args)...);
4617 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4619 template<typename... Args>
4623 using namespace Zivid::Detail::TypeTraits;
4625 using AllArgsAreDescendantNodes =
4626 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4628 AllArgsAreDescendantNodes::value,
4629 "All arguments passed to set(...) must be descendant nodes.");
4632 AllArgsDecayedAreUnique<Args...>::value,
4633 "Found duplicate types among the arguments passed to set(...). "
4634 "Types should be listed at most once.");
4636 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4652 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4654 template<typename... Args>
4658 using namespace Zivid::Detail::TypeTraits;
4660 using AllArgsAreDescendantNodes =
4661 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4663 AllArgsAreDescendantNodes::value,
4664 "All arguments passed to copyWith(...) must be descendant nodes.");
4667 AllArgsDecayedAreUnique<Args...>::value,
4668 "Found duplicate types among the arguments passed to copyWith(...). "
4669 "Types should be listed at most once.");
4672 copy.
set(std::forward<Args>(args)...);
4710 m_threshold = value;
4716 typename std::enable_if<
4719 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4730 typename std::enable_if<
4733 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
4742 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
4749 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
4757 template<
typename F>
4765 template<
typename F>
4788 void setFromString(
const std::string &value);
4790 void setFromString(
const std::string &fullPath,
const std::string &value);
4792 std::string getString(
const std::string &fullPath)
const;
4797 friend struct DataModel::Detail::Befriend<
Removal>;
4830 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
4831 typename std::enable_if<
4832 Zivid::Detail::TypeTraits::
4833 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
4836 template<typename... Args>
4840 using namespace Zivid::Detail::TypeTraits;
4843 AllArgsDecayedAreUnique<Args...>::value,
4844 "Found duplicate types among the arguments passed to ContrastDistortion(...). "
4845 "Types should be listed at most once.");
4847 set(std::forward<Args>(args)...);
4866 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
4868 template<typename... Args>
4872 using namespace Zivid::Detail::TypeTraits;
4874 using AllArgsAreDescendantNodes =
4875 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4877 AllArgsAreDescendantNodes::value,
4878 "All arguments passed to set(...) must be descendant nodes.");
4881 AllArgsDecayedAreUnique<Args...>::value,
4882 "Found duplicate types among the arguments passed to set(...). "
4883 "Types should be listed at most once.");
4885 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
4905 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
4907 template<typename... Args>
4911 using namespace Zivid::Detail::TypeTraits;
4913 using AllArgsAreDescendantNodes =
4914 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
4916 AllArgsAreDescendantNodes::value,
4917 "All arguments passed to copyWith(...) must be descendant nodes.");
4920 AllArgsDecayedAreUnique<Args...>::value,
4921 "Found duplicate types among the arguments passed to copyWith(...). "
4922 "Types should be listed at most once.");
4925 copy.
set(std::forward<Args>(args)...);
4932 return m_correction;
4938 return m_correction;
4944 m_correction = value;
4951 m_correction.
set(value);
4958 m_correction.
set(value);
4984 m_removal.
set(value);
4991 m_removal.
set(value);
4997 typename std::enable_if<
5004 return m_correction;
5009 typename std::enable_if<
5012 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5018 return m_correction.get<
5024 typename std::enable_if<
5027 Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::
5033 return m_correction.get<Settings::Processing::Filters::Experimental::ContrastDistortion::
5034 Correction::Strength>();
5039 typename std::enable_if<
5051 typename std::enable_if<
5060 return m_removal.get<
5066 typename std::enable_if<
5069 Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::
5075 return m_removal.get<
5079 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5082 return m_correction;
5085 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
5092 template<
typename F>
5100 template<
typename F>
5123 void setFromString(
const std::string &value);
5125 void setFromString(
const std::string &fullPath,
const std::string &value);
5127 std::string getString(
const std::string &fullPath)
const;
5129 Correction m_correction;
5167 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5168 typename std::enable_if<
5169 Zivid::Detail::TypeTraits::
5170 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
5173 template<typename... Args>
5177 using namespace Zivid::Detail::TypeTraits;
5180 AllArgsDecayedAreUnique<Args...>::value,
5181 "Found duplicate types among the arguments passed to Experimental(...). "
5182 "Types should be listed at most once.");
5184 set(std::forward<Args>(args)...);
5204 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5206 template<typename... Args>
5210 using namespace Zivid::Detail::TypeTraits;
5212 using AllArgsAreDescendantNodes =
5213 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5215 AllArgsAreDescendantNodes::value,
5216 "All arguments passed to set(...) must be descendant nodes.");
5219 AllArgsDecayedAreUnique<Args...>::value,
5220 "Found duplicate types among the arguments passed to set(...). "
5221 "Types should be listed at most once.");
5223 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5244 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5246 template<typename... Args>
5250 using namespace Zivid::Detail::TypeTraits;
5252 using AllArgsAreDescendantNodes =
5253 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5255 AllArgsAreDescendantNodes::value,
5256 "All arguments passed to copyWith(...) must be descendant nodes.");
5259 AllArgsDecayedAreUnique<Args...>::value,
5260 "Found duplicate types among the arguments passed to copyWith(...). "
5261 "Types should be listed at most once.");
5264 copy.
set(std::forward<Args>(args)...);
5271 return m_contrastDistortion;
5277 return m_contrastDistortion;
5283 m_contrastDistortion = value;
5290 m_contrastDistortion.
set(value);
5297 m_contrastDistortion.
set(value);
5304 m_contrastDistortion.
set(value);
5311 m_contrastDistortion.
set(value);
5318 m_contrastDistortion.
set(value);
5325 m_contrastDistortion.
set(value);
5331 typename std::enable_if<
5332 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
5336 return m_contrastDistortion;
5341 typename std::enable_if<
5348 return m_contrastDistortion
5354 typename std::enable_if<
5363 return m_contrastDistortion.get<
5369 typename std::enable_if<
5378 return m_contrastDistortion.get<
5384 typename std::enable_if<
5385 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
5390 return m_contrastDistortion
5396 typename std::enable_if<
5404 return m_contrastDistortion
5410 typename std::enable_if<
5419 return m_contrastDistortion
5423 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
5426 return m_contrastDistortion;
5430 template<
typename F>
5433 f(m_contrastDistortion);
5437 template<
typename F>
5440 f(m_contrastDistortion);
5459 void setFromString(
const std::string &value);
5461 void setFromString(
const std::string &fullPath,
const std::string &value);
5463 std::string getString(
const std::string &fullPath)
const;
5467 friend struct DataModel::Detail::Befriend<
Experimental>;
5480 static constexpr const char *path{
"Processing/Filters/Hole" };
5483 static constexpr const char *name{
"Hole" };
5486 static constexpr const char *description{
5487 R
"description(Contains filters that can be used to deal with holes in the point cloud.)description"
5501 static constexpr const char *path{
"Processing/Filters/Hole/Repair" };
5504 static constexpr const char *name{
"Repair" };
5507 static constexpr const char *description{
5508 R
"description(Fills in point cloud holes by interpolating remaining surrounding points.
5522 static constexpr const char *path{
"Processing/Filters/Hole/Repair/Enabled" };
5525 static constexpr const char *name{
"Enabled" };
5528 static constexpr const char *description{
5529 R
"description(Enable or disable hole repair.)description"
5540 return {
false,
true };
5569 return m_opt == other.m_opt;
5575 return m_opt != other.m_opt;
5585 void setFromString(
const std::string &value);
5587 Zivid::DataModel::Detail::Optional<bool> m_opt;
5589 friend struct DataModel::Detail::Befriend<
Enabled>;
5605 static constexpr const char *path{
"Processing/Filters/Hole/Repair/HoleSize" };
5608 static constexpr const char *name{
"HoleSize" };
5611 static constexpr const char *description{
5612 R
"description(Relative diameter of holes to fill. Increasing this will fill more points, but require more
5613computation time. The maximum allowed hole size scales with distance, so that we allow
5614filling larger holes at greater distances, measured in mm.
5624 return { 0.0, 1.0 };
5632 : m_opt{ verifyValue(value) }
5653 return m_opt == other.m_opt;
5659 return m_opt != other.m_opt;
5665 return m_opt < other.m_opt;
5671 return m_opt > other.m_opt;
5677 return m_opt <= other.m_opt;
5683 return m_opt >= other.m_opt;
5693 void setFromString(
const std::string &value);
5695 constexpr ValueType
static verifyValue(
const ValueType &value)
5697 return validRange().isInRange(value)
5699 :
throw std::out_of_range{
"HoleSize{ " + std::to_string(value)
5700 +
" } is not in range ["
5701 + std::to_string(validRange().min()) +
", "
5702 + std::to_string(validRange().max()) +
"]" };
5705 Zivid::DataModel::Detail::Optional<double> m_opt;
5707 friend struct DataModel::Detail::Befriend<
HoleSize>;
5724 static constexpr const char *path{
"Processing/Filters/Hole/Repair/Strictness" };
5727 static constexpr const char *name{
"Strictness" };
5730 static constexpr const char *description{
5731 R
"description(Level of strictness when considering if a point should be filled. A higher level of
5732strictness requires a missing point to be surrounded by valid points on more sides in
5733order to be filled. Increasing this will fill fewer points, but it will be less likely to
5734fill gaps that are not circular, for example between two edges.
5752 : m_opt{ verifyValue(value) }
5773 return m_opt == other.m_opt;
5779 return m_opt != other.m_opt;
5785 return m_opt < other.m_opt;
5791 return m_opt > other.m_opt;
5797 return m_opt <= other.m_opt;
5803 return m_opt >= other.m_opt;
5813 void setFromString(
const std::string &value);
5815 constexpr ValueType
static verifyValue(
const ValueType &value)
5817 return validRange().isInRange(value)
5819 :
throw std::out_of_range{
"Strictness{ " + std::to_string(value)
5820 +
" } is not in range ["
5821 + std::to_string(validRange().min()) +
", "
5822 + std::to_string(validRange().max()) +
"]" };
5825 Zivid::DataModel::Detail::Optional<int32_t> m_opt;
5827 friend struct DataModel::Detail::Befriend<
Strictness>;
5854 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
5855 typename std::enable_if<
5856 Zivid::Detail::TypeTraits::
5857 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
5860 template<typename... Args>
5864 using namespace Zivid::Detail::TypeTraits;
5867 AllArgsDecayedAreUnique<Args...>::value,
5868 "Found duplicate types among the arguments passed to Repair(...). "
5869 "Types should be listed at most once.");
5871 set(std::forward<Args>(args)...);
5887 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
5889 template<typename... Args>
5893 using namespace Zivid::Detail::TypeTraits;
5895 using AllArgsAreDescendantNodes =
5896 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5898 AllArgsAreDescendantNodes::value,
5899 "All arguments passed to set(...) must be descendant nodes.");
5902 AllArgsDecayedAreUnique<Args...>::value,
5903 "Found duplicate types among the arguments passed to set(...). "
5904 "Types should be listed at most once.");
5906 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
5923 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
5925 template<typename... Args>
5929 using namespace Zivid::Detail::TypeTraits;
5931 using AllArgsAreDescendantNodes =
5932 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
5934 AllArgsAreDescendantNodes::value,
5935 "All arguments passed to copyWith(...) must be descendant nodes.");
5938 AllArgsDecayedAreUnique<Args...>::value,
5939 "Found duplicate types among the arguments passed to copyWith(...). "
5940 "Types should be listed at most once.");
5943 copy.
set(std::forward<Args>(args)...);
5988 return m_strictness;
5994 return m_strictness;
6000 m_strictness = value;
6006 typename std::enable_if<
6007 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
6016 typename std::enable_if<
6017 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
6026 typename std::enable_if<
6027 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
6031 return m_strictness;
6034 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6040 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6046 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
6049 return m_strictness;
6053 template<
typename F>
6062 template<
typename F>
6086 void setFromString(
const std::string &value);
6088 void setFromString(
const std::string &fullPath,
const std::string &value);
6090 std::string getString(
const std::string &fullPath)
const;
6093 HoleSize m_holeSize;
6096 friend struct DataModel::Detail::Befriend<
Repair>;
6125 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6126 typename std::enable_if<
6127 Zivid::Detail::TypeTraits::
6128 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
6131 template<typename... Args>
6135 using namespace Zivid::Detail::TypeTraits;
6138 AllArgsDecayedAreUnique<Args...>::value,
6139 "Found duplicate types among the arguments passed to Hole(...). "
6140 "Types should be listed at most once.");
6142 set(std::forward<Args>(args)...);
6159 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6161 template<typename... Args>
6165 using namespace Zivid::Detail::TypeTraits;
6167 using AllArgsAreDescendantNodes =
6168 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6170 AllArgsAreDescendantNodes::value,
6171 "All arguments passed to set(...) must be descendant nodes.");
6174 AllArgsDecayedAreUnique<Args...>::value,
6175 "Found duplicate types among the arguments passed to set(...). "
6176 "Types should be listed at most once.");
6178 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6196 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6198 template<typename... Args>
6202 using namespace Zivid::Detail::TypeTraits;
6204 using AllArgsAreDescendantNodes =
6205 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6207 AllArgsAreDescendantNodes::value,
6208 "All arguments passed to copyWith(...) must be descendant nodes.");
6211 AllArgsDecayedAreUnique<Args...>::value,
6212 "Found duplicate types among the arguments passed to copyWith(...). "
6213 "Types should be listed at most once.");
6216 copy.
set(std::forward<Args>(args)...);
6242 m_repair.
set(value);
6249 m_repair.
set(value);
6256 m_repair.
set(value);
6262 typename std::enable_if<
6263 std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
6272 typename std::enable_if<
6273 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
6282 typename std::enable_if<
6283 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
6292 typename std::enable_if<
6293 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
6300 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6307 template<
typename F>
6314 template<
typename F>
6336 void setFromString(
const std::string &value);
6338 void setFromString(
const std::string &fullPath,
const std::string &value);
6340 std::string getString(
const std::string &fullPath)
const;
6344 friend struct DataModel::Detail::Befriend<
Hole>;
6357 static constexpr const char *path{
"Processing/Filters/Noise" };
6360 static constexpr const char *name{
"Noise" };
6363 static constexpr const char *description{
6364 R
"description(Contains filters that can be used to clean up a noisy point cloud.)description"
6377 static constexpr const char *path{
"Processing/Filters/Noise/Removal" };
6380 static constexpr const char *name{
"Removal" };
6383 static constexpr const char *description{
6384 R
"description(Discard points with signal-to-noise ratio (SNR) values below a threshold.)description"
6397 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Enabled" };
6400 static constexpr const char *name{
"Enabled" };
6403 static constexpr const char *description{
6404 R
"description(Enable or disable the SNR filter.)description"
6415 return {
false,
true };
6444 return m_opt == other.m_opt;
6450 return m_opt != other.m_opt;
6460 void setFromString(
const std::string &value);
6462 Zivid::DataModel::Detail::Optional<bool> m_opt;
6464 friend struct DataModel::Detail::Befriend<
Enabled>;
6477 static constexpr const char *path{
"Processing/Filters/Noise/Removal/Threshold" };
6480 static constexpr const char *name{
"Threshold" };
6483 static constexpr const char *description{
6484 R
"description(Discard points with signal-to-noise ratio (SNR) below the given value.)description"
6493 return { 0.0, 100.0 };
6501 : m_opt{ verifyValue(value) }
6522 return m_opt == other.m_opt;
6528 return m_opt != other.m_opt;
6534 return m_opt < other.m_opt;
6540 return m_opt > other.m_opt;
6546 return m_opt <= other.m_opt;
6552 return m_opt >= other.m_opt;
6562 void setFromString(
const std::string &value);
6564 constexpr ValueType
static verifyValue(
const ValueType &value)
6566 return validRange().isInRange(value)
6568 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
6569 +
" } is not in range ["
6570 + std::to_string(validRange().min()) +
", "
6571 + std::to_string(validRange().max()) +
"]" };
6574 Zivid::DataModel::Detail::Optional<double> m_opt;
6576 friend struct DataModel::Detail::Befriend<
Threshold>;
6601 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6602 typename std::enable_if<
6603 Zivid::Detail::TypeTraits::
6604 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
6607 template<typename... Args>
6611 using namespace Zivid::Detail::TypeTraits;
6614 AllArgsDecayedAreUnique<Args...>::value,
6615 "Found duplicate types among the arguments passed to Removal(...). "
6616 "Types should be listed at most once.");
6618 set(std::forward<Args>(args)...);
6633 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6635 template<typename... Args>
6639 using namespace Zivid::Detail::TypeTraits;
6641 using AllArgsAreDescendantNodes =
6642 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6644 AllArgsAreDescendantNodes::value,
6645 "All arguments passed to set(...) must be descendant nodes.");
6648 AllArgsDecayedAreUnique<Args...>::value,
6649 "Found duplicate types among the arguments passed to set(...). "
6650 "Types should be listed at most once.");
6652 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6668 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6670 template<typename... Args>
6674 using namespace Zivid::Detail::TypeTraits;
6676 using AllArgsAreDescendantNodes =
6677 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6679 AllArgsAreDescendantNodes::value,
6680 "All arguments passed to copyWith(...) must be descendant nodes.");
6683 AllArgsDecayedAreUnique<Args...>::value,
6684 "Found duplicate types among the arguments passed to copyWith(...). "
6685 "Types should be listed at most once.");
6688 copy.
set(std::forward<Args>(args)...);
6726 m_threshold = value;
6732 typename std::enable_if<
6733 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
6742 typename std::enable_if<
6743 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
6750 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
6756 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
6763 template<
typename F>
6771 template<
typename F>
6794 void setFromString(
const std::string &value);
6796 void setFromString(
const std::string &fullPath,
const std::string &value);
6798 std::string getString(
const std::string &fullPath)
const;
6803 friend struct DataModel::Detail::Befriend<
Removal>;
6819 static constexpr const char *path{
"Processing/Filters/Noise/Repair" };
6822 static constexpr const char *name{
"Repair" };
6825 static constexpr const char *description{
6826 R
"description(Get better surface coverage by repairing regions of missing data due to noisy points.
6827Consider disabling this filter if you require all points in your point cloud to be of
6842 static constexpr const char *path{
"Processing/Filters/Noise/Repair/Enabled" };
6845 static constexpr const char *name{
"Enabled" };
6848 static constexpr const char *description{
6849 R
"description(Enable or disable noise repair.)description"
6860 return {
false,
true };
6889 return m_opt == other.m_opt;
6895 return m_opt != other.m_opt;
6905 void setFromString(
const std::string &value);
6907 Zivid::DataModel::Detail::Optional<bool> m_opt;
6909 friend struct DataModel::Detail::Befriend<
Enabled>;
6912 using Descendants = std::tuple<Settings::Processing::Filters::Noise::Repair::Enabled>;
6931 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
6932 typename std::enable_if<
6933 Zivid::Detail::TypeTraits::
6934 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
6937 template<typename... Args>
6941 using namespace Zivid::Detail::TypeTraits;
6944 AllArgsDecayedAreUnique<Args...>::value,
6945 "Found duplicate types among the arguments passed to Repair(...). "
6946 "Types should be listed at most once.");
6948 set(std::forward<Args>(args)...);
6962 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
6964 template<typename... Args>
6968 using namespace Zivid::Detail::TypeTraits;
6970 using AllArgsAreDescendantNodes =
6971 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
6973 AllArgsAreDescendantNodes::value,
6974 "All arguments passed to set(...) must be descendant nodes.");
6977 AllArgsDecayedAreUnique<Args...>::value,
6978 "Found duplicate types among the arguments passed to set(...). "
6979 "Types should be listed at most once.");
6981 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
6996 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
6998 template<typename... Args>
7002 using namespace Zivid::Detail::TypeTraits;
7004 using AllArgsAreDescendantNodes =
7005 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7007 AllArgsAreDescendantNodes::value,
7008 "All arguments passed to copyWith(...) must be descendant nodes.");
7011 AllArgsDecayedAreUnique<Args...>::value,
7012 "Found duplicate types among the arguments passed to copyWith(...). "
7013 "Types should be listed at most once.");
7016 copy.
set(std::forward<Args>(args)...);
7041 typename std::enable_if<
7042 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
7049 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7056 template<
typename F>
7063 template<
typename F>
7085 void setFromString(
const std::string &value);
7087 void setFromString(
const std::string &fullPath,
const std::string &value);
7089 std::string getString(
const std::string &fullPath)
const;
7093 friend struct DataModel::Detail::Befriend<
Repair>;
7109 static constexpr const char *path{
"Processing/Filters/Noise/Suppression" };
7112 static constexpr const char *name{
"Suppression" };
7115 static constexpr const char *description{
7116 R
"description(Reduce noise and outliers in the point cloud. This filter can also be used to reduce
7117ripple effects caused by interreflections. Consider disabling this filter if you need to
7118distinguish very fine details and thus need to avoid any smoothing effects.
7132 static constexpr const char *path{
"Processing/Filters/Noise/Suppression/Enabled" };
7135 static constexpr const char *name{
"Enabled" };
7138 static constexpr const char *description{
7139 R
"description(Enable or disable noise suppression.)description"
7150 return {
false,
true };
7179 return m_opt == other.m_opt;
7185 return m_opt != other.m_opt;
7195 void setFromString(
const std::string &value);
7197 Zivid::DataModel::Detail::Optional<bool> m_opt;
7199 friend struct DataModel::Detail::Befriend<
Enabled>;
7202 using Descendants = std::tuple<Settings::Processing::Filters::Noise::Suppression::Enabled>;
7221 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7222 typename std::enable_if<
7223 Zivid::Detail::TypeTraits::
7224 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
7227 template<typename... Args>
7231 using namespace Zivid::Detail::TypeTraits;
7234 AllArgsDecayedAreUnique<Args...>::value,
7235 "Found duplicate types among the arguments passed to Suppression(...). "
7236 "Types should be listed at most once.");
7238 set(std::forward<Args>(args)...);
7252 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7254 template<typename... Args>
7258 using namespace Zivid::Detail::TypeTraits;
7260 using AllArgsAreDescendantNodes =
7261 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7263 AllArgsAreDescendantNodes::value,
7264 "All arguments passed to set(...) must be descendant nodes.");
7267 AllArgsDecayedAreUnique<Args...>::value,
7268 "Found duplicate types among the arguments passed to set(...). "
7269 "Types should be listed at most once.");
7271 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7286 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7288 template<typename... Args>
7292 using namespace Zivid::Detail::TypeTraits;
7294 using AllArgsAreDescendantNodes =
7295 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7297 AllArgsAreDescendantNodes::value,
7298 "All arguments passed to copyWith(...) must be descendant nodes.");
7301 AllArgsDecayedAreUnique<Args...>::value,
7302 "Found duplicate types among the arguments passed to copyWith(...). "
7303 "Types should be listed at most once.");
7306 copy.
set(std::forward<Args>(args)...);
7331 typename std::enable_if<
7332 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
7339 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7346 template<
typename F>
7353 template<
typename F>
7375 void setFromString(
const std::string &value);
7377 void setFromString(
const std::string &fullPath,
const std::string &value);
7379 std::string getString(
const std::string &fullPath)
const;
7383 friend struct DataModel::Detail::Befriend<
Suppression>;
7418 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7419 typename std::enable_if<
7420 Zivid::Detail::TypeTraits::
7421 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
7424 template<typename... Args>
7428 using namespace Zivid::Detail::TypeTraits;
7431 AllArgsDecayedAreUnique<Args...>::value,
7432 "Found duplicate types among the arguments passed to Noise(...). "
7433 "Types should be listed at most once.");
7435 set(std::forward<Args>(args)...);
7455 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
7457 template<typename... Args>
7461 using namespace Zivid::Detail::TypeTraits;
7463 using AllArgsAreDescendantNodes =
7464 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7466 AllArgsAreDescendantNodes::value,
7467 "All arguments passed to set(...) must be descendant nodes.");
7470 AllArgsDecayedAreUnique<Args...>::value,
7471 "Found duplicate types among the arguments passed to set(...). "
7472 "Types should be listed at most once.");
7474 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
7495 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
7497 template<typename... Args>
7501 using namespace Zivid::Detail::TypeTraits;
7503 using AllArgsAreDescendantNodes =
7504 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
7506 AllArgsAreDescendantNodes::value,
7507 "All arguments passed to copyWith(...) must be descendant nodes.");
7510 AllArgsDecayedAreUnique<Args...>::value,
7511 "Found duplicate types among the arguments passed to copyWith(...). "
7512 "Types should be listed at most once.");
7515 copy.
set(std::forward<Args>(args)...);
7541 m_removal.
set(value);
7548 m_removal.
set(value);
7574 m_repair.
set(value);
7581 return m_suppression;
7587 return m_suppression;
7593 m_suppression = value;
7600 m_suppression.
set(value);
7606 typename std::enable_if<
7607 std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
7616 typename std::enable_if<
7617 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
7626 typename std::enable_if<
7627 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
7636 typename std::enable_if<
7637 std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
7646 typename std::enable_if<
7647 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
7656 typename std::enable_if<
7657 std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
7661 return m_suppression;
7666 typename std::enable_if<
7667 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
7674 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
7680 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
7686 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
7689 return m_suppression;
7693 template<
typename F>
7702 template<
typename F>
7726 void setFromString(
const std::string &value);
7728 void setFromString(
const std::string &fullPath,
const std::string &value);
7730 std::string getString(
const std::string &fullPath)
const;
7736 friend struct DataModel::Detail::Befriend<
Noise>;
7749 static constexpr const char *path{
"Processing/Filters/Outlier" };
7752 static constexpr const char *name{
"Outlier" };
7755 static constexpr const char *description{
7756 R
"description(Contains a filter that removes points with large Euclidean distance to neighboring points.)description"
7769 static constexpr const char *path{
"Processing/Filters/Outlier/Removal" };
7772 static constexpr const char *name{
"Removal" };
7775 static constexpr const char *description{
7776 R
"description(Discard point if Euclidean distance to neighboring points is above a threshold.)description"
7789 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Enabled" };
7792 static constexpr const char *name{
"Enabled" };
7795 static constexpr const char *description{
7796 R
"description(Enable or disable the outlier filter.)description"
7807 return {
false,
true };
7836 return m_opt == other.m_opt;
7842 return m_opt != other.m_opt;
7852 void setFromString(
const std::string &value);
7854 Zivid::DataModel::Detail::Optional<bool> m_opt;
7856 friend struct DataModel::Detail::Befriend<
Enabled>;
7869 static constexpr const char *path{
"Processing/Filters/Outlier/Removal/Threshold" };
7872 static constexpr const char *name{
"Threshold" };
7875 static constexpr const char *description{
7876 R
"description(Discard point if Euclidean distance to neighboring points is above the given value.)description"
7885 return { 0.0, 100.0 };
7893 : m_opt{ verifyValue(value) }
7914 return m_opt == other.m_opt;
7920 return m_opt != other.m_opt;
7926 return m_opt < other.m_opt;
7932 return m_opt > other.m_opt;
7938 return m_opt <= other.m_opt;
7944 return m_opt >= other.m_opt;
7954 void setFromString(
const std::string &value);
7956 constexpr ValueType
static verifyValue(
const ValueType &value)
7958 return validRange().isInRange(value)
7960 :
throw std::out_of_range{
"Threshold{ " + std::to_string(value)
7961 +
" } is not in range ["
7962 + std::to_string(validRange().min()) +
", "
7963 + std::to_string(validRange().max()) +
"]" };
7966 Zivid::DataModel::Detail::Optional<double> m_opt;
7968 friend struct DataModel::Detail::Befriend<
Threshold>;
7993 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
7994 typename std::enable_if<
7995 Zivid::Detail::TypeTraits::
7996 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
7999 template<typename... Args>
8003 using namespace Zivid::Detail::TypeTraits;
8006 AllArgsDecayedAreUnique<Args...>::value,
8007 "Found duplicate types among the arguments passed to Removal(...). "
8008 "Types should be listed at most once.");
8010 set(std::forward<Args>(args)...);
8025 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8027 template<typename... Args>
8031 using namespace Zivid::Detail::TypeTraits;
8033 using AllArgsAreDescendantNodes =
8034 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8036 AllArgsAreDescendantNodes::value,
8037 "All arguments passed to set(...) must be descendant nodes.");
8040 AllArgsDecayedAreUnique<Args...>::value,
8041 "Found duplicate types among the arguments passed to set(...). "
8042 "Types should be listed at most once.");
8044 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8060 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8062 template<typename... Args>
8066 using namespace Zivid::Detail::TypeTraits;
8068 using AllArgsAreDescendantNodes =
8069 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8071 AllArgsAreDescendantNodes::value,
8072 "All arguments passed to copyWith(...) must be descendant nodes.");
8075 AllArgsDecayedAreUnique<Args...>::value,
8076 "Found duplicate types among the arguments passed to copyWith(...). "
8077 "Types should be listed at most once.");
8080 copy.
set(std::forward<Args>(args)...);
8118 m_threshold = value;
8124 typename std::enable_if<
8125 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
8134 typename std::enable_if<
8135 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
8142 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8148 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
8155 template<
typename F>
8163 template<
typename F>
8186 void setFromString(
const std::string &value);
8188 void setFromString(
const std::string &fullPath,
const std::string &value);
8190 std::string getString(
const std::string &fullPath)
const;
8195 friend struct DataModel::Detail::Befriend<
Removal>;
8222 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8223 typename std::enable_if<
8224 Zivid::Detail::TypeTraits::
8225 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8228 template<typename... Args>
8232 using namespace Zivid::Detail::TypeTraits;
8235 AllArgsDecayedAreUnique<Args...>::value,
8236 "Found duplicate types among the arguments passed to Outlier(...). "
8237 "Types should be listed at most once.");
8239 set(std::forward<Args>(args)...);
8255 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8257 template<typename... Args>
8261 using namespace Zivid::Detail::TypeTraits;
8263 using AllArgsAreDescendantNodes =
8264 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8266 AllArgsAreDescendantNodes::value,
8267 "All arguments passed to set(...) must be descendant nodes.");
8270 AllArgsDecayedAreUnique<Args...>::value,
8271 "Found duplicate types among the arguments passed to set(...). "
8272 "Types should be listed at most once.");
8274 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8291 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8293 template<typename... Args>
8297 using namespace Zivid::Detail::TypeTraits;
8299 using AllArgsAreDescendantNodes =
8300 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8302 AllArgsAreDescendantNodes::value,
8303 "All arguments passed to copyWith(...) must be descendant nodes.");
8306 AllArgsDecayedAreUnique<Args...>::value,
8307 "Found duplicate types among the arguments passed to copyWith(...). "
8308 "Types should be listed at most once.");
8311 copy.
set(std::forward<Args>(args)...);
8337 m_removal.
set(value);
8344 m_removal.
set(value);
8350 typename std::enable_if<
8351 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
8360 typename std::enable_if<
8361 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
8370 typename std::enable_if<
8371 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
8378 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8385 template<
typename F>
8392 template<
typename F>
8414 void setFromString(
const std::string &value);
8416 void setFromString(
const std::string &fullPath,
const std::string &value);
8418 std::string getString(
const std::string &fullPath)
const;
8422 friend struct DataModel::Detail::Befriend<
Outlier>;
8435 static constexpr const char *path{
"Processing/Filters/Reflection" };
8438 static constexpr const char *name{
"Reflection" };
8441 static constexpr const char *description{
8442 R
"description(Contains a filter that removes points likely introduced by reflections (useful for shiny materials).)description"
8455 static constexpr const char *path{
"Processing/Filters/Reflection/Removal" };
8458 static constexpr const char *name{
"Removal" };
8461 static constexpr const char *description{
8462 R
"description(Discard points likely introduced by reflections (useful for shiny materials).)description"
8475 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Enabled" };
8478 static constexpr const char *name{
"Enabled" };
8481 static constexpr const char *description{
8482 R
"description(Enable or disable the reflection filter. Note that this filter is computationally intensive and may affect the frame rate.)description"
8493 return {
false,
true };
8522 return m_opt == other.m_opt;
8528 return m_opt != other.m_opt;
8538 void setFromString(
const std::string &value);
8540 Zivid::DataModel::Detail::Optional<bool> m_opt;
8542 friend struct DataModel::Detail::Befriend<
Enabled>;
8562 static constexpr const char *path{
"Processing/Filters/Reflection/Removal/Mode" };
8565 static constexpr const char *name{
"Mode" };
8568 static constexpr const char *description{
8569 R
"description(The reflection filter has two modes: Local and Global. Local mode preserves more 3D data
8570on thinner objects, generally removes more reflection artifacts and processes faster than
8571the Global filter. The Global filter is generally better at removing outlier points in
8572the point cloud. It is advised to use the Outlier filter and Cluster filter together with the
8573Local Reflection filter.
8575Global mode was introduced in SDK 1.0 and Local mode was introduced in SDK 2.7.
8591 return { ValueType::global, ValueType::local };
8599 : m_opt{ verifyValue(value) }
8626 return m_opt == other.m_opt;
8632 return m_opt != other.m_opt;
8642 void setFromString(
const std::string &value);
8644 constexpr ValueType
static verifyValue(
const ValueType &value)
8646 return value == ValueType::global || value == ValueType::local
8648 :
throw std::invalid_argument{
8649 "Invalid value: Mode{ "
8651 static_cast<std::underlying_type<ValueType>::type
>(value))
8656 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
8658 friend struct DataModel::Detail::Befriend<
Mode>;
8683 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8684 typename std::enable_if<
8685 Zivid::Detail::TypeTraits::
8686 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8689 template<typename... Args>
8693 using namespace Zivid::Detail::TypeTraits;
8696 AllArgsDecayedAreUnique<Args...>::value,
8697 "Found duplicate types among the arguments passed to Removal(...). "
8698 "Types should be listed at most once.");
8700 set(std::forward<Args>(args)...);
8715 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8717 template<typename... Args>
8721 using namespace Zivid::Detail::TypeTraits;
8723 using AllArgsAreDescendantNodes =
8724 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8726 AllArgsAreDescendantNodes::value,
8727 "All arguments passed to set(...) must be descendant nodes.");
8730 AllArgsDecayedAreUnique<Args...>::value,
8731 "Found duplicate types among the arguments passed to set(...). "
8732 "Types should be listed at most once.");
8734 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8750 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8752 template<typename... Args>
8756 using namespace Zivid::Detail::TypeTraits;
8758 using AllArgsAreDescendantNodes =
8759 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8761 AllArgsAreDescendantNodes::value,
8762 "All arguments passed to copyWith(...) must be descendant nodes.");
8765 AllArgsDecayedAreUnique<Args...>::value,
8766 "Found duplicate types among the arguments passed to copyWith(...). "
8767 "Types should be listed at most once.");
8770 copy.
set(std::forward<Args>(args)...);
8814 typename std::enable_if<
8815 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
8824 typename std::enable_if<
8825 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
8832 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
8838 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
8845 template<
typename F>
8853 template<
typename F>
8876 void setFromString(
const std::string &value);
8878 void setFromString(
const std::string &fullPath,
const std::string &value);
8880 std::string getString(
const std::string &fullPath)
const;
8885 friend struct DataModel::Detail::Befriend<
Removal>;
8912 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
8913 typename std::enable_if<
8914 Zivid::Detail::TypeTraits::
8915 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
8918 template<typename... Args>
8922 using namespace Zivid::Detail::TypeTraits;
8925 AllArgsDecayedAreUnique<Args...>::value,
8926 "Found duplicate types among the arguments passed to Reflection(...). "
8927 "Types should be listed at most once.");
8929 set(std::forward<Args>(args)...);
8945 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
8947 template<typename... Args>
8951 using namespace Zivid::Detail::TypeTraits;
8953 using AllArgsAreDescendantNodes =
8954 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8956 AllArgsAreDescendantNodes::value,
8957 "All arguments passed to set(...) must be descendant nodes.");
8960 AllArgsDecayedAreUnique<Args...>::value,
8961 "Found duplicate types among the arguments passed to set(...). "
8962 "Types should be listed at most once.");
8964 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
8981 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
8983 template<typename... Args>
8987 using namespace Zivid::Detail::TypeTraits;
8989 using AllArgsAreDescendantNodes =
8990 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
8992 AllArgsAreDescendantNodes::value,
8993 "All arguments passed to copyWith(...) must be descendant nodes.");
8996 AllArgsDecayedAreUnique<Args...>::value,
8997 "Found duplicate types among the arguments passed to copyWith(...). "
8998 "Types should be listed at most once.");
9001 copy.
set(std::forward<Args>(args)...);
9027 m_removal.
set(value);
9034 m_removal.
set(value);
9040 typename std::enable_if<
9041 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
9050 typename std::enable_if<
9051 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
9060 typename std::enable_if<
9061 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
9068 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9075 template<
typename F>
9082 template<
typename F>
9104 void setFromString(
const std::string &value);
9106 void setFromString(
const std::string &fullPath,
const std::string &value);
9108 std::string getString(
const std::string &fullPath)
const;
9112 friend struct DataModel::Detail::Befriend<
Reflection>;
9125 static constexpr const char *path{
"Processing/Filters/Smoothing" };
9128 static constexpr const char *name{
"Smoothing" };
9131 static constexpr const char *description{ R
"description(Smoothing filters.)description" };
9143 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian" };
9146 static constexpr const char *name{
"Gaussian" };
9149 static constexpr const char *description{
9150 R
"description(Gaussian smoothing of the point cloud.)description"
9163 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Enabled" };
9166 static constexpr const char *name{
"Enabled" };
9169 static constexpr const char *description{
9170 R
"description(Enable or disable the smoothing filter.)description"
9181 return {
false,
true };
9210 return m_opt == other.m_opt;
9216 return m_opt != other.m_opt;
9226 void setFromString(
const std::string &value);
9228 Zivid::DataModel::Detail::Optional<bool> m_opt;
9230 friend struct DataModel::Detail::Befriend<
Enabled>;
9243 static constexpr const char *path{
"Processing/Filters/Smoothing/Gaussian/Sigma" };
9246 static constexpr const char *name{
"Sigma" };
9249 static constexpr const char *description{
9250 R
"description(Higher values result in smoother point clouds (Standard deviation of the filter coefficients).)description"
9267 : m_opt{ verifyValue(value) }
9288 return m_opt == other.m_opt;
9294 return m_opt != other.m_opt;
9300 return m_opt < other.m_opt;
9306 return m_opt > other.m_opt;
9312 return m_opt <= other.m_opt;
9318 return m_opt >= other.m_opt;
9328 void setFromString(
const std::string &value);
9330 constexpr ValueType
static verifyValue(
const ValueType &value)
9332 return validRange().isInRange(value)
9334 :
throw std::out_of_range{
"Sigma{ " + std::to_string(value)
9335 +
" } is not in range ["
9336 + std::to_string(validRange().min()) +
", "
9337 + std::to_string(validRange().max()) +
"]" };
9340 Zivid::DataModel::Detail::Optional<double> m_opt;
9342 friend struct DataModel::Detail::Befriend<
Sigma>;
9367 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9368 typename std::enable_if<
9369 Zivid::Detail::TypeTraits::
9370 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9373 template<typename... Args>
9377 using namespace Zivid::Detail::TypeTraits;
9380 AllArgsDecayedAreUnique<Args...>::value,
9381 "Found duplicate types among the arguments passed to Gaussian(...). "
9382 "Types should be listed at most once.");
9384 set(std::forward<Args>(args)...);
9399 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9401 template<typename... Args>
9405 using namespace Zivid::Detail::TypeTraits;
9407 using AllArgsAreDescendantNodes =
9408 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9410 AllArgsAreDescendantNodes::value,
9411 "All arguments passed to set(...) must be descendant nodes.");
9414 AllArgsDecayedAreUnique<Args...>::value,
9415 "Found duplicate types among the arguments passed to set(...). "
9416 "Types should be listed at most once.");
9418 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9434 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9436 template<typename... Args>
9440 using namespace Zivid::Detail::TypeTraits;
9442 using AllArgsAreDescendantNodes =
9443 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9445 AllArgsAreDescendantNodes::value,
9446 "All arguments passed to copyWith(...) must be descendant nodes.");
9449 AllArgsDecayedAreUnique<Args...>::value,
9450 "Found duplicate types among the arguments passed to copyWith(...). "
9451 "Types should be listed at most once.");
9454 copy.
set(std::forward<Args>(args)...);
9498 typename std::enable_if<
9499 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9508 typename std::enable_if<
9509 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9516 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9522 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
9529 template<
typename F>
9537 template<
typename F>
9560 void setFromString(
const std::string &value);
9562 void setFromString(
const std::string &fullPath,
const std::string &value);
9564 std::string getString(
const std::string &fullPath)
const;
9569 friend struct DataModel::Detail::Befriend<
Gaussian>;
9596 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9597 typename std::enable_if<
9598 Zivid::Detail::TypeTraits::
9599 AllArgsAreInTuple<
Descendants, typename std::decay<Args>::type...>::value,
9602 template<typename... Args>
9606 using namespace Zivid::Detail::TypeTraits;
9609 AllArgsDecayedAreUnique<Args...>::value,
9610 "Found duplicate types among the arguments passed to Smoothing(...). "
9611 "Types should be listed at most once.");
9613 set(std::forward<Args>(args)...);
9629 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9631 template<typename... Args>
9635 using namespace Zivid::Detail::TypeTraits;
9637 using AllArgsAreDescendantNodes =
9638 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9640 AllArgsAreDescendantNodes::value,
9641 "All arguments passed to set(...) must be descendant nodes.");
9644 AllArgsDecayedAreUnique<Args...>::value,
9645 "Found duplicate types among the arguments passed to set(...). "
9646 "Types should be listed at most once.");
9648 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
9665 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
9667 template<typename... Args>
9671 using namespace Zivid::Detail::TypeTraits;
9673 using AllArgsAreDescendantNodes =
9674 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9676 AllArgsAreDescendantNodes::value,
9677 "All arguments passed to copyWith(...) must be descendant nodes.");
9680 AllArgsDecayedAreUnique<Args...>::value,
9681 "Found duplicate types among the arguments passed to copyWith(...). "
9682 "Types should be listed at most once.");
9685 copy.
set(std::forward<Args>(args)...);
9711 m_gaussian.
set(value);
9718 m_gaussian.
set(value);
9724 typename std::enable_if<
9725 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
9734 typename std::enable_if<
9735 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
9744 typename std::enable_if<
9745 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
9752 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
9759 template<
typename F>
9766 template<
typename F>
9788 void setFromString(
const std::string &value);
9790 void setFromString(
const std::string &fullPath,
const std::string &value);
9792 std::string getString(
const std::string &fullPath)
const;
9796 friend struct DataModel::Detail::Befriend<
Smoothing>;
9893 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
9894 typename std::enable_if<
9895 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
9899 template<typename... Args>
9903 using namespace Zivid::Detail::TypeTraits;
9906 AllArgsDecayedAreUnique<Args...>::value,
9907 "Found duplicate types among the arguments passed to Filters(...). "
9908 "Types should be listed at most once.");
9910 set(std::forward<Args>(args)...);
9961 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
9963 template<typename... Args>
9967 using namespace Zivid::Detail::TypeTraits;
9969 using AllArgsAreDescendantNodes =
9970 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
9972 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
9975 AllArgsDecayedAreUnique<Args...>::value,
9976 "Found duplicate types among the arguments passed to set(...). "
9977 "Types should be listed at most once.");
9979 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
10031 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
10033 template<typename... Args>
10037 using namespace Zivid::Detail::TypeTraits;
10039 using AllArgsAreDescendantNodes =
10040 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
10042 AllArgsAreDescendantNodes::value,
10043 "All arguments passed to copyWith(...) must be descendant nodes.");
10046 AllArgsDecayedAreUnique<Args...>::value,
10047 "Found duplicate types among the arguments passed to copyWith(...). "
10048 "Types should be listed at most once.");
10050 auto copy{ *
this };
10051 copy.
set(std::forward<Args>(args)...);
10077 m_cluster.
set(value);
10084 m_cluster.
set(value);
10091 m_cluster.
set(value);
10098 m_cluster.
set(value);
10105 return m_experimental;
10111 return m_experimental;
10117 m_experimental = value;
10124 m_experimental.
set(value);
10131 m_experimental.
set(value);
10138 m_experimental.
set(value);
10145 m_experimental.
set(value);
10152 m_experimental.
set(value);
10159 m_experimental.
set(value);
10166 m_experimental.
set(value);
10239 m_noise.
set(value);
10246 m_noise.
set(value);
10253 m_noise.
set(value);
10260 m_noise.
set(value);
10267 m_noise.
set(value);
10274 m_noise.
set(value);
10281 m_noise.
set(value);
10307 m_outlier.
set(value);
10314 m_outlier.
set(value);
10321 m_outlier.
set(value);
10328 return m_reflection;
10334 return m_reflection;
10340 m_reflection = value;
10347 m_reflection.
set(value);
10354 m_reflection.
set(value);
10361 m_reflection.
set(value);
10368 return m_smoothing;
10374 return m_smoothing;
10380 m_smoothing = value;
10387 m_smoothing.
set(value);
10394 m_smoothing.
set(value);
10401 m_smoothing.
set(value);
10407 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type =
10416 typename std::enable_if<
10417 std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
10426 typename std::enable_if<
10427 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
10436 typename std::enable_if<
10437 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
10446 typename std::enable_if<
10447 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
10456 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
10460 return m_experimental;
10465 typename std::enable_if<
10466 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
10475 typename std::enable_if<
10476 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::
10481 return m_experimental
10487 typename std::enable_if<
10495 return m_experimental
10501 typename std::enable_if<
10509 return m_experimental
10515 typename std::enable_if<
10516 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::
10521 return m_experimental
10527 typename std::enable_if<
10534 return m_experimental
10540 typename std::enable_if<
10547 return m_experimental
10553 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
10561 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::
10570 typename std::enable_if<
10571 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
10580 typename std::enable_if<
10581 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
10590 typename std::enable_if<
10591 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
10600 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type =
10610 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type = 0>
10618 typename std::enable_if<
10619 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
10628 typename std::enable_if<
10629 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
10638 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
10647 typename std::enable_if<
10648 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
10657 typename std::enable_if<
10658 std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
10667 typename std::enable_if<
10668 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
10677 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type =
10686 typename std::enable_if<
10687 std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
10696 typename std::enable_if<
10697 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
10706 typename std::enable_if<
10707 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
10716 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::
10720 return m_reflection;
10725 typename std::enable_if<
10726 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
10735 typename std::enable_if<
10736 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
10745 typename std::enable_if<
10746 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
10755 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::
10759 return m_smoothing;
10764 typename std::enable_if<
10765 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
10774 typename std::enable_if<
10775 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
10784 typename std::enable_if<
10785 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
10792 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
10798 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
10801 return m_experimental;
10804 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
10810 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
10816 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
10822 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
10825 return m_reflection;
10828 template<size_t i, typename std::enable_if<i == 6, int>::type = 0>
10831 return m_smoothing;
10835 template<
typename F>
10848 template<
typename F>
10872 return stream << value.
toString();
10876 void setFromString(
const std::string &value);
10878 void setFromString(
const std::string &fullPath,
const std::string &value);
10880 std::string getString(
const std::string &fullPath)
const;
10883 Experimental m_experimental;
10887 Reflection m_reflection;
10890 friend struct DataModel::Detail::Befriend<
Filters>;
10904 static constexpr const char *path{
"Processing/Resampling" };
10907 static constexpr const char *name{
"Resampling" };
10910 static constexpr const char *description{
10911 R
"description(Settings for changing the output resolution of the point cloud.
10947 static constexpr const char *path{
"Processing/Resampling/Mode" };
10950 static constexpr const char *name{
"Mode" };
10953 static constexpr const char *description{
10954 R
"description(Setting for upsampling or downsampling the point cloud data by some factor. This operation
10955is performed after all other processing has been completed.
10957Downsampling is used to reduce the number of points in the point cloud. This is done by
10958combining each 2x2 or 4x4 group of pixels in the original point cloud into one pixel in
10959a new point cloud. This downsample functionality is identical to the downsample method
10960on the PointCloud class. The averaging process reduces noise in the point cloud, but it
10961will not improve capture speed. To improve capture speed, consider using the subsampling
10962modes found in Settings/Sampling/Pixel.
10964Upsampling is used to increase the number of points in the point cloud. It is not possible
10965to upsample beyond the full resolution of the camera, so upsampling may only be used in
10966combination with the subsampling modes found in Settings/Sampling/Pixel. For example, one may
10967combine blueSubsample2x2 with upsample2x2 to obtain a point cloud that matches a full
10968resolution 2D capture, while retaining the speed benefits of capturing the point cloud with
10969blueSubsample2x2. Upsampling is achieved by expanding pixels in the original point cloud into
10970groups of 2x2 or 4x4 pixels in a new point cloud. Where possible, values are filled at the
10971new points based on an interpolation of the surrounding original points. The points in the
10972new point cloud that correspond to points in the original point cloud are left unchanged.
10973Note that upsampling will lead to four (upsample2x2) or sixteen (upsample4x4) times as many
10974pixels in the point cloud compared to no upsampling, so users should be aware of increased
10975computational cost related to copying and analyzing this data.
10997 return { ValueType::disabled,
10998 ValueType::downsample2x2,
10999 ValueType::downsample4x4,
11000 ValueType::upsample2x2,
11001 ValueType::upsample4x4 };
11009 : m_opt{ verifyValue(value) }
11036 return m_opt == other.m_opt;
11042 return m_opt != other.m_opt;
11048 return stream << value.
toString();
11052 void setFromString(
const std::string &value);
11054 constexpr ValueType
static verifyValue(
const ValueType &value)
11056 return value == ValueType::disabled || value == ValueType::downsample2x2
11057 || value == ValueType::downsample4x4 || value == ValueType::upsample2x2
11058 || value == ValueType::upsample4x4
11060 :
throw std::invalid_argument{
11061 "Invalid value: Mode{ "
11062 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value))
11067 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
11069 friend struct DataModel::Detail::Befriend<
Mode>;
11091 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11092 typename std::enable_if<
11093 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11097 template<typename... Args>
11101 using namespace Zivid::Detail::TypeTraits;
11104 AllArgsDecayedAreUnique<Args...>::value,
11105 "Found duplicate types among the arguments passed to Resampling(...). "
11106 "Types should be listed at most once.");
11108 set(std::forward<Args>(args)...);
11122 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11124 template<typename... Args>
11128 using namespace Zivid::Detail::TypeTraits;
11130 using AllArgsAreDescendantNodes =
11131 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11133 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11136 AllArgsDecayedAreUnique<Args...>::value,
11137 "Found duplicate types among the arguments passed to set(...). "
11138 "Types should be listed at most once.");
11140 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
11155 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
11157 template<typename... Args>
11161 using namespace Zivid::Detail::TypeTraits;
11163 using AllArgsAreDescendantNodes =
11164 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11166 AllArgsAreDescendantNodes::value,
11167 "All arguments passed to copyWith(...) must be descendant nodes.");
11170 AllArgsDecayedAreUnique<Args...>::value,
11171 "Found duplicate types among the arguments passed to copyWith(...). "
11172 "Types should be listed at most once.");
11174 auto copy{ *
this };
11175 copy.
set(std::forward<Args>(args)...);
11200 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type =
11207 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
11214 template<
typename F>
11221 template<
typename F>
11239 return stream << value.
toString();
11243 void setFromString(
const std::string &value);
11245 void setFromString(
const std::string &fullPath,
const std::string &value);
11247 std::string getString(
const std::string &fullPath)
const;
11251 friend struct DataModel::Detail::Befriend<
Resampling>;
11370 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
11371 typename std::enable_if<
11372 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
11376 template<typename... Args>
11380 using namespace Zivid::Detail::TypeTraits;
11383 AllArgsDecayedAreUnique<Args...>::value,
11384 "Found duplicate types among the arguments passed to Processing(...). "
11385 "Types should be listed at most once.");
11387 set(std::forward<Args>(args)...);
11449 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
11451 template<typename... Args>
11455 using namespace Zivid::Detail::TypeTraits;
11457 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11459 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
11462 AllArgsDecayedAreUnique<Args...>::value,
11463 "Found duplicate types among the arguments passed to set(...). "
11464 "Types should be listed at most once.");
11466 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
11529 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
11531 template<typename... Args>
11535 using namespace Zivid::Detail::TypeTraits;
11537 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
11539 AllArgsAreDescendantNodes::value,
11540 "All arguments passed to copyWith(...) must be descendant nodes.");
11543 AllArgsDecayedAreUnique<Args...>::value,
11544 "Found duplicate types among the arguments passed to copyWith(...). "
11545 "Types should be listed at most once.");
11547 auto copy{ *
this };
11548 copy.
set(std::forward<Args>(args)...);
11574 m_color.
set(value);
11581 m_color.
set(value);
11588 m_color.
set(value);
11595 m_color.
set(value);
11602 m_color.
set(value);
11609 m_color.
set(value);
11616 m_color.
set(value);
11642 m_filters.
set(value);
11649 m_filters.
set(value);
11656 m_filters.
set(value);
11663 m_filters.
set(value);
11670 m_filters.
set(value);
11677 m_filters.
set(value);
11684 m_filters.
set(value);
11691 m_filters.
set(value);
11698 m_filters.
set(value);
11705 m_filters.
set(value);
11712 m_filters.
set(value);
11719 m_filters.
set(value);
11726 m_filters.
set(value);
11733 m_filters.
set(value);
11740 m_filters.
set(value);
11747 m_filters.
set(value);
11754 m_filters.
set(value);
11761 m_filters.
set(value);
11768 m_filters.
set(value);
11775 m_filters.
set(value);
11782 m_filters.
set(value);
11789 m_filters.
set(value);
11796 m_filters.
set(value);
11803 m_filters.
set(value);
11810 m_filters.
set(value);
11817 m_filters.
set(value);
11824 m_filters.
set(value);
11831 m_filters.
set(value);
11838 m_filters.
set(value);
11845 m_filters.
set(value);
11852 m_filters.
set(value);
11859 m_filters.
set(value);
11866 m_filters.
set(value);
11873 m_filters.
set(value);
11880 m_filters.
set(value);
11887 m_filters.
set(value);
11894 m_filters.
set(value);
11901 m_filters.
set(value);
11908 return m_resampling;
11914 return m_resampling;
11920 m_resampling = value;
11927 m_resampling.
set(value);
11933 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
11941 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
11949 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type =
11958 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::
11967 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type =
11976 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type =
11985 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
11994 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
12002 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
12010 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
12018 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
12027 typename std::enable_if<
12028 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
12037 typename std::enable_if<
12038 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
12047 typename std::enable_if<
12048 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
12057 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::
12066 typename std::enable_if<
12067 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
12076 typename std::enable_if<
12077 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
12086 typename std::enable_if<
12099 typename std::enable_if<
12112 typename std::enable_if<
12113 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
12122 typename std::enable_if<
12123 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
12134 typename std::enable_if<
12147 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
12155 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::
12164 typename std::enable_if<
12165 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
12174 typename std::enable_if<
12175 std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
12184 typename std::enable_if<
12185 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
12194 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
12202 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::
12211 typename std::enable_if<
12212 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
12221 typename std::enable_if<
12222 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
12231 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::
12240 typename std::enable_if<
12241 std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
12251 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::type = 0>
12259 typename std::enable_if<
12260 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
12269 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
12277 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
12286 typename std::enable_if<
12287 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
12296 typename std::enable_if<
12297 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
12306 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type =
12315 typename std::enable_if<
12316 std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
12325 typename std::enable_if<
12326 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
12335 typename std::enable_if<
12336 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
12345 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type =
12354 typename std::enable_if<
12355 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
12364 typename std::enable_if<
12365 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
12374 typename std::enable_if<
12375 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
12384 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling>::value,
int>::type = 0>
12387 return m_resampling;
12392 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type = 0>
12398 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
12404 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
12410 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
12413 return m_resampling;
12417 template<
typename F>
12426 template<
typename F>
12446 return stream << value.
toString();
12450 void setFromString(
const std::string &value);
12452 void setFromString(
const std::string &fullPath,
const std::string &value);
12454 std::string getString(
const std::string &fullPath)
const;
12460 friend struct DataModel::Detail::Befriend<
Processing>;
12474 static constexpr const char *path{
"RegionOfInterest" };
12477 static constexpr const char *name{
"RegionOfInterest" };
12480 static constexpr const char *description{ R
"description(Removes points outside the region of interest.
12508 static constexpr const char *path{
"RegionOfInterest/Box" };
12511 static constexpr const char *name{
"Box" };
12514 static constexpr const char *description{
12515 R
"description(Removes points outside the given three-dimensional box.
12517Using this feature may significantly speed up acquisition and processing time, because
12518one can avoid acquiring and processing data that is guaranteed to fall outside of the
12519region of interest. The degree of speed-up depends on the size and shape of the box.
12520Generally, a smaller box yields a greater speed-up.
12522The box is defined by three points: O, A and B. These points define two vectors,
12523OA that goes from PointO to PointA, and OB that goes from PointO to PointB.
12524This gives 4 points O, A, B and (O + OA + OB), that together form a
12525parallelogram in 3D.
12527Two extents can be provided, to extrude the parallelogram along the surface
12528normal vector of the parallelogram plane. This creates a 3D volume (parallelepiped).
12529The surface normal vector is defined by the cross product OA x OB.
12543 static constexpr const char *path{
"RegionOfInterest/Box/Enabled" };
12546 static constexpr const char *name{
"Enabled" };
12549 static constexpr const char *description{
12550 R
"description(Enable or disable box filter.)description"
12561 return {
false,
true };
12590 return m_opt == other.m_opt;
12596 return m_opt != other.m_opt;
12602 return stream << value.
toString();
12606 void setFromString(
const std::string &value);
12608 Zivid::DataModel::Detail::Optional<bool> m_opt;
12610 friend struct DataModel::Detail::Befriend<
Enabled>;
12623 static constexpr const char *path{
"RegionOfInterest/Box/Extents" };
12626 static constexpr const char *name{
"Extents" };
12629 static constexpr const char *description{
12630 R
"description(Two points on the normal describing the direction and distance from the plane from which the normal is derived.)description"
12660 explicit constexpr Extents(
double minValue,
double maxValue)
12667 return m_opt == other.m_opt;
12673 return m_opt != other.m_opt;
12679 return stream << value.
toString();
12683 void setFromString(
const std::string &value);
12685 Zivid::DataModel::Detail::Optional<Zivid::Range<double>> m_opt;
12687 friend struct DataModel::Detail::Befriend<
Extents>;
12700 static constexpr const char *path{
"RegionOfInterest/Box/PointA" };
12703 static constexpr const char *name{
"PointA" };
12706 static constexpr const char *description{
12707 R
"description(A point such that the vector from PointO to PointA describes the first edge of the parallelogram.)description"
12737 explicit constexpr PointA(
float x,
float y,
float z)
12744 return m_opt == other.m_opt;
12750 return m_opt != other.m_opt;
12756 return stream << value.
toString();
12760 void setFromString(
const std::string &value);
12762 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
12764 friend struct DataModel::Detail::Befriend<
PointA>;
12777 static constexpr const char *path{
"RegionOfInterest/Box/PointB" };
12780 static constexpr const char *name{
"PointB" };
12783 static constexpr const char *description{
12784 R
"description(A point such that the vector from PointO to PointB describes the second edge of the parallelogram.)description"
12814 explicit constexpr PointB(
float x,
float y,
float z)
12821 return m_opt == other.m_opt;
12827 return m_opt != other.m_opt;
12833 return stream << value.
toString();
12837 void setFromString(
const std::string &value);
12839 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
12841 friend struct DataModel::Detail::Befriend<
PointB>;
12854 static constexpr const char *path{
"RegionOfInterest/Box/PointO" };
12857 static constexpr const char *name{
"PointO" };
12860 static constexpr const char *description{
12861 R
"description(The point at the intersection of two adjacent edges defining a parallelogram.)description"
12891 explicit constexpr PointO(
float x,
float y,
float z)
12898 return m_opt == other.m_opt;
12904 return m_opt != other.m_opt;
12910 return stream << value.
toString();
12914 void setFromString(
const std::string &value);
12916 Zivid::DataModel::Detail::Optional<Zivid::PointXYZ> m_opt;
12918 friend struct DataModel::Detail::Befriend<
PointO>;
12949 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
12950 typename std::enable_if<
12951 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
12955 template<typename... Args>
12959 using namespace Zivid::Detail::TypeTraits;
12962 AllArgsDecayedAreUnique<Args...>::value,
12963 "Found duplicate types among the arguments passed to Box(...). "
12964 "Types should be listed at most once.");
12966 set(std::forward<Args>(args)...);
12984 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
12986 template<typename... Args>
12990 using namespace Zivid::Detail::TypeTraits;
12992 using AllArgsAreDescendantNodes =
12993 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
12995 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
12998 AllArgsDecayedAreUnique<Args...>::value,
12999 "Found duplicate types among the arguments passed to set(...). "
13000 "Types should be listed at most once.");
13002 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13021 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13023 template<typename... Args>
13027 using namespace Zivid::Detail::TypeTraits;
13029 using AllArgsAreDescendantNodes =
13030 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13032 AllArgsAreDescendantNodes::value,
13033 "All arguments passed to copyWith(...) must be descendant nodes.");
13036 AllArgsDecayedAreUnique<Args...>::value,
13037 "Found duplicate types among the arguments passed to copyWith(...). "
13038 "Types should be listed at most once.");
13040 auto copy{ *
this };
13041 copy.
set(std::forward<Args>(args)...);
13142 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::
13151 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::
13160 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::
13169 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::
13178 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::
13185 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13191 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13197 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
13203 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
13209 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
13216 template<
typename F>
13227 template<
typename F>
13249 return stream << value.
toString();
13253 void setFromString(
const std::string &value);
13255 void setFromString(
const std::string &fullPath,
const std::string &value);
13257 std::string getString(
const std::string &fullPath)
const;
13265 friend struct DataModel::Detail::Befriend<
Box>;
13280 static constexpr const char *path{
"RegionOfInterest/Depth" };
13283 static constexpr const char *name{
"Depth" };
13286 static constexpr const char *description{
13287 R
"description(Removes points that reside outside of a depth range, meaning that their Z coordinate
13288falls above a given maximum or below a given minimum.
13302 static constexpr const char *path{
"RegionOfInterest/Depth/Enabled" };
13305 static constexpr const char *name{
"Enabled" };
13308 static constexpr const char *description{
13309 R
"description(Enable or disable depth filter.)description"
13320 return {
false,
true };
13349 return m_opt == other.m_opt;
13355 return m_opt != other.m_opt;
13361 return stream << value.
toString();
13365 void setFromString(
const std::string &value);
13367 Zivid::DataModel::Detail::Optional<bool> m_opt;
13369 friend struct DataModel::Detail::Befriend<
Enabled>;
13382 static constexpr const char *path{
"RegionOfInterest/Depth/Range" };
13385 static constexpr const char *name{
"Range" };
13388 static constexpr const char *description{
13389 R
"description(Specify the minimum and maximum Z value that will be included.)description"
13419 explicit constexpr Range(
double minValue,
double maxValue)
13426 return m_opt == other.m_opt;
13432 return m_opt != other.m_opt;
13438 return stream << value.
toString();
13442 void setFromString(
const std::string &value);
13444 Zivid::DataModel::Detail::Optional<Zivid::Range<double>> m_opt;
13446 friend struct DataModel::Detail::Befriend<
Range>;
13450 std::tuple<Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range>;
13470 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13471 typename std::enable_if<
13472 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13476 template<typename... Args>
13480 using namespace Zivid::Detail::TypeTraits;
13483 AllArgsDecayedAreUnique<Args...>::value,
13484 "Found duplicate types among the arguments passed to Depth(...). "
13485 "Types should be listed at most once.");
13487 set(std::forward<Args>(args)...);
13502 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13504 template<typename... Args>
13508 using namespace Zivid::Detail::TypeTraits;
13510 using AllArgsAreDescendantNodes =
13511 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13513 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13516 AllArgsDecayedAreUnique<Args...>::value,
13517 "Found duplicate types among the arguments passed to set(...). "
13518 "Types should be listed at most once.");
13520 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13536 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13538 template<typename... Args>
13542 using namespace Zivid::Detail::TypeTraits;
13544 using AllArgsAreDescendantNodes =
13545 AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13547 AllArgsAreDescendantNodes::value,
13548 "All arguments passed to copyWith(...) must be descendant nodes.");
13551 AllArgsDecayedAreUnique<Args...>::value,
13552 "Found duplicate types among the arguments passed to copyWith(...). "
13553 "Types should be listed at most once.");
13555 auto copy{ *
this };
13556 copy.
set(std::forward<Args>(args)...);
13600 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::
13609 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::
13616 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13622 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13629 template<
typename F>
13637 template<
typename F>
13656 return stream << value.
toString();
13660 void setFromString(
const std::string &value);
13662 void setFromString(
const std::string &fullPath,
const std::string &value);
13664 std::string getString(
const std::string &fullPath)
const;
13669 friend struct DataModel::Detail::Befriend<
Depth>;
13708 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
13709 typename std::enable_if<
13710 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
13714 template<typename... Args>
13718 using namespace Zivid::Detail::TypeTraits;
13721 AllArgsDecayedAreUnique<Args...>::value,
13722 "Found duplicate types among the arguments passed to RegionOfInterest(...). "
13723 "Types should be listed at most once.");
13725 set(std::forward<Args>(args)...);
13747 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
13749 template<typename... Args>
13753 using namespace Zivid::Detail::TypeTraits;
13755 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13757 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
13760 AllArgsDecayedAreUnique<Args...>::value,
13761 "Found duplicate types among the arguments passed to set(...). "
13762 "Types should be listed at most once.");
13764 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
13787 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
13789 template<typename... Args>
13793 using namespace Zivid::Detail::TypeTraits;
13795 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
13797 AllArgsAreDescendantNodes::value,
13798 "All arguments passed to copyWith(...) must be descendant nodes.");
13801 AllArgsDecayedAreUnique<Args...>::value,
13802 "Found duplicate types among the arguments passed to copyWith(...). "
13803 "Types should be listed at most once.");
13805 auto copy{ *
this };
13806 copy.
set(std::forward<Args>(args)...);
13886 m_depth.
set(value);
13893 m_depth.
set(value);
13899 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
13907 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type =
13916 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type =
13925 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
13933 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
13941 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
13949 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
13957 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type =
13966 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type =
13973 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
13979 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
13986 template<
typename F>
13994 template<
typename F>
14013 return stream << value.
toString();
14017 void setFromString(
const std::string &value);
14019 void setFromString(
const std::string &fullPath,
const std::string &value);
14021 std::string getString(
const std::string &fullPath)
const;
14040 static constexpr const char *path{
"Sampling" };
14043 static constexpr const char *name{
"Sampling" };
14046 static constexpr const char *description{ R
"description(Sampling settings.
14065 static constexpr const char *path{
"Sampling/Color" };
14068 static constexpr const char *name{
"Color" };
14071 static constexpr const char *description{
14072 R
"description(Choose how to sample colors for the point cloud. The `rgb` option gives a 2D image
14073with full colors. The `grayscale` option gives a grayscale (r=g=b) 2D image, which
14074can be acquired faster than full colors. The `disabled` option gives no colors and
14075can allow for even faster captures.
14077The `grayscale` option is not available on all camera models.
14095 return { ValueType::rgb, ValueType::disabled, ValueType::grayscale };
14103 : m_opt{ verifyValue(value) }
14130 return m_opt == other.m_opt;
14136 return m_opt != other.m_opt;
14142 return stream << value.
toString();
14146 void setFromString(
const std::string &value);
14148 constexpr ValueType
static verifyValue(
const ValueType &value)
14150 return value == ValueType::rgb || value == ValueType::disabled || value == ValueType::grayscale
14152 :
throw std::invalid_argument{
14153 "Invalid value: Color{ "
14154 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14158 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
14160 friend struct DataModel::Detail::Befriend<
Color>;
14181 static constexpr const char *path{
"Sampling/Pixel" };
14184 static constexpr const char *name{
"Pixel" };
14187 static constexpr const char *description{
14188 R
"description(Set whether the full image sensor should be used with white projector light or
14189only specific color channels with corresponding projector light.
14190Using only a specific color channel will subsample pixels and give a
14193Subsampling decreases the capture time, as less data will be captured and processed.
14194Picking a specific color channel can also help reduce noise and effects of ambient light.
14195Projecting blue light will in most cases give better data than red light.
14217 return { ValueType::all,
14218 ValueType::blueSubsample2x2,
14219 ValueType::redSubsample2x2,
14220 ValueType::blueSubsample4x4,
14221 ValueType::redSubsample4x4 };
14229 : m_opt{ verifyValue(value) }
14256 return m_opt == other.m_opt;
14262 return m_opt != other.m_opt;
14268 return stream << value.
toString();
14272 void setFromString(
const std::string &value);
14274 constexpr ValueType
static verifyValue(
const ValueType &value)
14276 return value == ValueType::all || value == ValueType::blueSubsample2x2
14277 || value == ValueType::redSubsample2x2 || value == ValueType::blueSubsample4x4
14278 || value == ValueType::redSubsample4x4
14280 :
throw std::invalid_argument{
14281 "Invalid value: Pixel{ "
14282 + std::to_string(
static_cast<std::underlying_type<ValueType>::type
>(value)) +
" }"
14286 Zivid::DataModel::Detail::Optional<ValueType> m_opt;
14288 friend struct DataModel::Detail::Befriend<
Pixel>;
14291 using Descendants = std::tuple<Settings::Sampling::Color, Settings::Sampling::Pixel>;
14311 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14312 typename std::enable_if<
14313 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::
14317 template<typename... Args>
14321 using namespace Zivid::Detail::TypeTraits;
14324 AllArgsDecayedAreUnique<Args...>::value,
14325 "Found duplicate types among the arguments passed to Sampling(...). "
14326 "Types should be listed at most once.");
14328 set(std::forward<Args>(args)...);
14343 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
14345 template<typename... Args>
14349 using namespace Zivid::Detail::TypeTraits;
14351 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14353 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
14356 AllArgsDecayedAreUnique<Args...>::value,
14357 "Found duplicate types among the arguments passed to set(...). "
14358 "Types should be listed at most once.");
14360 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
14376 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
14378 template<typename... Args>
14382 using namespace Zivid::Detail::TypeTraits;
14384 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14386 AllArgsAreDescendantNodes::value,
14387 "All arguments passed to copyWith(...) must be descendant nodes.");
14390 AllArgsDecayedAreUnique<Args...>::value,
14391 "Found duplicate types among the arguments passed to copyWith(...). "
14392 "Types should be listed at most once.");
14394 auto copy{ *
this };
14395 copy.
set(std::forward<Args>(args)...);
14439 typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
14447 typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
14453 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
14459 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
14466 template<
typename F>
14474 template<
typename F>
14493 return stream << value.
toString();
14497 void setFromString(
const std::string &value);
14499 void setFromString(
const std::string &fullPath,
const std::string &value);
14501 std::string getString(
const std::string &fullPath)
const;
14506 friend struct DataModel::Detail::Befriend<
Sampling>;
14678 typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0,
14679 typename std::enable_if<
14680 Zivid::Detail::TypeTraits::AllArgsAreInTuple<
Descendants,
typename std::decay<Args>::type...>::value,
14683 template<typename... Args>
14687 using namespace Zivid::Detail::TypeTraits;
14690 AllArgsDecayedAreUnique<Args...>::value,
14691 "Found duplicate types among the arguments passed to Settings(...). "
14692 "Types should be listed at most once.");
14694 set(std::forward<Args>(args)...);
14774 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 2,
int>::type = 0>
14776 template<typename... Args>
14780 using namespace Zivid::Detail::TypeTraits;
14782 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14784 AllArgsAreDescendantNodes::value,
"All arguments passed to set(...) must be descendant nodes.");
14787 AllArgsDecayedAreUnique<Args...>::value,
14788 "Found duplicate types among the arguments passed to set(...). "
14789 "Types should be listed at most once.");
14791 Zivid::DataModel::Detail::invokeSetWithEachArgument(*
this, std::forward<Args>(args)...);
14872 template<
typename... Args,
typename std::enable_if<
sizeof...(Args) >= 1,
int>::type = 0>
14874 template<typename... Args>
14878 using namespace Zivid::Detail::TypeTraits;
14880 using AllArgsAreDescendantNodes = AllArgsAreInTuple<Descendants, typename std::decay<Args>::type...>;
14882 AllArgsAreDescendantNodes::value,
"All arguments passed to copyWith(...) must be descendant nodes.");
14885 AllArgsDecayedAreUnique<Args...>::value,
14886 "Found duplicate types among the arguments passed to copyWith(...). "
14887 "Types should be listed at most once.");
14889 auto copy{ *
this };
14890 copy.
set(std::forward<Args>(args)...);
14897 return m_acquisitions;
14903 return m_acquisitions;
14909 m_acquisitions = value;
14916 return m_diagnostics;
14922 return m_diagnostics;
14928 m_diagnostics = value;
14935 m_diagnostics.
set(value);
14961 return m_processing;
14967 return m_processing;
14973 m_processing = value;
14980 m_processing.
set(value);
14987 m_processing.
set(value);
14994 m_processing.
set(value);
15001 m_processing.
set(value);
15008 m_processing.
set(value);
15015 m_processing.
set(value);
15022 m_processing.
set(value);
15029 m_processing.
set(value);
15036 m_processing.
set(value);
15043 m_processing.
set(value);
15050 m_processing.
set(value);
15057 m_processing.
set(value);
15064 m_processing.
set(value);
15071 m_processing.
set(value);
15078 m_processing.
set(value);
15085 m_processing.
set(value);
15092 m_processing.
set(value);
15099 m_processing.
set(value);
15106 m_processing.
set(value);
15113 m_processing.
set(value);
15120 m_processing.
set(value);
15127 m_processing.
set(value);
15134 m_processing.
set(value);
15141 m_processing.
set(value);
15148 m_processing.
set(value);
15155 m_processing.
set(value);
15162 m_processing.
set(value);
15169 m_processing.
set(value);
15176 m_processing.
set(value);
15183 m_processing.
set(value);
15190 m_processing.
set(value);
15197 m_processing.
set(value);
15204 m_processing.
set(value);
15211 m_processing.
set(value);
15218 m_processing.
set(value);
15225 m_processing.
set(value);
15232 m_processing.
set(value);
15239 m_processing.
set(value);
15246 m_processing.
set(value);
15253 m_processing.
set(value);
15260 m_processing.
set(value);
15267 m_processing.
set(value);
15274 m_processing.
set(value);
15281 m_processing.
set(value);
15288 m_processing.
set(value);
15295 m_processing.
set(value);
15302 m_processing.
set(value);
15309 m_processing.
set(value);
15316 m_processing.
set(value);
15323 return m_regionOfInterest;
15329 return m_regionOfInterest;
15335 m_regionOfInterest = value;
15342 m_regionOfInterest.
set(value);
15349 m_regionOfInterest.
set(value);
15356 m_regionOfInterest.
set(value);
15363 m_regionOfInterest.
set(value);
15370 m_regionOfInterest.
set(value);
15377 m_regionOfInterest.
set(value);
15384 m_regionOfInterest.
set(value);
15391 m_regionOfInterest.
set(value);
15398 m_regionOfInterest.
set(value);
15417 m_sampling = value;
15424 m_sampling.
set(value);
15431 m_sampling.
set(value);
15435 template<typename T, typename std::enable_if<std::is_same<T, Settings::Acquisitions>::value,
int>::type = 0>
15438 return m_acquisitions;
15441 template<typename T, typename std::enable_if<std::is_same<T, Settings::Diagnostics>::value,
int>::type = 0>
15444 return m_diagnostics;
15449 typename std::enable_if<std::is_same<T, Settings::Diagnostics::Enabled>::value,
int>::type = 0>
15455 template<typename T, typename std::enable_if<std::is_same<T, Settings::Engine>::value,
int>::type = 0>
15461 template<typename T, typename std::enable_if<std::is_same<T, Settings::Processing>::value,
int>::type = 0>
15464 return m_processing;
15469 typename std::enable_if<std::is_same<T, Settings::Processing::Color>::value,
int>::type = 0>
15477 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance>::value,
int>::type = 0>
15485 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Blue>::value,
int>::type = 0>
15493 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Green>::value,
int>::type = 0>
15501 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Balance::Red>::value,
int>::type = 0>
15509 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental>::value,
int>::type = 0>
15517 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Experimental::Mode>::value,
int>::
15526 typename std::enable_if<std::is_same<T, Settings::Processing::Color::Gamma>::value,
int>::type = 0>
15534 typename std::enable_if<std::is_same<T, Settings::Processing::Filters>::value,
int>::type = 0>
15542 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster>::value,
int>::type = 0>
15550 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Cluster::Removal>::value,
int>::
15559 typename std::enable_if<
15560 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::Enabled>::value,
15569 typename std::enable_if<
15570 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance>::value,
15579 typename std::enable_if<
15580 std::is_same<T, Settings::Processing::Filters::Cluster::Removal::MinArea>::value,
15589 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Experimental>::value,
int>::type = 0>
15597 typename std::enable_if<
15598 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
15607 typename std::enable_if<
15608 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
15617 typename std::enable_if<
15618 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled>::
15623 return m_processing
15629 typename std::enable_if<
15630 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength>::
15635 return m_processing
15641 typename std::enable_if<
15642 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
15651 typename std::enable_if<
15652 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled>::
15657 return m_processing
15663 typename std::enable_if<
15664 std::is_same<T, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold>::
15669 return m_processing
15675 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole>::value,
int>::type = 0>
15683 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair>::value,
int>::type = 0>
15691 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair::Enabled>::value,
int>::
15701 enable_if<std::is_same<T, Settings::Processing::Filters::Hole::Repair::HoleSize>::value,
int>::type = 0>
15709 typename std::enable_if<
15710 std::is_same<T, Settings::Processing::Filters::Hole::Repair::Strictness>::value,
15719 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise>::value,
int>::type = 0>
15727 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Removal>::value,
int>::type =
15736 typename std::enable_if<
15737 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Enabled>::value,
15746 typename std::enable_if<
15747 std::is_same<T, Settings::Processing::Filters::Noise::Removal::Threshold>::value,
15756 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair>::value,
int>::type =
15766 enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Repair::Enabled>::value,
int>::type = 0>
15774 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Noise::Suppression>::value,
int>::
15783 typename std::enable_if<
15784 std::is_same<T, Settings::Processing::Filters::Noise::Suppression::Enabled>::value,
15793 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier>::value,
int>::type = 0>
15801 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Outlier::Removal>::value,
int>::
15810 typename std::enable_if<
15811 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Enabled>::value,
15820 typename std::enable_if<
15821 std::is_same<T, Settings::Processing::Filters::Outlier::Removal::Threshold>::value,
15830 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection>::value,
int>::type = 0>
15838 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Reflection::Removal>::value,
int>::
15847 typename std::enable_if<
15848 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Enabled>::value,
15857 typename std::enable_if<
15858 std::is_same<T, Settings::Processing::Filters::Reflection::Removal::Mode>::value,
15867 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing>::value,
int>::type = 0>
15875 typename std::enable_if<std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian>::value,
int>::
15884 typename std::enable_if<
15885 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Enabled>::value,
15894 typename std::enable_if<
15895 std::is_same<T, Settings::Processing::Filters::Smoothing::Gaussian::Sigma>::value,
15904 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling>::value,
int>::type = 0>
15912 typename std::enable_if<std::is_same<T, Settings::Processing::Resampling::Mode>::value,
int>::type = 0>
15918 template<typename T, typename std::enable_if<std::is_same<T, Settings::RegionOfInterest>::value,
int>::type = 0>
15921 return m_regionOfInterest;
15926 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box>::value,
int>::type = 0>
15934 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Enabled>::value,
int>::type = 0>
15942 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::Extents>::value,
int>::type = 0>
15950 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointA>::value,
int>::type = 0>
15958 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointB>::value,
int>::type = 0>
15966 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Box::PointO>::value,
int>::type = 0>
15974 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth>::value,
int>::type = 0>
15982 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Enabled>::value,
int>::type = 0>
15990 typename std::enable_if<std::is_same<T, Settings::RegionOfInterest::Depth::Range>::value,
int>::type = 0>
15996 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling>::value,
int>::type = 0>
16002 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Color>::value,
int>::type = 0>
16008 template<typename T, typename std::enable_if<std::is_same<T, Settings::Sampling::Pixel>::value,
int>::type = 0>
16014 template<size_t i, typename std::enable_if<i == 0, int>::type = 0>
16017 return m_acquisitions;
16020 template<size_t i, typename std::enable_if<i == 1, int>::type = 0>
16023 return m_diagnostics;
16026 template<size_t i, typename std::enable_if<i == 2, int>::type = 0>
16032 template<size_t i, typename std::enable_if<i == 3, int>::type = 0>
16035 return m_processing;
16038 template<size_t i, typename std::enable_if<i == 4, int>::type = 0>
16041 return m_regionOfInterest;
16044 template<size_t i, typename std::enable_if<i == 5, int>::type = 0>
16051 template<
typename F>
16058 f(m_regionOfInterest);
16063 template<
typename F>
16070 f(m_regionOfInterest);
16086 return stream << value.
toString();
16090 void save(
const std::string &fileName)
const;
16093 void load(
const std::string &fileName);
16096 void setFromString(
const std::string &value);
16098 void setFromString(
const std::string &fullPath,
const std::string &value);
16100 std::string getString(
const std::string &fullPath)
const;
16109 friend struct DataModel::Detail::Befriend<
Settings>;
16123 struct Settings::Version<25>
16125 using Type = Settings;
16132# pragma warning(pop)
16136# if !(defined(_MSC_VER) && (_MSC_VER <= 1900))
16141 struct tuple_size<
Zivid::Settings::Diagnostics> : integral_constant<size_t, 1>
16145 struct tuple_element<i,
Zivid::Settings::Diagnostics>
16147 static_assert(i < tuple_size<Zivid::Settings::Diagnostics>::value,
"Index must be less than 1");
16150 =
decltype(declval<Zivid::Settings::Diagnostics>().get<i>());
16154 struct tuple_size<
Zivid::Settings::Processing> : integral_constant<size_t, 3>
16158 struct tuple_element<i,
Zivid::Settings::Processing>
16160 static_assert(i < tuple_size<Zivid::Settings::Processing>::value,
"Index must be less than 3");
16163 =
decltype(declval<Zivid::Settings::Processing>().get<i>());
16167 struct tuple_size<
Zivid::Settings::Processing::Color> : integral_constant<size_t, 3>
16171 struct tuple_element<i,
Zivid::Settings::Processing::Color>
16173 static_assert(i < tuple_size<Zivid::Settings::Processing::Color>::value,
"Index must be less than 3");
16176 =
decltype(declval<Zivid::Settings::Processing::Color>().get<i>());
16180 struct tuple_size<
Zivid::Settings::Processing::Color::Balance> : integral_constant<size_t, 3>
16184 struct tuple_element<i,
Zivid::Settings::Processing::Color::Balance>
16186 static_assert(i < tuple_size<Zivid::Settings::Processing::Color::Balance>::value,
"Index must be less than 3");
16189 =
decltype(declval<Zivid::Settings::Processing::Color::Balance>().get<i>());
16193 struct tuple_size<
Zivid::Settings::Processing::Color::Experimental> : integral_constant<size_t, 1>
16197 struct tuple_element<i,
Zivid::Settings::Processing::Color::Experimental>
16200 i < tuple_size<Zivid::Settings::Processing::Color::Experimental>::value,
16201 "Index must be less than 1");
16204 =
decltype(declval<Zivid::Settings::Processing::Color::Experimental>().get<i>());
16208 struct tuple_size<
Zivid::Settings::Processing::Filters> : integral_constant<size_t, 7>
16212 struct tuple_element<i,
Zivid::Settings::Processing::Filters>
16214 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters>::value,
"Index must be less than 7");
16217 =
decltype(declval<Zivid::Settings::Processing::Filters>().get<i>());
16221 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster> : integral_constant<size_t, 1>
16225 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster>
16228 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster>::value,
16229 "Index must be less than 1");
16232 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster>().get<i>());
16236 struct tuple_size<
Zivid::Settings::Processing::Filters::Cluster::Removal> : integral_constant<size_t, 3>
16240 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Cluster::Removal>
16243 i < tuple_size<Zivid::Settings::Processing::Filters::Cluster::Removal>::value,
16244 "Index must be less than 3");
16247 =
decltype(declval<Zivid::Settings::Processing::Filters::Cluster::Removal>().get<i>());
16251 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental> : integral_constant<size_t, 1>
16255 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental>
16258 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental>::value,
16259 "Index must be less than 1");
16262 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental>().get<i>());
16266 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16267 : integral_constant<size_t, 2>
16271 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>
16274 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>::value,
16275 "Index must be less than 2");
16278 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion>().get<i>());
16282 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16283 : integral_constant<size_t, 2>
16287 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>
16290 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>::value,
16291 "Index must be less than 2");
16294 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Correction>()
16299 struct tuple_size<
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16300 : integral_constant<size_t, 2>
16304 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>
16307 i < tuple_size<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>::value,
16308 "Index must be less than 2");
16311 =
decltype(declval<Zivid::Settings::Processing::Filters::Experimental::ContrastDistortion::Removal>()
16316 struct tuple_size<
Zivid::Settings::Processing::Filters::Hole> : integral_constant<size_t, 1>
16320 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Hole>
16322 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Hole>::value,
"Index must be less than 1");
16325 =
decltype(declval<Zivid::Settings::Processing::Filters::Hole>().get<i>());
16329 struct tuple_size<
Zivid::Settings::Processing::Filters::Hole::Repair> : integral_constant<size_t, 3>
16333 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Hole::Repair>
16336 i < tuple_size<Zivid::Settings::Processing::Filters::Hole::Repair>::value,
16337 "Index must be less than 3");
16340 =
decltype(declval<Zivid::Settings::Processing::Filters::Hole::Repair>().get<i>());
16344 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise> : integral_constant<size_t, 3>
16348 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise>
16350 static_assert(i < tuple_size<Zivid::Settings::Processing::Filters::Noise>::value,
"Index must be less than 3");
16353 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise>().get<i>());
16357 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Removal> : integral_constant<size_t, 2>
16361 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Removal>
16364 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Removal>::value,
16365 "Index must be less than 2");
16368 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Removal>().get<i>());
16372 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Repair> : integral_constant<size_t, 1>
16376 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Repair>
16379 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Repair>::value,
16380 "Index must be less than 1");
16383 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Repair>().get<i>());
16387 struct tuple_size<
Zivid::Settings::Processing::Filters::Noise::Suppression> : integral_constant<size_t, 1>
16391 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Noise::Suppression>
16394 i < tuple_size<Zivid::Settings::Processing::Filters::Noise::Suppression>::value,
16395 "Index must be less than 1");
16398 =
decltype(declval<Zivid::Settings::Processing::Filters::Noise::Suppression>().get<i>());
16402 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier> : integral_constant<size_t, 1>
16406 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier>
16409 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier>::value,
16410 "Index must be less than 1");
16413 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier>().get<i>());
16417 struct tuple_size<
Zivid::Settings::Processing::Filters::Outlier::Removal> : integral_constant<size_t, 2>
16421 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Outlier::Removal>
16424 i < tuple_size<Zivid::Settings::Processing::Filters::Outlier::Removal>::value,
16425 "Index must be less than 2");
16428 =
decltype(declval<Zivid::Settings::Processing::Filters::Outlier::Removal>().get<i>());
16432 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection> : integral_constant<size_t, 1>
16436 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection>
16439 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection>::value,
16440 "Index must be less than 1");
16443 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection>().get<i>());
16447 struct tuple_size<
Zivid::Settings::Processing::Filters::Reflection::Removal> : integral_constant<size_t, 2>
16451 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Reflection::Removal>
16454 i < tuple_size<Zivid::Settings::Processing::Filters::Reflection::Removal>::value,
16455 "Index must be less than 2");
16458 =
decltype(declval<Zivid::Settings::Processing::Filters::Reflection::Removal>().get<i>());
16462 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing> : integral_constant<size_t, 1>
16466 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing>
16469 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing>::value,
16470 "Index must be less than 1");
16473 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing>().get<i>());
16477 struct tuple_size<
Zivid::Settings::Processing::Filters::Smoothing::Gaussian> : integral_constant<size_t, 2>
16481 struct tuple_element<i,
Zivid::Settings::Processing::Filters::Smoothing::Gaussian>
16484 i < tuple_size<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>::value,
16485 "Index must be less than 2");
16488 =
decltype(declval<Zivid::Settings::Processing::Filters::Smoothing::Gaussian>().get<i>());
16492 struct tuple_size<
Zivid::Settings::Processing::Resampling> : integral_constant<size_t, 1>
16496 struct tuple_element<i,
Zivid::Settings::Processing::Resampling>
16498 static_assert(i < tuple_size<Zivid::Settings::Processing::Resampling>::value,
"Index must be less than 1");
16501 =
decltype(declval<Zivid::Settings::Processing::Resampling>().get<i>());
16505 struct tuple_size<
Zivid::Settings::RegionOfInterest> : integral_constant<size_t, 2>
16509 struct tuple_element<i,
Zivid::Settings::RegionOfInterest>
16511 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest>::value,
"Index must be less than 2");
16514 =
decltype(declval<Zivid::Settings::RegionOfInterest>().get<i>());
16518 struct tuple_size<
Zivid::Settings::RegionOfInterest::Box> : integral_constant<size_t, 5>
16522 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Box>
16524 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Box>::value,
"Index must be less than 5");
16527 =
decltype(declval<Zivid::Settings::RegionOfInterest::Box>().get<i>());
16531 struct tuple_size<
Zivid::Settings::RegionOfInterest::Depth> : integral_constant<size_t, 2>
16535 struct tuple_element<i,
Zivid::Settings::RegionOfInterest::Depth>
16537 static_assert(i < tuple_size<Zivid::Settings::RegionOfInterest::Depth>::value,
"Index must be less than 2");
16540 =
decltype(declval<Zivid::Settings::RegionOfInterest::Depth>().get<i>());
16544 struct tuple_size<
Zivid::Settings::Sampling> : integral_constant<size_t, 2>
16548 struct tuple_element<i,
Zivid::Settings::Sampling>
16550 static_assert(i < tuple_size<Zivid::Settings::Sampling>::value,
"Index must be less than 2");
16553 =
decltype(declval<Zivid::Settings::Sampling>().get<i>());
16557 struct tuple_size<
Zivid::Settings> : integral_constant<size_t, 6>
16561 struct tuple_element<i,
Zivid::Settings>
16563 static_assert(i < tuple_size<Zivid::Settings>::value,
"Index must be less than 6");
16566 =
decltype(declval<Zivid::Settings>().get<i>());
16575#if defined(__has_include) && !defined(NO_DOC)
16576# if __has_include("Zivid/SettingsInternal.h") && __has_include("Zivid/DataModelNodeMetaData.h")
16577# include "Zivid/SettingsInternal.h"
#define ZIVID_NODISCARD
Definition Attributes.h:49
#define ZIVID_CORE_EXPORT
Definition CoreExport.h:56
Class describing a range of values for a given type T.
Definition Range.h:73
Aperture setting for the camera. Specified as an f-number (the ratio of lens focal length to the effe...
Definition Settings.h:134
bool operator<(const Aperture &other) const
Comparison operator.
Definition Settings.h:197
friend std::ostream & operator<<(std::ostream &stream, const Aperture &value)
Operator to serialize the value to a stream.
Definition Settings.h:221
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:209
bool operator>(const Aperture &other) const
Comparison operator.
Definition Settings.h:203
bool operator==(const Aperture &other) const
Comparison operator.
Definition Settings.h:185
bool operator>=(const Aperture &other) const
Comparison operator.
Definition Settings.h:215
bool operator!=(const Aperture &other) const
Comparison operator.
Definition Settings.h:191
Aperture()=default
Default constructor.
constexpr Aperture(double value)
Constructor.
Definition Settings.h:165
double ValueType
The type of the underlying value.
Definition Settings.h:153
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Aperture.
Definition Settings.h:156
bool hasValue() const
Check if the value is set.
Brightness controls the light output from the projector.
Definition Settings.h:257
bool operator<=(const Brightness &other) const
Comparison operator.
Definition Settings.h:340
bool operator!=(const Brightness &other) const
Comparison operator.
Definition Settings.h:322
bool operator>=(const Brightness &other) const
Comparison operator.
Definition Settings.h:346
bool operator<(const Brightness &other) const
Comparison operator.
Definition Settings.h:328
bool operator>(const Brightness &other) const
Comparison operator.
Definition Settings.h:334
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Brightness.
Definition Settings.h:287
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:352
constexpr Brightness(double value)
Constructor.
Definition Settings.h:296
bool hasValue() const
Check if the value is set.
Brightness()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:284
bool operator==(const Brightness &other) const
Comparison operator.
Definition Settings.h:316
Exposure time for each single image in the measurement. Affects frame rate.
Definition Settings.h:378
bool operator>=(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:457
bool operator<(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:439
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:445
std::chrono::microseconds ValueType
The type of the underlying value.
Definition Settings.h:395
bool operator==(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:427
bool operator!=(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:433
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:398
constexpr ExposureTime(std::chrono::microseconds value)
Constructor.
Definition Settings.h:407
friend std::ostream & operator<<(std::ostream &stream, const ExposureTime &value)
Operator to serialize the value to a stream.
Definition Settings.h:463
bool operator<=(const ExposureTime &other) const
Comparison operator.
Definition Settings.h:451
Analog gain in the camera.
Definition Settings.h:490
bool operator==(const Gain &other) const
Comparison operator.
Definition Settings.h:537
friend std::ostream & operator<<(std::ostream &stream, const Gain &value)
Operator to serialize the value to a stream.
Definition Settings.h:573
constexpr Gain(double value)
Constructor.
Definition Settings.h:517
bool operator>=(const Gain &other) const
Comparison operator.
Definition Settings.h:567
void reset()
Reset the node to unset state.
bool operator<=(const Gain &other) const
Comparison operator.
Definition Settings.h:561
static constexpr Range< double > validRange()
The range of valid values for Gain.
Definition Settings.h:508
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:505
std::string toString() const
Get the value as string.
bool operator!=(const Gain &other) const
Comparison operator.
Definition Settings.h:543
bool operator>(const Gain &other) const
Comparison operator.
Definition Settings.h:555
bool operator<(const Gain &other) const
Comparison operator.
Definition Settings.h:549
Settings for a single acquisition.
Definition Settings.h:114
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:847
Acquisition & set(const Aperture &value)
Set Aperture.
Definition Settings.h:726
const Aperture & aperture() const
Get Aperture.
Definition Settings.h:714
std::tuple< Settings::Acquisition::Aperture, Settings::Acquisition::Brightness, Settings::Acquisition::ExposureTime, Settings::Acquisition::Gain > Descendants
Definition Settings.h:595
Gain & gain()
Get Gain.
Definition Settings.h:777
const Settings::Acquisition::Aperture & get() const
Definition Settings.h:792
Brightness & brightness()
Get Brightness.
Definition Settings.h:739
friend std::ostream & operator<<(std::ostream &stream, const Acquisition &value)
Operator to send the value as string to a stream.
Definition Settings.h:875
bool operator==(const Acquisition &other) const
Equality operator.
const Settings::Acquisition::ExposureTime & get() const
Definition Settings.h:808
bool operator!=(const Acquisition &other) const
Inequality operator.
const ExposureTime & exposureTime() const
Get ExposureTime.
Definition Settings.h:752
Acquisition & set(const Brightness &value)
Set Brightness.
Definition Settings.h:745
Acquisition & set(const ExposureTime &value)
Set ExposureTime.
Definition Settings.h:764
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:659
const Brightness & brightness() const
Get Brightness.
Definition Settings.h:733
const Settings::Acquisition::Gain & get() const
Definition Settings.h:816
Acquisition & set(const Gain &value)
Set Gain.
Definition Settings.h:783
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:694
Aperture & aperture()
Get Aperture.
Definition Settings.h:720
const Settings::Acquisition::Brightness & get() const
Definition Settings.h:800
ExposureTime & exposureTime()
Get ExposureTime.
Definition Settings.h:758
const Gain & gain() const
Get Gain.
Definition Settings.h:771
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:857
List of Acquisition objects.
Definition Settings.h:899
bool operator!=(const Acquisitions &other) const
Comparison operator.
Definition Settings.h:1037
std::vector< Settings::Acquisition >::const_iterator ConstIterator
Constant iterator type for Acquisitions.
Definition Settings.h:1016
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:998
std::vector< Settings::Acquisition >::iterator Iterator
Iterator type for Acquisitions.
Definition Settings.h:1007
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:931
friend std::ostream & operator<<(std::ostream &stream, const Acquisitions &value)
Operator to serialize the value to a stream.
Definition Settings.h:1043
void forEach(const F &f)
Run the given function on each element in the list.
Definition Settings.h:988
Acquisitions(std::vector< Settings::Acquisition > value)
Constructor.
Definition Settings.h:926
std::vector< Settings::Acquisition > ValueType
The type of the underlying value.
Definition Settings.h:914
static constexpr Range< ValueType::size_type > validSize()
The valid sizes for Acquisitions.
Definition Settings.h:917
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 or disable diagnostics.
Definition Settings.h:1092
static const Enabled no
Off/disabled.
Definition Settings.h:1109
bool hasValue() const
Check if the value is set.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:1112
void reset()
Reset the node to unset state.
Enabled()=default
Default constructor.
bool ValueType
The type of the underlying value.
Definition Settings.h:1107
static const Enabled yes
On/enabled.
Definition Settings.h:1108
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:1141
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:1153
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:1121
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:1147
std::string toString() const
Get the value as string.
When Diagnostics is enabled, additional diagnostic data is recorded during capture and included when ...
Definition Settings.h:1066
friend std::ostream & operator<<(std::ostream &stream, const Diagnostics &value)
Operator to send the value as string to a stream.
Definition Settings.h:1328
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:1306
std::tuple< Settings::Diagnostics::Enabled > Descendants
Definition Settings.h:1166
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:1252
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:1313
Diagnostics()
Default constructor.
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:1278
bool operator==(const Diagnostics &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:1220
const Settings::Diagnostics::Enabled & get() const
Definition Settings.h:1293
bool operator!=(const Diagnostics &other) const
Inequality operator.
Diagnostics & set(const Enabled &value)
Set Enabled.
Definition Settings.h:1284
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:1272
Set the Zivid Vision Engine to use.
Definition Settings.h:1365
std::string toString() const
Get the value as string.
bool operator==(const Engine &other) const
Comparison operator.
Definition Settings.h:1442
bool operator!=(const Engine &other) const
Comparison operator.
Definition Settings.h:1448
static const Engine omni
omni
Definition Settings.h:1404
friend std::ostream & operator<<(std::ostream &stream, const Engine &value)
Operator to serialize the value to a stream.
Definition Settings.h:1454
static std::set< ValueType > validValues()
All valid values of Engine.
Definition Settings.h:1407
void reset()
Reset the node to unset state.
ValueType value() const
Get the value.
static const Engine stripe
stripe
Definition Settings.h:1403
static const Engine phase
phase
Definition Settings.h:1402
Engine()=default
Default constructor.
ValueType
The type of the underlying value.
Definition Settings.h:1397
constexpr Engine(ValueType value)
Constructor.
Definition Settings.h:1416
bool hasValue() const
Check if the value is set.
friend std::ostream & operator<<(std::ostream &stream, const Engine::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:1436
Digital gain applied to blue channel.
Definition Settings.h:1537
friend std::ostream & operator<<(std::ostream &stream, const Blue &value)
Operator to serialize the value to a stream.
Definition Settings.h:1622
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:1586
bool operator>=(const Blue &other) const
Comparison operator.
Definition Settings.h:1616
std::string toString() const
Get the value as string.
bool operator<(const Blue &other) const
Comparison operator.
Definition Settings.h:1598
constexpr Blue(double value)
Constructor.
Definition Settings.h:1566
Blue()=default
Default constructor.
bool operator<=(const Blue &other) const
Comparison operator.
Definition Settings.h:1610
bool operator!=(const Blue &other) const
Comparison operator.
Definition Settings.h:1592
bool hasValue() const
Check if the value is set.
double ValueType
The type of the underlying value.
Definition Settings.h:1554
bool operator>(const Blue &other) const
Comparison operator.
Definition Settings.h:1604
static constexpr Range< double > validRange()
The range of valid values for Blue.
Definition Settings.h:1557
Digital gain applied to green channel.
Definition Settings.h:1649
void reset()
Reset the node to unset state.
bool operator>(const Green &other) const
Comparison operator.
Definition Settings.h:1716
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:1734
double ValueType
The type of the underlying value.
Definition Settings.h:1666
bool operator>=(const Green &other) const
Comparison operator.
Definition Settings.h:1728
constexpr Green(double value)
Constructor.
Definition Settings.h:1678
bool operator==(const Green &other) const
Comparison operator.
Definition Settings.h:1698
bool operator!=(const Green &other) const
Comparison operator.
Definition Settings.h:1704
Green()=default
Default constructor.
std::string toString() const
Get the value as string.
bool operator<(const Green &other) const
Comparison operator.
Definition Settings.h:1710
static constexpr Range< double > validRange()
The range of valid values for Green.
Definition Settings.h:1669
bool operator<=(const Green &other) const
Comparison operator.
Definition Settings.h:1722
Digital gain applied to red channel.
Definition Settings.h:1761
bool operator!=(const Red &other) const
Comparison operator.
Definition Settings.h:1816
constexpr Red(double value)
Constructor.
Definition Settings.h:1790
friend std::ostream & operator<<(std::ostream &stream, const Red &value)
Operator to serialize the value to a stream.
Definition Settings.h:1846
bool operator>=(const Red &other) const
Comparison operator.
Definition Settings.h:1840
double ValueType
The type of the underlying value.
Definition Settings.h:1778
static constexpr Range< double > validRange()
The range of valid values for Red.
Definition Settings.h:1781
double value() const
Get the value.
bool operator==(const Red &other) const
Comparison operator.
Definition Settings.h:1810
Red()=default
Default constructor.
bool operator<(const Red &other) const
Comparison operator.
Definition Settings.h:1822
void reset()
Reset the node to unset state.
bool operator>(const Red &other) const
Comparison operator.
Definition Settings.h:1828
bool hasValue() const
Check if the value is set.
bool operator<=(const Red &other) const
Comparison operator.
Definition Settings.h:1834
std::string toString() const
Get the value as string.
Color balance settings.
Definition Settings.h:1519
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:1930
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:2092
bool operator!=(const Balance &other) const
Inequality operator.
Balance & set(const Red &value)
Set Red.
Definition Settings.h:2037
Green & green()
Get Green.
Definition Settings.h:2012
std::string toString() const
Get the value as string.
Red & red()
Get Red.
Definition Settings.h:2031
std::tuple< Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red > Descendants
Definition Settings.h:1869
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:1966
Balance & set(const Blue &value)
Set Blue.
Definition Settings.h:1999
Blue & blue()
Get Blue.
Definition Settings.h:1993
const Red & red() const
Get Red.
Definition Settings.h:2025
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:2101
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:2058
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:2067
Balance & set(const Green &value)
Set Green.
Definition Settings.h:2018
const Green & green() const
Get Green.
Definition Settings.h:2006
friend std::ostream & operator<<(std::ostream &stream, const Balance &value)
Operator to send the value as string to a stream.
Definition Settings.h:2118
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:2048
const Blue & blue() const
Get Blue.
Definition Settings.h:1987
Balance()
Default constructor.
This setting controls how the color image is computed.
Definition Settings.h:2182
static const Mode toneMapping
toneMapping
Definition Settings.h:2228
ValueType value() const
Get the value.
std::string toString() const
Get the value as string.
static const Mode automatic
automatic
Definition Settings.h:2226
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream.
Definition Settings.h:2278
void reset()
Reset the node to unset state.
static const Mode useFirstAcquisition
useFirstAcquisition
Definition Settings.h:2227
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:2272
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:2266
ValueType
The type of the underlying value.
Definition Settings.h:2221
bool hasValue() const
Check if the value is set.
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:2240
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:2231
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:2260
Experimental color settings. These may be renamed, moved or deleted in the future.
Definition Settings.h:2141
std::tuple< Settings::Processing::Color::Experimental::Mode > Descendants
Definition Settings.h:2303
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:2470
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:2455
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:2357
std::string toString() const
Get the value as string.
Experimental & set(const Mode &value)
Set Mode.
Definition Settings.h:2424
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:2448
bool operator==(const Experimental &other) const
Equality operator.
Experimental()
Default constructor.
Mode & mode()
Get Mode.
Definition Settings.h:2418
const Mode & mode() const
Get Mode.
Definition Settings.h:2412
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:2435
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:2391
Gamma applied to the color values. Gamma less than 1 makes the colors brighter, while gamma greater t...
Definition Settings.h:2493
friend std::ostream & operator<<(std::ostream &stream, const Gamma &value)
Operator to serialize the value to a stream.
Definition Settings.h:2580
double value() const
Get the value.
bool operator>(const Gamma &other) const
Comparison operator.
Definition Settings.h:2562
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Gamma.
Definition Settings.h:2515
Gamma()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:2512
bool hasValue() const
Check if the value is set.
bool operator>=(const Gamma &other) const
Comparison operator.
Definition Settings.h:2574
constexpr Gamma(double value)
Constructor.
Definition Settings.h:2524
bool operator!=(const Gamma &other) const
Comparison operator.
Definition Settings.h:2550
bool operator<(const Gamma &other) const
Comparison operator.
Definition Settings.h:2556
std::string toString() const
Get the value as string.
bool operator==(const Gamma &other) const
Comparison operator.
Definition Settings.h:2544
bool operator<=(const Gamma &other) const
Comparison operator.
Definition Settings.h:2568
Color settings.
Definition Settings.h:1501
Color & set(const Gamma &value)
Set Gamma.
Definition Settings.h:2813
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:2877
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:2850
bool operator==(const Color &other) const
Equality operator.
Color & set(const Experimental::Mode &value)
Set Experimental::Mode.
Definition Settings.h:2794
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:2841
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:2675
Color & set(const Experimental &value)
Set Experimental.
Definition Settings.h:2787
Color & set(const Balance &value)
Set Balance.
Definition Settings.h:2747
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to send the value as string to a stream.
Definition Settings.h:2928
const Balance & balance() const
Get Balance.
Definition Settings.h:2735
const Experimental & experimental() const
Get Experimental.
Definition Settings.h:2775
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:2911
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:2859
Color & set(const Balance::Green &value)
Set Balance::Green.
Definition Settings.h:2761
Experimental & experimental()
Get Experimental.
Definition Settings.h:2781
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:2602
Color & set(const Balance::Blue &value)
Set Balance::Blue.
Definition Settings.h:2754
Gamma & gamma()
Get Gamma.
Definition Settings.h:2807
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:2714
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:2869
Color & set(const Balance::Red &value)
Set Balance::Red.
Definition Settings.h:2768
const Gamma & gamma() const
Get Gamma.
Definition Settings.h:2801
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:2823
Balance & balance()
Get Balance.
Definition Settings.h:2741
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:2902
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:2832
Enable or disable cluster removal.
Definition Settings.h:3009
bool hasValue() const
Check if the value is set.
bool ValueType
The type of the underlying value.
Definition Settings.h:3026
static const Enabled no
Off/disabled.
Definition Settings.h:3028
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:3040
void reset()
Reset the node to unset state.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:3031
Enabled()=default
Default constructor.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:3066
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:3072
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:3060
std::string toString() const
Get the value as string.
bool value() const
Get the value.
static const Enabled yes
On/enabled.
Definition Settings.h:3027
Maximum normalized distance between neighboring points that are still classified as belonging to the ...
Definition Settings.h:3092
constexpr MaxNeighborDistance(double value)
Constructor.
Definition Settings.h:3126
bool operator!=(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3152
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:3114
bool hasValue() const
Check if the value is set.
MaxNeighborDistance()=default
Default constructor.
bool operator>=(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3176
bool operator<(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3158
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for MaxNeighborDistance.
Definition Settings.h:3117
bool operator<=(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3170
friend std::ostream & operator<<(std::ostream &stream, const MaxNeighborDistance &value)
Operator to serialize the value to a stream.
Definition Settings.h:3182
bool operator==(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3146
bool operator>(const MaxNeighborDistance &other) const
Comparison operator.
Definition Settings.h:3164
Clusters with area below this threshold are removed by the filter. The area is given in mm^2.
Definition Settings.h:3211
bool operator>=(const MinArea &other) const
Comparison operator.
Definition Settings.h:3292
double ValueType
The type of the underlying value.
Definition Settings.h:3230
friend std::ostream & operator<<(std::ostream &stream, const MinArea &value)
Operator to serialize the value to a stream.
Definition Settings.h:3298
bool operator<(const MinArea &other) const
Comparison operator.
Definition Settings.h:3274
bool operator!=(const MinArea &other) const
Comparison operator.
Definition Settings.h:3268
void reset()
Reset the node to unset state.
bool operator<=(const MinArea &other) const
Comparison operator.
Definition Settings.h:3286
constexpr MinArea(double value)
Constructor.
Definition Settings.h:3242
std::string toString() const
Get the value as string.
bool operator>(const MinArea &other) const
Comparison operator.
Definition Settings.h:3280
MinArea()=default
Default constructor.
static constexpr Range< double > validRange()
The range of valid values for MinArea.
Definition Settings.h:3233
double value() const
Get the value.
bool operator==(const MinArea &other) const
Comparison operator.
Definition Settings.h:3262
bool hasValue() const
Check if the value is set.
Cluster removal filter.
Definition Settings.h:2991
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:3572
const MaxNeighborDistance & maxNeighborDistance() const
Get MaxNeighborDistance.
Definition Settings.h:3458
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:3439
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:3511
std::string toString() const
Get the value as string.
MinArea & minArea()
Get MinArea.
Definition Settings.h:3483
const MinArea & minArea() const
Get MinArea.
Definition Settings.h:3477
Removal()
Default constructor.
bool operator!=(const Removal &other) const
Inequality operator.
std::tuple< Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea > Descendants
Definition Settings.h:3321
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:3418
Removal & set(const MaxNeighborDistance &value)
Set MaxNeighborDistance.
Definition Settings.h:3470
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:3521
Removal & set(const MinArea &value)
Set MinArea.
Definition Settings.h:3489
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:3546
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:3500
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:3445
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:3382
bool operator==(const Removal &other) const
Equality operator.
MaxNeighborDistance & maxNeighborDistance()
Get MaxNeighborDistance.
Definition Settings.h:3464
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:3555
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:3451
Removes floating points and isolated clusters from the point cloud.
Definition Settings.h:2970
const Removal & removal() const
Get Removal.
Definition Settings.h:3713
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:3788
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:3757
Cluster & set(const Removal::MaxNeighborDistance &value)
Set Removal::MaxNeighborDistance.
Definition Settings.h:3739
bool operator!=(const Cluster &other) const
Inequality operator.
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:3778
bool operator==(const Cluster &other) const
Equality operator.
std::tuple< Settings::Processing::Filters::Cluster::Removal, Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea > Descendants
Definition Settings.h:3591
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:3692
Removal & removal()
Get Removal.
Definition Settings.h:3719
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:3808
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:3801
Cluster & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:3732
Cluster & set(const Removal &value)
Set Removal.
Definition Settings.h:3725
Cluster & set(const Removal::MinArea &value)
Set Removal::MinArea.
Definition Settings.h:3746
Cluster()
Default constructor.
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:3767
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:3655
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:3823
Enable or disable contrast distortion correction.
Definition Settings.h:3914
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:3934
bool ValueType
The type of the underlying value.
Definition Settings.h:3933
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:3938
static const Enabled no
Off/disabled.
Definition Settings.h:3935
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:3947
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:3979
bool hasValue() const
Check if the value is set.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:3967
bool value() const
Get the value.
Enabled()=default
Default constructor.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:3973
Strength of correction. Higher values give more correction.
Definition Settings.h:3996
double ValueType
The type of the underlying value.
Definition Settings.h:4015
bool operator>(const Strength &other) const
Comparison operator.
Definition Settings.h:4065
bool operator!=(const Strength &other) const
Comparison operator.
Definition Settings.h:4053
bool hasValue() const
Check if the value is set.
constexpr Strength(double value)
Constructor.
Definition Settings.h:4027
static constexpr Range< double > validRange()
The range of valid values for Strength.
Definition Settings.h:4018
double value() const
Get the value.
bool operator<=(const Strength &other) const
Comparison operator.
Definition Settings.h:4071
bool operator>=(const Strength &other) const
Comparison operator.
Definition Settings.h:4077
friend std::ostream & operator<<(std::ostream &stream, const Strength &value)
Operator to serialize the value to a stream.
Definition Settings.h:4083
Strength()=default
Default constructor.
bool operator<(const Strength &other) const
Comparison operator.
Definition Settings.h:4059
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:4047
Contrast distortion correction filter.
Definition Settings.h:3892
bool operator==(const Correction &other) const
Equality operator.
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:4226
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:4303
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:4220
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:4281
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:4199
Strength & strength()
Get Strength.
Definition Settings.h:4245
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:4266
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:4327
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:4164
Correction & set(const Enabled &value)
Set Enabled.
Definition Settings.h:4232
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:4311
std::string toString() const
Get the value as string.
Correction & set(const Strength &value)
Set Strength.
Definition Settings.h:4251
const Strength & strength() const
Get Strength.
Definition Settings.h:4239
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength > Descendants
Definition Settings.h:4106
Enable or disable contrast distortion removal.
Definition Settings.h:4371
std::string toString() const
Get the value as string.
static const Enabled yes
On/enabled.
Definition Settings.h:4391
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:4404
Enabled()=default
Default constructor.
void reset()
Reset the node to unset state.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:4430
bool ValueType
The type of the underlying value.
Definition Settings.h:4390
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:4395
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:4436
bool hasValue() const
Check if the value is set.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:4424
bool value() const
Get the value.
static const Enabled no
Off/disabled.
Definition Settings.h:4392
Threshold for removal. Higher values remove more points.
Definition Settings.h:4453
void reset()
Reset the node to unset state.
bool operator<=(const Threshold &other) const
Comparison operator.
Definition Settings.h:4528
constexpr Threshold(double value)
Constructor.
Definition Settings.h:4484
bool operator!=(const Threshold &other) const
Comparison operator.
Definition Settings.h:4510
bool operator<(const Threshold &other) const
Comparison operator.
Definition Settings.h:4516
static constexpr Range< double > validRange()
The range of valid values for Threshold.
Definition Settings.h:4475
Threshold()=default
Default constructor.
bool operator==(const Threshold &other) const
Comparison operator.
Definition Settings.h:4504
bool operator>=(const Threshold &other) const
Comparison operator.
Definition Settings.h:4534
std::string toString() const
Get the value as string.
bool operator>(const Threshold &other) const
Comparison operator.
Definition Settings.h:4522
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:4540
double value() const
Get the value.
double ValueType
The type of the underlying value.
Definition Settings.h:4472
Contrast distortion removal filter.
Definition Settings.h:4349
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:4758
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold > Descendants
Definition Settings.h:4563
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:4621
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:4782
const Threshold & threshold() const
Get Threshold.
Definition Settings.h:4696
Removal & set(const Threshold &value)
Set Threshold.
Definition Settings.h:4708
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:4656
Threshold & threshold()
Get Threshold.
Definition Settings.h:4702
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:4689
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:4723
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:4683
Removal()
Default constructor.
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:4677
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:4737
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:4766
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:3868
ContrastDistortion & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:4982
ContrastDistortion & set(const Correction::Enabled &value)
Set Correction::Enabled.
Definition Settings.h:4949
ContrastDistortion & set(const Correction &value)
Set Correction.
Definition Settings.h:4942
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:5093
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:5117
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:4909
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:4800
ContrastDistortion & set(const Correction::Strength &value)
Set Correction::Strength.
Definition Settings.h:4956
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:4870
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:5101
ContrastDistortion & set(const Removal &value)
Set Removal.
Definition Settings.h:4975
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:5072
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:5044
const Removal & removal() const
Get Removal.
Definition Settings.h:4963
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:5016
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:5002
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:5031
std::string toString() const
Get the value as string.
Removal & removal()
Get Removal.
Definition Settings.h:4969
bool operator==(const ContrastDistortion &other) const
Equality operator.
ContrastDistortion & set(const Removal::Threshold &value)
Set Removal::Threshold.
Definition Settings.h:4989
const Correction & correction() const
Get Correction.
Definition Settings.h:4930
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:5057
Correction & correction()
Get Correction.
Definition Settings.h:4936
Experimental filters. These may be renamed, moved or deleted in the future.
Definition Settings.h:3844
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:5438
ContrastDistortion & contrastDistortion()
Get ContrastDistortion.
Definition Settings.h:5275
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:5388
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:5248
Experimental & set(const ContrastDistortion &value)
Set ContrastDistortion.
Definition Settings.h:5281
Experimental & set(const ContrastDistortion::Removal::Threshold &value)
Set ContrastDistortion::Removal::Threshold.
Definition Settings.h:5323
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:5208
Experimental & set(const ContrastDistortion::Correction::Strength &value)
Set ContrastDistortion::Correction::Strength.
Definition Settings.h:5302
friend std::ostream & operator<<(std::ostream &stream, const Experimental &value)
Operator to send the value as string to a stream.
Definition Settings.h:5453
Experimental()
Default constructor.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:5375
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:5431
std::tuple< Settings::Processing::Filters::Experimental::ContrastDistortion, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold > Descendants
Definition Settings.h:5135
Experimental & set(const ContrastDistortion::Removal &value)
Set ContrastDistortion::Removal.
Definition Settings.h:5309
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:5334
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:5346
bool operator!=(const Experimental &other) const
Inequality operator.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:5416
Experimental & set(const ContrastDistortion::Correction::Enabled &value)
Set ContrastDistortion::Correction::Enabled.
Definition Settings.h:5295
const ContrastDistortion & contrastDistortion() const
Get ContrastDistortion.
Definition Settings.h:5269
std::string toString() const
Get the value as string.
bool operator==(const Experimental &other) const
Equality operator.
Experimental & set(const ContrastDistortion::Correction &value)
Set ContrastDistortion::Correction.
Definition Settings.h:5288
Experimental & set(const ContrastDistortion::Removal::Enabled &value)
Set ContrastDistortion::Removal::Enabled.
Definition Settings.h:5316
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:5360
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:5402
Enable or disable hole repair.
Definition Settings.h:5516
static const Enabled yes
On/enabled.
Definition Settings.h:5534
static const Enabled no
Off/disabled.
Definition Settings.h:5535
bool value() const
Get the value.
bool ValueType
The type of the underlying value.
Definition Settings.h:5533
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:5573
std::string toString() const
Get the value as string.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:5567
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:5538
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:5579
Enabled()=default
Default constructor.
bool hasValue() const
Check if the value is set.
void reset()
Reset the node to unset state.
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:5547
Relative diameter of holes to fill. Increasing this will fill more points, but require more computati...
Definition Settings.h:5599
HoleSize()=default
Default constructor.
bool operator<(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5663
bool operator>=(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5681
double value() const
Get the value.
static constexpr Range< double > validRange()
The range of valid values for HoleSize.
Definition Settings.h:5622
friend std::ostream & operator<<(std::ostream &stream, const HoleSize &value)
Operator to serialize the value to a stream.
Definition Settings.h:5687
bool operator!=(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5657
bool operator<=(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5675
bool operator==(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5651
bool hasValue() const
Check if the value is set.
std::string toString() const
Get the value as string.
constexpr HoleSize(double value)
Constructor.
Definition Settings.h:5631
double ValueType
The type of the underlying value.
Definition Settings.h:5619
void reset()
Reset the node to unset state.
bool operator>(const HoleSize &other) const
Comparison operator.
Definition Settings.h:5669
Level of strictness when considering if a point should be filled. A higher level of strictness requir...
Definition Settings.h:5718
static constexpr Range< int32_t > validRange()
The range of valid values for Strictness.
Definition Settings.h:5742
bool operator>=(const Strictness &other) const
Comparison operator.
Definition Settings.h:5801
int32_t value() const
Get the value.
void reset()
Reset the node to unset state.
bool operator==(const Strictness &other) const
Comparison operator.
Definition Settings.h:5771
std::string toString() const
Get the value as string.
bool operator<=(const Strictness &other) const
Comparison operator.
Definition Settings.h:5795
Strictness()=default
Default constructor.
bool operator>(const Strictness &other) const
Comparison operator.
Definition Settings.h:5789
bool hasValue() const
Check if the value is set.
int32_t ValueType
The type of the underlying value.
Definition Settings.h:5739
friend std::ostream & operator<<(std::ostream &stream, const Strictness &value)
Operator to serialize the value to a stream.
Definition Settings.h:5807
constexpr Strictness(int32_t value)
Constructor.
Definition Settings.h:5751
bool operator!=(const Strictness &other) const
Comparison operator.
Definition Settings.h:5777
bool operator<(const Strictness &other) const
Comparison operator.
Definition Settings.h:5783
Fills in point cloud holes by interpolating remaining surrounding points.
Definition Settings.h:5495
Repair & set(const Strictness &value)
Set Strictness.
Definition Settings.h:5998
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:5891
HoleSize & holeSize()
Get HoleSize.
Definition Settings.h:5973
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:6054
Repair & set(const HoleSize &value)
Set HoleSize.
Definition Settings.h:5979
bool operator==(const Repair &other) const
Equality operator.
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:6019
Repair copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:5927
const Strictness & strictness() const
Get Strictness.
Definition Settings.h:5986
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:6009
friend std::ostream & operator<<(std::ostream &stream, const Repair &value)
Operator to send the value as string to a stream.
Definition Settings.h:6080
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:5948
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:5954
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:6029
Repair()
Default constructor.
Strictness & strictness()
Get Strictness.
Definition Settings.h:5992
bool operator!=(const Repair &other) const
Inequality operator.
Repair & set(const Enabled &value)
Set Enabled.
Definition Settings.h:5960
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:6063
std::tuple< Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness > Descendants
Definition Settings.h:5830
const HoleSize & holeSize() const
Get HoleSize.
Definition Settings.h:5967
Contains filters that can be used to deal with holes in the point cloud.
Definition Settings.h:5474
const Repair & repair() const
Get Repair.
Definition Settings.h:6221
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:6265
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:6295
std::tuple< Settings::Processing::Filters::Hole::Repair, Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness > Descendants
Definition Settings.h:6099
friend std::ostream & operator<<(std::ostream &stream, const Hole &value)
Operator to send the value as string to a stream.
Definition Settings.h:6330
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:6285
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:6308
Hole & set(const Repair &value)
Set Repair.
Definition Settings.h:6233
Hole & set(const Repair::Strictness &value)
Set Repair::Strictness.
Definition Settings.h:6254
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:6315
Hole()
Default constructor.
Hole copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:6200
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:6275
bool operator!=(const Hole &other) const
Inequality operator.
bool operator==(const Hole &other) const
Equality operator.
std::string toString() const
Get the value as string.
Repair & repair()
Get Repair.
Definition Settings.h:6227
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:6163
Hole & set(const Repair::Enabled &value)
Set Repair::Enabled.
Definition Settings.h:6240
Hole & set(const Repair::HoleSize &value)
Set Repair::HoleSize.
Definition Settings.h:6247
Enable or disable the SNR filter.
Definition Settings.h:6391
static const Enabled yes
On/enabled.
Definition Settings.h:6409
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:6448
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:6442
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:6413
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:6422
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:6454
Enabled()=default
Default constructor.
static const Enabled no
Off/disabled.
Definition Settings.h:6410
bool ValueType
The type of the underlying value.
Definition Settings.h:6408
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:6471
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:6550
constexpr Threshold(double value)
Constructor.
Definition Settings.h:6500
bool operator==(const Threshold &other) const
Comparison operator.
Definition Settings.h:6520
bool operator<=(const Threshold &other) const
Comparison operator.
Definition Settings.h:6544
void reset()
Reset the node to unset state.
static constexpr Range< double > validRange()
The range of valid values for Threshold.
Definition Settings.h:6491
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream.
Definition Settings.h:6556
bool operator>(const Threshold &other) const
Comparison operator.
Definition Settings.h:6538
bool operator<(const Threshold &other) const
Comparison operator.
Definition Settings.h:6532
std::string toString() const
Get the value as string.
double ValueType
The type of the underlying value.
Definition Settings.h:6488
bool operator!=(const Threshold &other) const
Comparison operator.
Definition Settings.h:6526
Discard points with signal-to-noise ratio (SNR) values below a threshold.
Definition Settings.h:6371
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:6788
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:6693
const Threshold & threshold() const
Get Threshold.
Definition Settings.h:6712
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:6772
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:6705
Removal & set(const Threshold &value)
Set Threshold.
Definition Settings.h:6724
bool operator==(const Removal &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:6637
bool operator!=(const Removal &other) const
Inequality operator.
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:6745
Threshold & threshold()
Get Threshold.
Definition Settings.h:6718
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:6764
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:6672
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:6699
Removal()
Default constructor.
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:6735
std::tuple< Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold > Descendants
Definition Settings.h:6579
Enable or disable noise repair.
Definition Settings.h:6836
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:6858
bool ValueType
The type of the underlying value.
Definition Settings.h:6853
static const Enabled no
Off/disabled.
Definition Settings.h:6855
void reset()
Reset the node to unset state.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:6893
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:6867
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:6854
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:6899
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:6887
Enabled()=default
Default constructor.
bool value() const
Get the value.
Get better surface coverage by repairing regions of missing data due to noisy points....
Definition Settings.h:6813
Repair()
Default constructor.
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:7057
bool operator!=(const Repair &other) const
Inequality operator.
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:7064
bool operator==(const Repair &other) const
Equality operator.
Repair & set(const Enabled &value)
Set Enabled.
Definition Settings.h:7033
std::tuple< Settings::Processing::Filters::Noise::Repair::Enabled > Descendants
Definition Settings.h:6912
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:7027
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:7021
Repair copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:7000
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:7044
friend std::ostream & operator<<(std::ostream &stream, const Repair &value)
Operator to send the value as string to a stream.
Definition Settings.h:7079
std::string toString() const
Get the value as string.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:6966
Enable or disable noise suppression.
Definition Settings.h:7126
static const Enabled no
Off/disabled.
Definition Settings.h:7145
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:7157
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:7183
void reset()
Reset the node to unset state.
bool ValueType
The type of the underlying value.
Definition Settings.h:7143
std::string toString() const
Get the value as string.
Enabled()=default
Default constructor.
static const Enabled yes
On/enabled.
Definition Settings.h:7144
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:7148
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:7189
bool hasValue() const
Check if the value is set.
bool value() const
Get the value.
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:7177
Reduce noise and outliers in the point cloud. This filter can also be used to reduce ripple effects c...
Definition Settings.h:7103
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:7334
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:7347
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:7317
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:7311
std::string toString() const
Get the value as string.
std::tuple< Settings::Processing::Filters::Noise::Suppression::Enabled > Descendants
Definition Settings.h:7202
Suppression copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:7290
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:7256
friend std::ostream & operator<<(std::ostream &stream, const Suppression &value)
Operator to send the value as string to a stream.
Definition Settings.h:7369
bool operator!=(const Suppression &other) const
Inequality operator.
Suppression & set(const Enabled &value)
Set Enabled.
Definition Settings.h:7323
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:7354
bool operator==(const Suppression &other) const
Equality operator.
Suppression()
Default constructor.
Contains filters that can be used to clean up a noisy point cloud.
Definition Settings.h:6351
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:7694
Noise & set(const Suppression &value)
Set Suppression.
Definition Settings.h:7591
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:7659
Suppression & suppression()
Get Suppression.
Definition Settings.h:7585
Removal & removal()
Get Removal.
Definition Settings.h:7526
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:7669
Noise()
Default constructor.
Noise & set(const Removal::Threshold &value)
Set Removal::Threshold.
Definition Settings.h:7546
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:7499
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:7703
const Suppression & suppression() const
Get Suppression.
Definition Settings.h:7579
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:7629
std::tuple< Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Noise::Repair, Settings::Processing::Filters::Noise::Repair::Enabled, Settings::Processing::Filters::Noise::Suppression, Settings::Processing::Filters::Noise::Suppression::Enabled > Descendants
Definition Settings.h:7386
Noise & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:7539
const Repair & repair() const
Get Repair.
Definition Settings.h:7553
Noise & set(const Repair::Enabled &value)
Set Repair::Enabled.
Definition Settings.h:7572
Noise & set(const Repair &value)
Set Repair.
Definition Settings.h:7565
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:7459
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:7720
Repair & repair()
Get Repair.
Definition Settings.h:7559
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:7639
const Removal & removal() const
Get Removal.
Definition Settings.h:7520
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:7619
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:7649
bool operator==(const Noise &other) const
Equality operator.
Noise & set(const Suppression::Enabled &value)
Set Suppression::Enabled.
Definition Settings.h:7598
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:7609
Noise & set(const Removal &value)
Set Removal.
Definition Settings.h:7532
Enable or disable the outlier filter.
Definition Settings.h:7783
bool ValueType
The type of the underlying value.
Definition Settings.h:7800
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:7840
bool value() const
Get the value.
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:7814
static const Enabled no
Off/disabled.
Definition Settings.h:7802
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:7801
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:7846
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:7805
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:7834
Enabled()=default
Default constructor.
Discard point if Euclidean distance to neighboring points is above the given value.
Definition Settings.h:7863
static constexpr Range< double > validRange()
The range of valid values for Threshold.
Definition Settings.h:7883
bool hasValue() const
Check if the value is set.
double value() const
Get the value.
constexpr Threshold(double value)
Constructor.
Definition Settings.h:7892
bool operator<(const Threshold &other) const
Comparison operator.
Definition Settings.h:7924
bool operator==(const Threshold &other) const
Comparison operator.
Definition Settings.h:7912
bool operator>=(const Threshold &other) const
Comparison operator.
Definition Settings.h:7942
bool operator!=(const Threshold &other) const
Comparison operator.
Definition Settings.h:7918
friend std::ostream & operator<<(std::ostream &stream, const Threshold &value)
Operator to serialize the value to a stream.
Definition Settings.h:7948
void reset()
Reset the node to unset state.
bool operator<=(const Threshold &other) const
Comparison operator.
Definition Settings.h:7936
bool operator>(const Threshold &other) const
Comparison operator.
Definition Settings.h:7930
std::string toString() const
Get the value as string.
double ValueType
The type of the underlying value.
Definition Settings.h:7880
Threshold()=default
Default constructor.
Discard point if Euclidean distance to neighboring points is above a threshold.
Definition Settings.h:7763
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:8180
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:8085
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:8064
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:8097
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:8091
Removal & set(const Threshold &value)
Set Threshold.
Definition Settings.h:8116
std::tuple< Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition Settings.h:7971
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:8127
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:8137
const Threshold & threshold() const
Get Threshold.
Definition Settings.h:8104
Threshold & threshold()
Get Threshold.
Definition Settings.h:8110
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:8156
Removal()
Default constructor.
bool operator==(const Removal &other) const
Equality operator.
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8029
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:8164
Contains a filter that removes points with large Euclidean distance to neighboring points.
Definition Settings.h:7743
const Removal & removal() const
Get Removal.
Definition Settings.h:8316
Outlier & set(const Removal &value)
Set Removal.
Definition Settings.h:8328
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:8393
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:8386
bool operator!=(const Outlier &other) const
Inequality operator.
Outlier & set(const Removal::Threshold &value)
Set Removal::Threshold.
Definition Settings.h:8342
Outlier & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:8335
std::tuple< Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold > Descendants
Definition Settings.h:8198
Removal & removal()
Get Removal.
Definition Settings.h:8322
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:8295
friend std::ostream & operator<<(std::ostream &stream, const Outlier &value)
Operator to send the value as string to a stream.
Definition Settings.h:8408
bool operator==(const Outlier &other) const
Equality operator.
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:8373
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:8353
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:8363
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8259
Enable or disable the reflection filter. Note that this filter is computationally intensive and may a...
Definition Settings.h:8469
bool ValueType
The type of the underlying value.
Definition Settings.h:8486
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:8487
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:8526
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:8500
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:8532
bool value() const
Get the value.
static const Enabled no
Off/disabled.
Definition Settings.h:8488
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:8520
Enabled()=default
Default constructor.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:8491
The reflection filter has two modes: Local and Global. Local mode preserves more 3D data on thinner o...
Definition Settings.h:8556
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:8598
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:8589
ValueType
The type of the underlying value.
Definition Settings.h:8581
static const Mode local
local
Definition Settings.h:8586
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:8630
void reset()
Reset the node to unset state.
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream.
Definition Settings.h:8636
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:8624
std::string toString() const
Get the value as string.
bool hasValue() const
Check if the value is set.
Mode()=default
Default constructor.
ValueType value() const
Get the value.
static const Mode global
global
Definition Settings.h:8585
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:8618
Discard points likely introduced by reflections (useful for shiny materials).
Definition Settings.h:8449
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:8781
friend std::ostream & operator<<(std::ostream &stream, const Removal &value)
Operator to send the value as string to a stream.
Definition Settings.h:8870
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:8817
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8719
Removal()
Default constructor.
std::tuple< Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode > Descendants
Definition Settings.h:8661
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:8846
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:8754
Removal & set(const Enabled &value)
Set Enabled.
Definition Settings.h:8787
Mode & mode()
Get Mode.
Definition Settings.h:8800
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:8854
const Mode & mode() const
Get Mode.
Definition Settings.h:8794
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:8775
bool operator!=(const Removal &other) const
Inequality operator.
Removal & set(const Mode &value)
Set Mode.
Definition Settings.h:8806
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:8827
Contains a filter that removes points likely introduced by reflections (useful for shiny materials).
Definition Settings.h:8429
bool operator!=(const Reflection &other) const
Inequality operator.
bool operator==(const Reflection &other) const
Equality operator.
Removal & removal()
Get Removal.
Definition Settings.h:9012
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:8949
friend std::ostream & operator<<(std::ostream &stream, const Reflection &value)
Operator to send the value as string to a stream.
Definition Settings.h:9098
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9083
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:9076
Reflection & set(const Removal::Enabled &value)
Set Removal::Enabled.
Definition Settings.h:9025
Reflection()
Default constructor.
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:9053
std::tuple< Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode > Descendants
Definition Settings.h:8888
std::string toString() const
Get the value as string.
Reflection & set(const Removal::Mode &value)
Set Removal::Mode.
Definition Settings.h:9032
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:9063
const Removal & removal() const
Get Removal.
Definition Settings.h:9006
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:9043
Reflection & set(const Removal &value)
Set Removal.
Definition Settings.h:9018
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:8985
Enable or disable the smoothing filter.
Definition Settings.h:9157
bool ValueType
The type of the underlying value.
Definition Settings.h:9174
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:9179
bool value() const
Get the value.
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:9214
static const Enabled yes
On/enabled.
Definition Settings.h:9175
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:9208
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:9220
static const Enabled no
Off/disabled.
Definition Settings.h:9176
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:9188
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:9237
Sigma()=default
Default constructor.
double ValueType
The type of the underlying value.
Definition Settings.h:9254
bool operator!=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9292
bool operator>(const Sigma &other) const
Comparison operator.
Definition Settings.h:9304
double value() const
Get the value.
bool hasValue() const
Check if the value is set.
constexpr Sigma(double value)
Constructor.
Definition Settings.h:9266
static constexpr Range< double > validRange()
The range of valid values for Sigma.
Definition Settings.h:9257
friend std::ostream & operator<<(std::ostream &stream, const Sigma &value)
Operator to serialize the value to a stream.
Definition Settings.h:9322
void reset()
Reset the node to unset state.
bool operator>=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9316
bool operator==(const Sigma &other) const
Comparison operator.
Definition Settings.h:9286
bool operator<=(const Sigma &other) const
Comparison operator.
Definition Settings.h:9310
std::string toString() const
Get the value as string.
bool operator<(const Sigma &other) const
Comparison operator.
Definition Settings.h:9298
Gaussian smoothing of the point cloud.
Definition Settings.h:9137
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:9465
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:9530
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:9511
Gaussian & set(const Enabled &value)
Set Enabled.
Definition Settings.h:9471
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition Settings.h:9345
friend std::ostream & operator<<(std::ostream &stream, const Gaussian &value)
Operator to send the value as string to a stream.
Definition Settings.h:9554
const Sigma & sigma() const
Get Sigma.
Definition Settings.h:9478
bool operator==(const Gaussian &other) const
Equality operator.
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:9459
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:9501
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:9438
Gaussian & set(const Sigma &value)
Set Sigma.
Definition Settings.h:9490
Sigma & sigma()
Get Sigma.
Definition Settings.h:9484
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9403
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9538
Smoothing filters.
Definition Settings.h:9119
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:9669
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9633
std::tuple< Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition Settings.h:9572
Smoothing & set(const Gaussian &value)
Set Gaussian.
Definition Settings.h:9702
Smoothing()
Default constructor.
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:9737
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:9767
Smoothing & set(const Gaussian::Sigma &value)
Set Gaussian::Sigma.
Definition Settings.h:9716
Smoothing & set(const Gaussian::Enabled &value)
Set Gaussian::Enabled.
Definition Settings.h:9709
bool operator!=(const Smoothing &other) const
Inequality operator.
const Gaussian & gaussian() const
Get Gaussian.
Definition Settings.h:9690
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:9727
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:9760
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:9747
friend std::ostream & operator<<(std::ostream &stream, const Smoothing &value)
Operator to send the value as string to a stream.
Definition Settings.h:9782
Gaussian & gaussian()
Get Gaussian.
Definition Settings.h:9696
Filter settings.
Definition Settings.h:2951
bool operator!=(const Filters &other) const
Inequality operator.
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:10689
Filters & set(const Reflection::Removal::Enabled &value)
Set Reflection::Removal::Enabled.
Definition Settings.h:10352
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:10849
Filters & set(const Cluster &value)
Set Cluster.
Definition Settings.h:10068
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:10699
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:10035
Filters & set(const Hole &value)
Set Hole.
Definition Settings.h:10183
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:10545
Filters & set(const Hole::Repair::HoleSize &value)
Set Hole::Repair::HoleSize.
Definition Settings.h:10204
Filters & set(const Noise::Repair &value)
Set Noise::Repair.
Definition Settings.h:10258
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:10593
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:10660
Filters & set(const Cluster::Removal::MaxNeighborDistance &value)
Set Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:10089
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:10621
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:10554
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:10670
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:10757
Filters & set(const Noise::Repair::Enabled &value)
Set Noise::Repair::Enabled.
Definition Settings.h:10265
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:10419
Cluster & cluster()
Get Cluster.
Definition Settings.h:10062
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:10728
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:10573
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:10718
Filters & set(const Outlier::Removal::Threshold &value)
Set Outlier::Removal::Threshold.
Definition Settings.h:10319
Filters & set(const Experimental::ContrastDistortion::Correction::Strength &value)
Set Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:10143
Filters & set(const Experimental &value)
Set Experimental.
Definition Settings.h:10115
Outlier & outlier()
Get Outlier.
Definition Settings.h:10292
Filters & set(const Reflection::Removal::Mode &value)
Set Reflection::Removal::Mode.
Definition Settings.h:10359
Filters & set(const Hole::Repair::Enabled &value)
Set Hole::Repair::Enabled.
Definition Settings.h:10197
Filters & set(const Noise::Suppression &value)
Set Noise::Suppression.
Definition Settings.h:10272
Filters & set(const Outlier::Removal &value)
Set Outlier::Removal.
Definition Settings.h:10305
const Cluster & cluster() const
Get Cluster.
Definition Settings.h:10056
const Experimental & experimental() const
Get Experimental.
Definition Settings.h:10103
Filters & set(const Experimental::ContrastDistortion &value)
Set Experimental::ContrastDistortion.
Definition Settings.h:10122
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:10870
Filters & set(const Cluster::Removal::Enabled &value)
Set Cluster::Removal::Enabled.
Definition Settings.h:10082
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:10738
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:10679
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:10468
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:10787
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:9965
Filters & set(const Hole::Repair &value)
Set Hole::Repair.
Definition Settings.h:10190
const Reflection & reflection() const
Get Reflection.
Definition Settings.h:10326
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:10458
Filters & set(const Noise::Removal::Threshold &value)
Set Noise::Removal::Threshold.
Definition Settings.h:10251
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:10777
Filters & set(const Reflection &value)
Set Reflection.
Definition Settings.h:10338
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:10507
Filters & set(const Experimental::ContrastDistortion::Removal &value)
Set Experimental::ContrastDistortion::Removal.
Definition Settings.h:10150
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:10836
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:10429
Filters & set(const Outlier &value)
Set Outlier.
Definition Settings.h:10298
const Noise & noise() const
Get Noise.
Definition Settings.h:10218
Filters & set(const Experimental::ContrastDistortion::Correction &value)
Set Experimental::ContrastDistortion::Correction.
Definition Settings.h:10129
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:10563
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:10493
Filters & set(const Reflection::Removal &value)
Set Reflection::Removal.
Definition Settings.h:10345
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:10611
Filters & set(const Noise::Removal::Enabled &value)
Set Noise::Removal::Enabled.
Definition Settings.h:10244
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:10748
Filters & set(const Smoothing::Gaussian::Enabled &value)
Set Smoothing::Gaussian::Enabled.
Definition Settings.h:10392
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:10602
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:10650
Filters & set(const Experimental::ContrastDistortion::Removal::Threshold &value)
Set Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:10164
Filters & set(const Smoothing::Gaussian &value)
Set Smoothing::Gaussian.
Definition Settings.h:10385
bool operator==(const Filters &other) const
Equality operator.
Filters & set(const Hole::Repair::Strictness &value)
Set Hole::Repair::Strictness.
Definition Settings.h:10211
Filters & set(const Outlier::Removal::Enabled &value)
Set Outlier::Removal::Enabled.
Definition Settings.h:10312
Filters & set(const Cluster::Removal &value)
Set Cluster::Removal.
Definition Settings.h:10075
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:10583
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:10532
const Hole & hole() const
Get Hole.
Definition Settings.h:10171
std::tuple< Settings::Processing::Filters::Cluster, Settings::Processing::Filters::Cluster::Removal, Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea, Settings::Processing::Filters::Experimental, Settings::Processing::Filters::Experimental::ContrastDistortion, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold, Settings::Processing::Filters::Hole, Settings::Processing::Filters::Hole::Repair, Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness, Settings::Processing::Filters::Noise, Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Noise::Repair, Settings::Processing::Filters::Noise::Repair::Enabled, Settings::Processing::Filters::Noise::Suppression, Settings::Processing::Filters::Noise::Suppression::Enabled, Settings::Processing::Filters::Outlier, Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold, Settings::Processing::Filters::Reflection, Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma > Descendants
Definition Settings.h:9799
Filters & set(const Cluster::Removal::MinArea &value)
Set Cluster::Removal::MinArea.
Definition Settings.h:10096
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:10519
Noise & noise()
Get Noise.
Definition Settings.h:10224
Filters & set(const Smoothing &value)
Set Smoothing.
Definition Settings.h:10378
Filters & set(const Experimental::ContrastDistortion::Correction::Enabled &value)
Set Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:10136
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:10439
Filters & set(const Noise::Removal &value)
Set Noise::Removal.
Definition Settings.h:10237
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:10409
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:10709
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:10631
Smoothing & smoothing()
Get Smoothing.
Definition Settings.h:10372
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:10449
Filters & set(const Noise::Suppression::Enabled &value)
Set Noise::Suppression::Enabled.
Definition Settings.h:10279
Hole & hole()
Get Hole.
Definition Settings.h:10177
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:10767
Filters & set(const Experimental::ContrastDistortion::Removal::Enabled &value)
Set Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:10157
const Outlier & outlier() const
Get Outlier.
Definition Settings.h:10286
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:10640
Reflection & reflection()
Get Reflection.
Definition Settings.h:10332
Filters & set(const Noise &value)
Set Noise.
Definition Settings.h:10230
Filters & set(const Smoothing::Gaussian::Sigma &value)
Set Smoothing::Gaussian::Sigma.
Definition Settings.h:10399
const Smoothing & smoothing() const
Get Smoothing.
Definition Settings.h:10366
Experimental & experimental()
Get Experimental.
Definition Settings.h:10109
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:10479
Setting for upsampling or downsampling the point cloud data by some factor. This operation is perform...
Definition Settings.h:10941
void reset()
Reset the node to unset state.
static const Mode upsample2x2
upsample2x2
Definition Settings.h:10991
static const Mode downsample4x4
downsample4x4
Definition Settings.h:10990
Mode()=default
Default constructor.
friend std::ostream & operator<<(std::ostream &stream, const Mode &value)
Operator to serialize the value to a stream.
Definition Settings.h:11046
static const Mode upsample4x4
upsample4x4
Definition Settings.h:10992
static const Mode downsample2x2
downsample2x2
Definition Settings.h:10989
bool operator!=(const Mode &other) const
Comparison operator.
Definition Settings.h:11040
ValueType
The type of the underlying value.
Definition Settings.h:10981
bool operator==(const Mode &other) const
Comparison operator.
Definition Settings.h:11034
bool hasValue() const
Check if the value is set.
static std::set< ValueType > validValues()
All valid values of Mode.
Definition Settings.h:10995
std::string toString() const
Get the value as string.
constexpr Mode(ValueType value)
Constructor.
Definition Settings.h:11008
friend std::ostream & operator<<(std::ostream &stream, const Mode::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:11028
static const Mode disabled
disabled
Definition Settings.h:10988
ValueType value() const
Get the value.
Settings for changing the output resolution of the point cloud.
Definition Settings.h:10898
Resampling & set(const Mode &value)
Set Mode.
Definition Settings.h:11192
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:11126
const Mode & mode() const
Get Mode.
Definition Settings.h:11180
bool operator==(const Resampling &other) const
Equality operator.
Resampling()
Default constructor.
void forEach(const F &f) const
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:11215
Mode & mode()
Get Mode.
Definition Settings.h:11186
std::string toString() const
Get the value as string.
friend std::ostream & operator<<(std::ostream &stream, const Resampling &value)
Operator to send the value as string to a stream.
Definition Settings.h:11237
std::tuple< Settings::Processing::Resampling::Mode > Descendants
Definition Settings.h:11072
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:11202
bool operator!=(const Resampling &other) const
Inequality operator.
Resampling copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:11159
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:11222
Settings related to processing of a capture, including filters and color balance.
Definition Settings.h:1481
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:11987
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:12167
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:12115
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:12177
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:12357
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:12328
Resampling & resampling()
Get Resampling.
Definition Settings.h:11912
Processing & set(const Color::Experimental &value)
Set Color::Experimental.
Definition Settings.h:11600
Processing & set(const Color &value)
Set Color.
Definition Settings.h:11565
Processing & set(const Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Filters::Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:11661
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:12243
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:11969
Processing & set(const Color::Balance &value)
Set Color::Balance.
Definition Settings.h:11572
Processing & set(const Filters::Smoothing::Gaussian &value)
Set Filters::Smoothing::Gaussian.
Definition Settings.h:11885
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:11533
Filters & filters()
Get Filters.
Definition Settings.h:11627
Processing & set(const Filters::Smoothing::Gaussian::Enabled &value)
Set Filters::Smoothing::Gaussian::Enabled.
Definition Settings.h:11892
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:12262
Processing & set(const Resampling &value)
Set Resampling.
Definition Settings.h:11918
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:11995
Processing & set(const Filters::Experimental::ContrastDistortion::Removal &value)
Set Filters::Experimental::ContrastDistortion::Removal.
Definition Settings.h:11710
Processing & set(const Resampling::Mode &value)
Set Resampling::Mode.
Definition Settings.h:11925
Processing()
Default constructor.
std::tuple< Settings::Processing::Color, Settings::Processing::Color::Balance, Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red, Settings::Processing::Color::Experimental, Settings::Processing::Color::Experimental::Mode, Settings::Processing::Color::Gamma, Settings::Processing::Filters, Settings::Processing::Filters::Cluster, Settings::Processing::Filters::Cluster::Removal, Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea, Settings::Processing::Filters::Experimental, Settings::Processing::Filters::Experimental::ContrastDistortion, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold, Settings::Processing::Filters::Hole, Settings::Processing::Filters::Hole::Repair, Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness, Settings::Processing::Filters::Noise, Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Noise::Repair, Settings::Processing::Filters::Noise::Repair::Enabled, Settings::Processing::Filters::Noise::Suppression, Settings::Processing::Filters::Noise::Suppression::Enabled, Settings::Processing::Filters::Outlier, Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold, Settings::Processing::Filters::Reflection, Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma, Settings::Processing::Resampling, Settings::Processing::Resampling::Mode > Descendants
Definition Settings.h:11254
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:12347
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Filters::Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:11724
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:11960
Processing & set(const Filters::Outlier::Removal &value)
Set Filters::Outlier::Removal.
Definition Settings.h:11829
Processing & set(const Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:11717
Processing & set(const Filters::Cluster::Removal::Enabled &value)
Set Filters::Cluster::Removal::Enabled.
Definition Settings.h:11654
friend std::ostream & operator<<(std::ostream &stream, const Processing &value)
Operator to send the value as string to a stream.
Definition Settings.h:12444
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:12252
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:12126
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:12318
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:12224
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:12157
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:12377
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:12214
Processing & set(const Color::Balance::Blue &value)
Set Color::Balance::Blue.
Definition Settings.h:11579
Color & color()
Get Color.
Definition Settings.h:11559
Processing & set(const Filters::Hole::Repair::Strictness &value)
Set Filters::Hole::Repair::Strictness.
Definition Settings.h:11759
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:12367
Processing & set(const Filters::Reflection &value)
Set Filters::Reflection.
Definition Settings.h:11850
Processing & set(const Filters::Noise &value)
Set Filters::Noise.
Definition Settings.h:11766
Processing & set(const Filters::Hole &value)
Set Filters::Hole.
Definition Settings.h:11731
Processing & set(const Filters::Cluster &value)
Set Filters::Cluster.
Definition Settings.h:11640
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:12270
const Settings::Processing::Filters & get() const
Definition Settings.h:12003
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Filters::Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:11703
Processing & set(const Filters::Noise::Removal::Enabled &value)
Set Filters::Noise::Removal::Enabled.
Definition Settings.h:11780
Processing & set(const Filters::Smoothing &value)
Set Filters::Smoothing.
Definition Settings.h:11878
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:11942
const Filters & filters() const
Get Filters.
Definition Settings.h:11621
Processing & set(const Filters::Cluster::Removal &value)
Set Filters::Cluster::Removal.
Definition Settings.h:11647
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:12187
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:12427
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:12050
Processing & set(const Filters::Smoothing::Gaussian::Sigma &value)
Set Filters::Smoothing::Gaussian::Sigma.
Definition Settings.h:11899
Processing & set(const Filters::Noise::Suppression &value)
Set Filters::Noise::Suppression.
Definition Settings.h:11808
Processing & set(const Filters::Noise::Removal &value)
Set Filters::Noise::Removal.
Definition Settings.h:11773
Processing & set(const Filters::Reflection::Removal::Mode &value)
Set Filters::Reflection::Removal::Mode.
Definition Settings.h:11871
Processing & set(const Filters::Hole::Repair::Enabled &value)
Set Filters::Hole::Repair::Enabled.
Definition Settings.h:11745
const Settings::Processing::Resampling & get() const
Definition Settings.h:12385
Processing & set(const Filters::Outlier::Removal::Enabled &value)
Set Filters::Outlier::Removal::Enabled.
Definition Settings.h:11836
Processing & set(const Filters::Noise::Removal::Threshold &value)
Set Filters::Noise::Removal::Threshold.
Definition Settings.h:11787
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:11951
Processing & set(const Filters::Cluster::Removal::MinArea &value)
Set Filters::Cluster::Removal::MinArea.
Definition Settings.h:11668
Processing & set(const Filters::Experimental &value)
Set Filters::Experimental.
Definition Settings.h:11675
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:12204
Processing & set(const Filters::Outlier::Removal::Threshold &value)
Set Filters::Outlier::Removal::Threshold.
Definition Settings.h:11843
Processing & set(const Color::Balance::Green &value)
Set Color::Balance::Green.
Definition Settings.h:11586
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:11978
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:12104
Processing & set(const Filters::Outlier &value)
Set Filters::Outlier.
Definition Settings.h:11822
Processing & set(const Filters::Noise::Repair::Enabled &value)
Set Filters::Noise::Repair::Enabled.
Definition Settings.h:11801
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:12338
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:12091
Processing & set(const Color::Experimental::Mode &value)
Set Color::Experimental::Mode.
Definition Settings.h:11607
Processing & set(const Filters::Reflection::Removal::Enabled &value)
Set Filters::Reflection::Removal::Enabled.
Definition Settings.h:11864
Processing & set(const Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Filters::Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:11696
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:12030
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:12299
Processing & set(const Filters::Reflection::Removal &value)
Set Filters::Reflection::Removal.
Definition Settings.h:11857
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:12040
Processing & set(const Filters::Experimental::ContrastDistortion::Correction &value)
Set Filters::Experimental::ContrastDistortion::Correction.
Definition Settings.h:11689
const Settings::Processing::Color & get() const
Definition Settings.h:11934
bool operator==(const Processing &other) const
Equality operator.
const Color & color() const
Get Color.
Definition Settings.h:11553
Processing & set(const Filters::Experimental::ContrastDistortion &value)
Set Filters::Experimental::ContrastDistortion.
Definition Settings.h:11682
Processing & set(const Filters::Noise::Suppression::Enabled &value)
Set Filters::Noise::Suppression::Enabled.
Definition Settings.h:11815
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:12020
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:12308
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:12289
Processing & set(const Filters &value)
Set Filters.
Definition Settings.h:11633
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:12393
Processing & set(const Color::Balance::Red &value)
Set Color::Balance::Red.
Definition Settings.h:11593
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:12195
bool operator!=(const Processing &other) const
Inequality operator.
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:12059
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:12233
Processing & set(const Color::Gamma &value)
Set Color::Gamma.
Definition Settings.h:11614
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:11453
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:12139
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:12011
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:12079
Processing & set(const Filters::Noise::Repair &value)
Set Filters::Noise::Repair.
Definition Settings.h:11794
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:12069
const Resampling & resampling() const
Get Resampling.
Definition Settings.h:11906
Processing & set(const Filters::Hole::Repair::HoleSize &value)
Set Filters::Hole::Repair::HoleSize.
Definition Settings.h:11752
Processing & set(const Filters::Hole::Repair &value)
Set Filters::Hole::Repair.
Definition Settings.h:11738
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:12418
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:12279
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:12148
Enable or disable box filter.
Definition Settings.h:12537
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:12568
bool ValueType
The type of the underlying value.
Definition Settings.h:12554
bool operator==(const Enabled &other) const
Comparison operator.
Definition Settings.h:12588
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:12559
static const Enabled yes
On/enabled.
Definition Settings.h:12555
static const Enabled no
Off/disabled.
Definition Settings.h:12556
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:12600
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:12594
Two points on the normal describing the direction and distance from the plane from which the normal i...
Definition Settings.h:12617
std::string toString() const
Get the value as string.
bool operator==(const Extents &other) const
Comparison operator.
Definition Settings.h:12665
Extents()=default
Default constructor.
void reset()
Reset the node to unset state.
constexpr Extents(Zivid::Range< double > value)
Constructor.
Definition Settings.h:12640
constexpr Extents(double minValue, double maxValue)
Constructor.
Definition Settings.h:12660
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:12677
const Zivid::Range< double > & value() const
Get the value.
bool operator!=(const Extents &other) const
Comparison operator.
Definition Settings.h:12671
A point such that the vector from PointO to PointA describes the first edge of the parallelogram.
Definition Settings.h:12694
void reset()
Reset the node to unset state.
constexpr PointA(float x, float y, float z)
Constructor.
Definition Settings.h:12737
bool operator!=(const PointA &other) const
Comparison operator.
Definition Settings.h:12748
PointA()=default
Default constructor.
bool operator==(const PointA &other) const
Comparison operator.
Definition Settings.h:12742
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:12754
constexpr PointA(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:12717
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:12771
PointB()=default
Default constructor.
bool operator==(const PointB &other) const
Comparison operator.
Definition Settings.h:12819
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:12831
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:12814
constexpr PointB(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:12794
Zivid::PointXYZ value() const
Get the value.
bool operator!=(const PointB &other) const
Comparison operator.
Definition Settings.h:12825
The point at the intersection of two adjacent edges defining a parallelogram.
Definition Settings.h:12848
constexpr PointO(float x, float y, float z)
Constructor.
Definition Settings.h:12891
void reset()
Reset the node to unset state.
bool operator!=(const PointO &other) const
Comparison operator.
Definition Settings.h:12902
PointO()=default
Default constructor.
constexpr PointO(Zivid::PointXYZ value)
Constructor.
Definition Settings.h:12871
bool operator==(const PointO &other) const
Comparison operator.
Definition Settings.h:12896
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:12908
Removes points outside the given three-dimensional box.
Definition Settings.h:12502
std::string toString() const
Get the value as string.
std::tuple< Settings::RegionOfInterest::Box::Enabled, Settings::RegionOfInterest::Box::Extents, Settings::RegionOfInterest::Box::PointA, Settings::RegionOfInterest::Box::PointB, Settings::RegionOfInterest::Box::PointO > Descendants
Definition Settings.h:12921
Box & set(const PointA &value)
Set PointA.
Definition Settings.h:13096
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:13025
const PointO & pointO() const
Get PointO.
Definition Settings.h:13122
Box & set(const PointO &value)
Set PointO.
Definition Settings.h:13134
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:13052
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:13046
Box & set(const Extents &value)
Set Extents.
Definition Settings.h:13077
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:13144
PointA & pointA()
Get PointA.
Definition Settings.h:13090
PointB & pointB()
Get PointB.
Definition Settings.h:13109
Box & set(const PointB &value)
Set PointB.
Definition Settings.h:13115
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:13180
Box()
Default constructor.
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:13162
const Extents & extents() const
Get Extents.
Definition Settings.h:13065
const PointA & pointA() const
Get PointA.
Definition Settings.h:13084
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:12988
PointO & pointO()
Get PointO.
Definition Settings.h:13128
Extents & extents()
Get Extents.
Definition Settings.h:13071
const PointB & pointB() const
Get PointB.
Definition Settings.h:13103
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:13217
friend std::ostream & operator<<(std::ostream &stream, const Box &value)
Operator to send the value as string to a stream.
Definition Settings.h:13247
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:13171
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13228
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:13153
Box & set(const Enabled &value)
Set Enabled.
Definition Settings.h:13058
Enable or disable depth filter.
Definition Settings.h:13296
Enabled()=default
Default constructor.
static const Enabled yes
On/enabled.
Definition Settings.h:13314
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:13347
bool operator!=(const Enabled &other) const
Comparison operator.
Definition Settings.h:13353
bool ValueType
The type of the underlying value.
Definition Settings.h:13313
friend std::ostream & operator<<(std::ostream &stream, const Enabled &value)
Operator to serialize the value to a stream.
Definition Settings.h:13359
bool value() const
Get the value.
static std::set< bool > validValues()
All valid values of Enabled.
Definition Settings.h:13318
std::string toString() const
Get the value as string.
static const Enabled no
Off/disabled.
Definition Settings.h:13315
constexpr Enabled(bool value)
Constructor.
Definition Settings.h:13327
Specify the minimum and maximum Z value that will be included.
Definition Settings.h:13376
constexpr Range(double minValue, double maxValue)
Constructor.
Definition Settings.h:13419
constexpr Range(Zivid::Range< double > value)
Constructor.
Definition Settings.h:13399
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:13436
Range()=default
Default constructor.
bool operator==(const Range &other) const
Comparison operator.
Definition Settings.h:13424
bool operator!=(const Range &other) const
Comparison operator.
Definition Settings.h:13430
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:13274
Depth()
Default constructor.
Depth & set(const Enabled &value)
Set Enabled.
Definition Settings.h:13573
std::string toString() const
Get the value as string.
const Range & range() const
Get Range.
Definition Settings.h:13580
Depth & set(const Range &value)
Set Range.
Definition Settings.h:13592
const Enabled & isEnabled() const
Get Enabled.
Definition Settings.h:13561
bool operator==(const Depth &other) const
Equality operator.
std::tuple< Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range > Descendants
Definition Settings.h:13449
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13638
bool operator!=(const Depth &other) const
Inequality operator.
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:13602
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:13630
Range & range()
Get Range.
Definition Settings.h:13586
friend std::ostream & operator<<(std::ostream &stream, const Depth &value)
Operator to send the value as string to a stream.
Definition Settings.h:13654
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13506
Enabled & isEnabled()
Get Enabled.
Definition Settings.h:13567
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:13611
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:13540
Removes points outside the region of interest.
Definition Settings.h:12468
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:13959
Depth & depth()
Get Depth.
Definition Settings.h:13871
RegionOfInterest & set(const Depth::Enabled &value)
Set Depth::Enabled.
Definition Settings.h:13884
const Box & box() const
Get Box.
Definition Settings.h:13811
RegionOfInterest & set(const Box &value)
Set Box.
Definition Settings.h:13823
friend std::ostream & operator<<(std::ostream &stream, const RegionOfInterest &value)
Operator to send the value as string to a stream.
Definition Settings.h:14011
RegionOfInterest & set(const Box::PointO &value)
Set Box::PointO.
Definition Settings.h:13858
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:13942
std::string toString() const
Get the value as string.
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:13926
const Settings::RegionOfInterest::Depth & get() const
Definition Settings.h:13950
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:13918
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:13672
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:13968
const Settings::RegionOfInterest::Box::PointB & get() const
Definition Settings.h:13934
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:13751
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:13791
Box & box()
Get Box.
Definition Settings.h:13817
const Settings::RegionOfInterest::Box & get() const
Definition Settings.h:13900
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:13987
RegionOfInterest & set(const Box::PointA &value)
Set Box::PointA.
Definition Settings.h:13844
const Depth & depth() const
Get Depth.
Definition Settings.h:13865
RegionOfInterest & set(const Box::Extents &value)
Set Box::Extents.
Definition Settings.h:13837
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:13995
RegionOfInterest & set(const Box::Enabled &value)
Set Box::Enabled.
Definition Settings.h:13830
RegionOfInterest & set(const Depth::Range &value)
Set Depth::Range.
Definition Settings.h:13891
bool operator!=(const RegionOfInterest &other) const
Inequality operator.
RegionOfInterest & set(const Depth &value)
Set Depth.
Definition Settings.h:13877
RegionOfInterest & set(const Box::PointB &value)
Set Box::PointB.
Definition Settings.h:13851
bool operator==(const RegionOfInterest &other) const
Equality operator.
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:13909
RegionOfInterest()
Default constructor.
Choose how to sample colors for the point cloud. The rgb option gives a 2D image with full colors....
Definition Settings.h:14059
ValueType
The type of the underlying value.
Definition Settings.h:14083
std::string toString() const
Get the value as string.
static std::set< ValueType > validValues()
All valid values of Color.
Definition Settings.h:14093
friend std::ostream & operator<<(std::ostream &stream, const Color &value)
Operator to serialize the value to a stream.
Definition Settings.h:14140
constexpr Color(ValueType value)
Constructor.
Definition Settings.h:14102
static const Color grayscale
grayscale
Definition Settings.h:14090
bool operator!=(const Color &other) const
Comparison operator.
Definition Settings.h:14134
Color()=default
Default constructor.
static const Color disabled
disabled
Definition Settings.h:14089
bool hasValue() const
Check if the value is set.
void reset()
Reset the node to unset state.
bool operator==(const Color &other) const
Comparison operator.
Definition Settings.h:14128
friend std::ostream & operator<<(std::ostream &stream, const Color::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:14122
static const Color rgb
rgb
Definition Settings.h:14088
ValueType value() const
Get the value.
Set whether the full image sensor should be used with white projector light or only specific color ch...
Definition Settings.h:14175
ValueType value() const
Get the value.
void reset()
Reset the node to unset state.
static std::set< ValueType > validValues()
All valid values of Pixel.
Definition Settings.h:14215
static const Pixel redSubsample4x4
redSubsample4x4
Definition Settings.h:14212
constexpr Pixel(ValueType value)
Constructor.
Definition Settings.h:14228
static const Pixel all
all
Definition Settings.h:14208
static const Pixel blueSubsample2x2
blueSubsample2x2
Definition Settings.h:14209
bool operator!=(const Pixel &other) const
Comparison operator.
Definition Settings.h:14260
ValueType
The type of the underlying value.
Definition Settings.h:14201
static const Pixel redSubsample2x2
redSubsample2x2
Definition Settings.h:14210
Pixel()=default
Default constructor.
bool operator==(const Pixel &other) const
Comparison operator.
Definition Settings.h:14254
static const Pixel blueSubsample4x4
blueSubsample4x4
Definition Settings.h:14211
bool hasValue() const
Check if the value is set.
friend std::ostream & operator<<(std::ostream &stream, const Pixel::ValueType &value)
Operator to serialize ValueType to a stream.
Definition Settings.h:14248
friend std::ostream & operator<<(std::ostream &stream, const Pixel &value)
Operator to serialize the value to a stream.
Definition Settings.h:14266
std::string toString() const
Get the value as string.
Sampling settings.
Definition Settings.h:14034
std::tuple< Settings::Sampling::Color, Settings::Sampling::Pixel > Descendants
Definition Settings.h:14291
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:14347
bool operator==(const Sampling &other) const
Equality operator.
Color & color()
Get Color.
Definition Settings.h:14406
Sampling copyWith(Args &&...args) const
Returns a copy of this object with the given argument(s) set to the new value(s)
Definition Settings.h:14380
const Pixel & pixel() const
Get Pixel.
Definition Settings.h:14419
friend std::ostream & operator<<(std::ostream &stream, const Sampling &value)
Operator to send the value as string to a stream.
Definition Settings.h:14491
Pixel & pixel()
Get Pixel.
Definition Settings.h:14425
const Settings::Sampling::Color & get() const
Definition Settings.h:14440
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:14467
Sampling()
Default constructor.
const Settings::Sampling::Pixel & get() const
Definition Settings.h:14448
bool operator!=(const Sampling &other) const
Inequality operator.
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:14475
const Color & color() const
Get Color.
Definition Settings.h:14400
std::string toString() const
Get the value as string.
Sampling & set(const Color &value)
Set Color.
Definition Settings.h:14412
Sampling & set(const Pixel &value)
Set Pixel.
Definition Settings.h:14431
Settings used when capturing with a Zivid camera.
Definition Settings.h:80
const Settings::RegionOfInterest::Depth & get() const
Definition Settings.h:15975
const Settings::Processing::Filters::Outlier::Removal::Enabled & get() const
Definition Settings.h:15813
Settings(Args &&...args)
Constructor taking variadic number of arguments.
Definition Settings.h:14685
Settings & set(const Processing::Filters::Cluster::Removal::MinArea &value)
Set Processing::Filters::Cluster::Removal::MinArea.
Definition Settings.h:15069
const Settings::Processing::Filters::Outlier & get() const
Definition Settings.h:15794
Settings & set(const RegionOfInterest::Box::PointB &value)
Set RegionOfInterest::Box::PointB.
Definition Settings.h:15368
const Settings::Processing::Filters::Hole::Repair & get() const
Definition Settings.h:15684
const Settings::Processing::Color::Balance & get() const
Definition Settings.h:15478
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled.
Definition Settings.h:15118
const Settings::Processing::Color::Balance::Red & get() const
Definition Settings.h:15502
Settings & set(const Processing::Color::Experimental::Mode &value)
Set Processing::Color::Experimental::Mode.
Definition Settings.h:15020
Settings & set(const Processing::Filters::Smoothing &value)
Set Processing::Filters::Smoothing.
Definition Settings.h:15279
const Settings::RegionOfInterest & get() const
Definition Settings.h:15919
const Settings::Processing::Filters::Noise::Removal & get() const
Definition Settings.h:15729
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:14876
const Processing & processing() const
Get Processing.
Definition Settings.h:14959
const Settings::Processing::Color::Gamma & get() const
Definition Settings.h:15527
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal & get() const
Definition Settings.h:15644
Settings & set(const Processing &value)
Set Processing.
Definition Settings.h:14971
const Settings::Sampling::Pixel & get() const
Definition Settings.h:16009
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold & get() const
Definition Settings.h:15667
Settings & set(const Sampling &value)
Set Sampling.
Definition Settings.h:15415
Settings & set(const Processing::Filters::Outlier::Removal::Enabled &value)
Set Processing::Filters::Outlier::Removal::Enabled.
Definition Settings.h:15237
Settings & set(const Processing::Filters::Hole::Repair::Enabled &value)
Set Processing::Filters::Hole::Repair::Enabled.
Definition Settings.h:15146
const Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance & get() const
Definition Settings.h:15572
const Settings::Processing::Filters::Hole & get() const
Definition Settings.h:15676
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold.
Definition Settings.h:15125
Settings & set(const Processing::Filters::Smoothing::Gaussian &value)
Set Processing::Filters::Smoothing::Gaussian.
Definition Settings.h:15286
Settings & set(const Sampling::Color &value)
Set Sampling::Color.
Definition Settings.h:15422
Settings & set(const Diagnostics &value)
Set Diagnostics.
Definition Settings.h:14926
const Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled & get() const
Definition Settings.h:15655
Settings & set(const RegionOfInterest::Depth::Enabled &value)
Set RegionOfInterest::Depth::Enabled.
Definition Settings.h:15389
Settings & set(const Processing::Filters::Noise &value)
Set Processing::Filters::Noise.
Definition Settings.h:15167
const Sampling & sampling() const
Get Sampling.
Definition Settings.h:15403
void load(const std::string &fileName)
Load from the given file.
const Settings::Processing::Filters::Cluster::Removal::MinArea & get() const
Definition Settings.h:15582
const Settings::Acquisitions & get() const
Definition Settings.h:15436
const Settings::Processing::Filters::Experimental & get() const
Definition Settings.h:15590
const Settings::Processing::Filters::Noise::Suppression & get() const
Definition Settings.h:15776
const Settings::Processing::Filters::Outlier::Removal & get() const
Definition Settings.h:15803
Settings & set(const Processing::Filters::Cluster &value)
Set Processing::Filters::Cluster.
Definition Settings.h:15041
const Settings::Processing::Filters::Smoothing::Gaussian::Sigma & get() const
Definition Settings.h:15897
const Settings::Diagnostics & get() const
Definition Settings.h:15442
RegionOfInterest & regionOfInterest()
Get RegionOfInterest.
Definition Settings.h:15327
const Settings::Processing::Resampling & get() const
Definition Settings.h:15905
Settings & set(const Processing::Filters::Hole &value)
Set Processing::Filters::Hole.
Definition Settings.h:15132
Settings & set(const Processing::Filters::Reflection::Removal::Mode &value)
Set Processing::Filters::Reflection::Removal::Mode.
Definition Settings.h:15272
const Settings::Processing::Filters::Smoothing::Gaussian::Enabled & get() const
Definition Settings.h:15887
const Settings::RegionOfInterest::Box & get() const
Definition Settings.h:15927
Settings & set(const Processing::Color::Balance &value)
Set Processing::Color::Balance.
Definition Settings.h:14985
const Settings::RegionOfInterest::Box::PointO & get() const
Definition Settings.h:15967
Settings & set(const RegionOfInterest::Depth &value)
Set RegionOfInterest::Depth.
Definition Settings.h:15382
const Settings::Processing::Filters::Noise::Removal::Enabled & get() const
Definition Settings.h:15739
const Settings::RegionOfInterest::Depth::Enabled & get() const
Definition Settings.h:15983
const Settings::Processing::Filters::Hole::Repair::Strictness & get() const
Definition Settings.h:15712
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction & get() const
Definition Settings.h:15610
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:16052
std::string serialize() const
Serialize to a string.
const Settings::Processing::Color::Balance::Green & get() const
Definition Settings.h:15494
const Settings::RegionOfInterest::Box::Extents & get() const
Definition Settings.h:15943
Settings & set(const Processing::Filters::Smoothing::Gaussian::Enabled &value)
Set Processing::Filters::Smoothing::Gaussian::Enabled.
Definition Settings.h:15293
const Settings::Processing & get() const
Definition Settings.h:15462
Settings & set(const Processing::Filters::Reflection &value)
Set Processing::Filters::Reflection.
Definition Settings.h:15251
void forEach(const F &f)
Run the given function on each direct member with the value of the member as parameter.
Definition Settings.h:16064
Settings()
Default constructor.
const Settings::Processing::Filters::Experimental::ContrastDistortion & get() const
Definition Settings.h:15600
Settings & set(const Processing::Filters::Outlier::Removal::Threshold &value)
Set Processing::Filters::Outlier::Removal::Threshold.
Definition Settings.h:15244
Settings & set(const Processing::Filters::Hole::Repair::HoleSize &value)
Set Processing::Filters::Hole::Repair::HoleSize.
Definition Settings.h:15153
const Settings::RegionOfInterest::Box::Enabled & get() const
Definition Settings.h:15935
const Settings::Processing::Color::Experimental::Mode & get() const
Definition Settings.h:15519
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Strength &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Strength.
Definition Settings.h:15104
Settings & set(const RegionOfInterest::Box::Enabled &value)
Set RegionOfInterest::Box::Enabled.
Definition Settings.h:15347
const Settings::Processing::Filters::Hole::Repair::HoleSize & get() const
Definition Settings.h:15702
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength & get() const
Definition Settings.h:15633
Settings & set(const RegionOfInterest::Box::Extents &value)
Set RegionOfInterest::Box::Extents.
Definition Settings.h:15354
const Settings::Processing::Color::Balance::Blue & get() const
Definition Settings.h:15486
Settings & set(const Processing::Resampling::Mode &value)
Set Processing::Resampling::Mode.
Definition Settings.h:15314
const Settings::Processing::Filters::Hole::Repair::Enabled & get() const
Definition Settings.h:15693
const Acquisitions & acquisitions() const
Get Acquisitions.
Definition Settings.h:14895
void set(Args &&...args)
Set multiple arguments.
Definition Settings.h:14778
const Settings::Processing::Filters::Reflection & get() const
Definition Settings.h:15831
Settings & set(const Processing::Filters::Experimental &value)
Set Processing::Filters::Experimental.
Definition Settings.h:15076
const Settings::Processing::Filters::Smoothing & get() const
Definition Settings.h:15868
std::tuple< Settings::Acquisitions, Settings::Diagnostics, Settings::Diagnostics::Enabled, Settings::Engine, Settings::Processing, Settings::Processing::Color, Settings::Processing::Color::Balance, Settings::Processing::Color::Balance::Blue, Settings::Processing::Color::Balance::Green, Settings::Processing::Color::Balance::Red, Settings::Processing::Color::Experimental, Settings::Processing::Color::Experimental::Mode, Settings::Processing::Color::Gamma, Settings::Processing::Filters, Settings::Processing::Filters::Cluster, Settings::Processing::Filters::Cluster::Removal, Settings::Processing::Filters::Cluster::Removal::Enabled, Settings::Processing::Filters::Cluster::Removal::MaxNeighborDistance, Settings::Processing::Filters::Cluster::Removal::MinArea, Settings::Processing::Filters::Experimental, Settings::Processing::Filters::Experimental::ContrastDistortion, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Strength, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Enabled, Settings::Processing::Filters::Experimental::ContrastDistortion::Removal::Threshold, Settings::Processing::Filters::Hole, Settings::Processing::Filters::Hole::Repair, Settings::Processing::Filters::Hole::Repair::Enabled, Settings::Processing::Filters::Hole::Repair::HoleSize, Settings::Processing::Filters::Hole::Repair::Strictness, Settings::Processing::Filters::Noise, Settings::Processing::Filters::Noise::Removal, Settings::Processing::Filters::Noise::Removal::Enabled, Settings::Processing::Filters::Noise::Removal::Threshold, Settings::Processing::Filters::Noise::Repair, Settings::Processing::Filters::Noise::Repair::Enabled, Settings::Processing::Filters::Noise::Suppression, Settings::Processing::Filters::Noise::Suppression::Enabled, Settings::Processing::Filters::Outlier, Settings::Processing::Filters::Outlier::Removal, Settings::Processing::Filters::Outlier::Removal::Enabled, Settings::Processing::Filters::Outlier::Removal::Threshold, Settings::Processing::Filters::Reflection, Settings::Processing::Filters::Reflection::Removal, Settings::Processing::Filters::Reflection::Removal::Enabled, Settings::Processing::Filters::Reflection::Removal::Mode, Settings::Processing::Filters::Smoothing, Settings::Processing::Filters::Smoothing::Gaussian, Settings::Processing::Filters::Smoothing::Gaussian::Enabled, Settings::Processing::Filters::Smoothing::Gaussian::Sigma, Settings::Processing::Resampling, Settings::Processing::Resampling::Mode, Settings::RegionOfInterest, Settings::RegionOfInterest::Box, Settings::RegionOfInterest::Box::Enabled, Settings::RegionOfInterest::Box::Extents, Settings::RegionOfInterest::Box::PointA, Settings::RegionOfInterest::Box::PointB, Settings::RegionOfInterest::Box::PointO, Settings::RegionOfInterest::Depth, Settings::RegionOfInterest::Depth::Enabled, Settings::RegionOfInterest::Depth::Range, Settings::Sampling, Settings::Sampling::Color, Settings::Sampling::Pixel > Descendants
Definition Settings.h:14509
const Settings::Processing::Filters & get() const
Definition Settings.h:15535
Settings & set(const Processing::Color::Experimental &value)
Set Processing::Color::Experimental.
Definition Settings.h:15013
void save(const std::string &fileName) const
Save to the given file.
Settings & set(const Engine &value)
Set Engine.
Definition Settings.h:14952
Settings & set(const RegionOfInterest::Depth::Range &value)
Set RegionOfInterest::Depth::Range.
Definition Settings.h:15396
const Settings::Processing::Color::Experimental & get() const
Definition Settings.h:15510
const Settings::Processing::Filters::Noise::Repair & get() const
Definition Settings.h:15758
Settings & set(const Processing::Resampling &value)
Set Processing::Resampling.
Definition Settings.h:15307
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Removal &value)
Set Processing::Filters::Experimental::ContrastDistortion::Removal.
Definition Settings.h:15111
const Settings::RegionOfInterest::Box::PointA & get() const
Definition Settings.h:15951
Settings & set(const Processing::Color &value)
Set Processing::Color.
Definition Settings.h:14978
Settings & set(const Processing::Filters::Outlier &value)
Set Processing::Filters::Outlier.
Definition Settings.h:15223
bool operator==(const Settings &other) const
Equality operator.
Acquisitions & acquisitions()
Get Acquisitions.
Definition Settings.h:14901
Settings & set(const Processing::Filters::Reflection::Removal &value)
Set Processing::Filters::Reflection::Removal.
Definition Settings.h:15258
const Settings::Processing::Filters::Noise::Suppression::Enabled & get() const
Definition Settings.h:15786
const Settings::Engine & get() const
Definition Settings.h:15456
const Settings::Processing::Filters::Cluster & get() const
Definition Settings.h:15543
const Settings::Processing::Filters::Noise::Repair::Enabled & get() const
Definition Settings.h:15767
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:15006
Settings & set(const RegionOfInterest::Box::PointO &value)
Set RegionOfInterest::Box::PointO.
Definition Settings.h:15375
const Settings::Sampling::Color & get() const
Definition Settings.h:16003
Settings & set(const Processing::Filters::Cluster::Removal &value)
Set Processing::Filters::Cluster::Removal.
Definition Settings.h:15048
Settings & set(const RegionOfInterest::Box &value)
Set RegionOfInterest::Box.
Definition Settings.h:15340
Settings & set(const Processing::Filters::Noise::Suppression &value)
Set Processing::Filters::Noise::Suppression.
Definition Settings.h:15209
const Engine & engine() const
Get Engine.
Definition Settings.h:14940
Diagnostics & diagnostics()
Get Diagnostics.
Definition Settings.h:14920
const Settings::Processing::Filters::Noise::Removal::Threshold & get() const
Definition Settings.h:15749
const Settings::Processing::Filters::Cluster::Removal::Enabled & get() const
Definition Settings.h:15562
Sampling & sampling()
Get Sampling.
Definition Settings.h:15409
Settings & set(const Processing::Filters::Reflection::Removal::Enabled &value)
Set Processing::Filters::Reflection::Removal::Enabled.
Definition Settings.h:15265
Processing & processing()
Get Processing.
Definition Settings.h:14965
Settings & set(const RegionOfInterest::Box::PointA &value)
Set RegionOfInterest::Box::PointA.
Definition Settings.h:15361
Settings & set(const Diagnostics::Enabled &value)
Set Diagnostics::Enabled.
Definition Settings.h:14933
const Settings::Processing::Filters::Noise & get() const
Definition Settings.h:15720
const Settings::Diagnostics::Enabled & get() const
Definition Settings.h:15450
const Settings::Processing::Filters::Cluster::Removal & get() const
Definition Settings.h:15552
const Settings::Processing::Filters::Reflection::Removal::Mode & get() const
Definition Settings.h:15860
std::string toString() const
Get the value as string.
const Settings::Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled & get() const
Definition Settings.h:15621
const Settings::RegionOfInterest::Box::PointB & get() const
Definition Settings.h:15959
Settings & set(const Processing::Filters::Experimental::ContrastDistortion &value)
Set Processing::Filters::Experimental::ContrastDistortion.
Definition Settings.h:15083
Settings & set(const Sampling::Pixel &value)
Set Sampling::Pixel.
Definition Settings.h:15429
Settings & set(const Processing::Filters::Hole::Repair::Strictness &value)
Set Processing::Filters::Hole::Repair::Strictness.
Definition Settings.h:15160
Settings & set(const Processing::Color::Gamma &value)
Set Processing::Color::Gamma.
Definition Settings.h:15027
Settings & set(const Processing::Filters::Cluster::Removal::Enabled &value)
Set Processing::Filters::Cluster::Removal::Enabled.
Definition Settings.h:15055
const Settings::RegionOfInterest::Depth::Range & get() const
Definition Settings.h:15991
const Settings::Sampling & get() const
Definition Settings.h:15997
Settings & set(const Processing::Filters::Noise::Removal::Threshold &value)
Set Processing::Filters::Noise::Removal::Threshold.
Definition Settings.h:15188
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction::Enabled.
Definition Settings.h:15097
static ZIVID_NODISCARD Settings fromSerialized(const std::string &value)
Construct a new Settings instance from a previously serialized string.
Settings & set(const Acquisitions &value)
Set Acquisitions.
Definition Settings.h:14907
Settings & set(const Processing::Filters::Smoothing::Gaussian::Sigma &value)
Set Processing::Filters::Smoothing::Gaussian::Sigma.
Definition Settings.h:15300
const Diagnostics & diagnostics() const
Get Diagnostics.
Definition Settings.h:14914
bool operator!=(const Settings &other) const
Inequality operator.
Settings & set(const Processing::Filters::Noise::Removal &value)
Set Processing::Filters::Noise::Removal.
Definition Settings.h:15174
Settings & set(const Processing::Filters::Noise::Repair &value)
Set Processing::Filters::Noise::Repair.
Definition Settings.h:15195
Settings & set(const Processing::Filters::Cluster::Removal::MaxNeighborDistance &value)
Set Processing::Filters::Cluster::Removal::MaxNeighborDistance.
Definition Settings.h:15062
Settings & set(const Processing::Filters::Outlier::Removal &value)
Set Processing::Filters::Outlier::Removal.
Definition Settings.h:15230
Settings & set(const RegionOfInterest &value)
Set RegionOfInterest.
Definition Settings.h:15333
Settings & set(const Processing::Filters::Noise::Removal::Enabled &value)
Set Processing::Filters::Noise::Removal::Enabled.
Definition Settings.h:15181
Engine & engine()
Get Engine.
Definition Settings.h:14946
Settings & set(const Processing::Filters::Hole::Repair &value)
Set Processing::Filters::Hole::Repair.
Definition Settings.h:15139
Settings & set(const Processing::Filters::Experimental::ContrastDistortion::Correction &value)
Set Processing::Filters::Experimental::ContrastDistortion::Correction.
Definition Settings.h:15090
const Settings::Processing::Color & get() const
Definition Settings.h:15470
Settings & set(const Processing::Filters::Noise::Repair::Enabled &value)
Set Processing::Filters::Noise::Repair::Enabled.
Definition Settings.h:15202
const Settings::Processing::Filters::Reflection::Removal::Enabled & get() const
Definition Settings.h:15850
Settings & set(const Processing::Filters::Noise::Suppression::Enabled &value)
Set Processing::Filters::Noise::Suppression::Enabled.
Definition Settings.h:15216
const Settings::Processing::Filters::Reflection::Removal & get() const
Definition Settings.h:15840
Settings & set(const Processing::Color::Balance::Green &value)
Set Processing::Color::Balance::Green.
Definition Settings.h:14999
Settings & set(const Processing::Filters &value)
Set Processing::Filters.
Definition Settings.h:15034
const RegionOfInterest & regionOfInterest() const
Get RegionOfInterest.
Definition Settings.h:15321
const Settings::Processing::Resampling::Mode & get() const
Definition Settings.h:15913
const Settings::Processing::Filters::Outlier::Removal::Threshold & get() const
Definition Settings.h:15823
Settings & set(const Processing::Color::Balance::Blue &value)
Set Processing::Color::Balance::Blue.
Definition Settings.h:14992
const Settings::Processing::Filters::Smoothing::Gaussian & get() const
Definition Settings.h:15877
friend std::ostream & operator<<(std::ostream &stream, const Settings &value)
Operator to send the value as string to a stream.
Definition Settings.h:16084
NodeType
Definition NodeType.h:55
The main Zivid namespace. All Zivid code is found here.
Definition Application.h:56
Point with three coordinates as float.
Definition Point.h:60